TA的每日心情 | 开心 2024-10-21 14:10 |
---|
签到天数: 882 天 [LV.10]以坛为家III
|
<p>网络文件系统(NFS)是一种在网络上的机器间共享文件的方法,文件就如同位于客户的本地硬盘驱动器上一样。Red Hat Linux 既可以是 NFS 服务器也可以是 NFS 客户,这意味着它可以把文件系统导出给其它系统,也可以挂载从其它机器上导入的文件系统。 </p><h1>1.1. 为什么使用 NFS?</h1><p>NFS 对于在同一网络上的多个用户间共享目录很有用途。譬如,一组致力于同一工程项目的用户可以通过使用 NFS 文件系统(通常被称作 NFS 共享)中的一个挂载为 /myproject 的共享目录来存取该工程项目的文件。要存取共享的文件,用户进入各自机器上的 /myproject 目录。这种方法既不用输入口令又不用记忆特殊命令,就仿佛该目录位于用户的本地机器上一样。 </p><h1>1.2. 挂载 NFS 文件系统</h1><p>使用 mount 命令来挂载另一个机器上的 NFS 文件系统: </p><table><tbody><tr><td><div>mount shadowman.example.com:/misc/export /misc/local </div></td></tr></tbody></table><table><tbody><tr><td valign="top" align="left"><p><b>警告:</b>本地机器上的挂载点目录(以上例子中的 /mnt/local )必须存在。 </p></td></tr></tbody></table><p>在这项命令中, shadowman.example.com 是 NFS 文件服务器的主机名; /misc/export 是 shadowman 要导出的文件系统; /misc/local 是该文件系统在本地机器上的挂载位置。 mount 命令运行之后(而且如果客户具有来自 shadowman.example.com NFS 服务器的正确权限的话),客户用户可以执行 ls /misc/local 命令来显示 shadowman.example.com 上的 /misc/export 目录中的文件列表。 </p><h2>1.2.1. 使用 /etc/fstab 来挂载 NFS 文件系统</h2><p>要挂载其它机器上的 NFS 共享的另一种方法是在 /etc/fstab 文件中添加一行。这一行中必须声明 NFS 服务器的主机名,要导出的目录,以及要挂载 NFS 共享的本地机器目录。你必须是根用户才能修改 /etc/fstab 文件。 </p><p>/etc/fstab 中每行的一般语法如下所示: </p><table><tbody><tr><td><div><b>server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr </b></div></td></tr></tbody></table><p>挂载点 /pub 在客户机器上必须存在。在客户系统的 /etc/fstab 文件中把这一行添加完毕后,在 shell 提示下键入命令 mount /pub ,以及将会从服务器中挂载的挂载点 /pub 。 </p><h2>1.2.2. 使用 autofs 来挂载 NFS 文件系统</h2><p>挂载 NFS 共享的第三种方法是使用 autofs。autofs 使用 automount 守护进程来管理你的挂载点,它只在文件系统被访问时才动态地挂载它们。 </p><p>autofs 咨询主映射配置文件 /etc/auto.master 来决定要定义哪些挂载点。然后,它使用适用于各个挂载点的参数来启动 automount 进程。主映射配置中的每一行都定义一个挂载点,一个分开的映射文件定义在该挂载点下要挂载的文件系统。譬如, /etc/auto.misc 文件可能会定义 /misc 目录中的挂载点;这种关系在 /etc/auto.master 文件中会被定义。 </p><p>auto.master 文件中的每个项目都有三个字段。第一个字段是挂载点。第二个字段是映射文件的位置,第三个字段可选。第三个字段可以包括超时数值之类的信息。 </p><p>譬如,要在你的机器上的 /misc/myproject 挂载点上挂载远程机器 penguin.example.net 上的 /project52 目录,在 auto.master 文件中添加以下行: </p><table><tbody><tr><td><div><b>/misc /etc/auto.misc --timeout 60 </b></div></td></tr></tbody></table><p>在 /etc/auto.misc 文件中添加以下行: </p><table><tbody><tr><td><div><b>myproject -rw,soft,intr,rsize=8192,wsize=8192 penguin.example.net:/proj52 </b></div></td></tr></tbody></table><p>/etc/auto.misc 中的第一个字段是 /misc 子目录的名称。该目录被 automount 动态地创建。它不应该在客户机器上实际存在。第二个字段包括挂载选项,如: rw 代表读写访问权。第三个字段是要导出的 NFS 的位置,包括主机名和目录。 </p><table><tbody><tr><td valign="top" align="left"><p><b>注记:</b>目录 /misc 在本地文件系统中必须存在。在本地文件系统的 /misc 目录中不应该有子目录。 </p></td></tr></tbody></table><p>autofs 是一种服务。要启动这项服务,在 shell 提示下,键入以下命令: </p><table><tbody><tr><td><div>/sbin/service autofs restart </div></td></tr></tbody></table><p>要查看活跃的挂载点,在 shell 提示下键入以下命令: </p><table><tbody><tr><td><div>/sbin/service autofs status </div></td></tr></tbody></table><p>如果你在 autofs 运行时修改了 /etc/auto.master 配置文件,你必须在 shell 提示下键入以下命令来通知 automount 守护进程重新载入配置文件: </p><table><tbody><tr><td><div>/sbin/service autofs reload </div></td></tr></tbody></table><blockquote><p>若想了解如何配置 autofs 以便在引导时启动,请参阅 <a href="http://www.ddvip.net/OS/linux/index1/ch-services.html" target="_blank"><font color="#000000">第14章 </font></a>中关于管理服务的信息。 </p></blockquote><h1>1.3. 导出 NFS 文件系统</h1><p>从 NFS 服务器中共享文件又称导出目录。 <b>NFS 服务器配置工具 </b>可以用来把系统配置成 NFS 服务器。 </p><p>要使用 <b>NFS 服务器配置工具 </b>,你必须运行 X 窗口系统,具备根特权,并且安装了 redhat-config-nfs RPM 软件包。要启动这个程序,点击面板上的 <b>「主菜单」 </b>=> <b>「系统设置」 </b>=> <b>「服务器设置」 </b>=> <b>「NFS 服务器」 </b>,或键入 redhat-config-nfs 命令。 </p><p><img src="http://www.study888.com/computer/UploadFiles/200504/20050427152320115.png" style="WIDTH: 524px; CURSOR: pointer;" alt=""/></p><p><b>图 16-1. <b>NFS 服务器配置工具 </b></b></p><p>要添加 NFS 共享,点击 <b>「添加」 </b>按钮。如图 16-2所示的对话框会出现。 </p><p><b>「基本」 </b>活页标签要求以下信息: </p><ul><li><p><b>「目录」 </b>— 指定要共享的目录,如 /tmp 。 </p></li><li><p><b>「主机」 </b>— 指定要共享目录的主机。请参阅第 16.3.2 节来获取对格式的解释。 </p></li><li><p><b>「基本权限」 </b>— 指定目录应该有只读权限还是读写权限。 </p></li></ul><p><img src="http://www.study888.com/computer/UploadFiles/200504/20050427152321954.png" style="CURSOR: pointer;" alt=""/></p><p><b>图 16-2. 添加共享 </b></p><p><b>「常规选项」 </b>活页标签允许你配置以下选项: </p><ul><li><p><b>「允许来自高于 1024 的端口的连接」 </b>— 在号码小于 1024 的端口上启动的服务必须以根用户身份启动。选择这个选项来允许根用户以外的用户来启动 NFS 服务。该选项和 insecure 相对应。 </p></li><li><p><b>「允许不安全的文件锁定」 </b>— 不需要锁定请求。该选项和 insecure_locks 相对应。 </p></li><li><p><b>「禁用子树检查」 </b>— 如果某文件系统的子目录被导出,但是整个文件系统没有被导出,服务器会检查所请求的文件是否在导出的子目录中。这种检查叫做 子树检查(subtree checking) 。选择这个选项来禁用子树检查。如果整个文件系统被导出,选择禁用子树检查可以提高传输率。该选项和 no_subtree_check 相对应。 </p></li><li><p><b>「按要求同步写操作」 </b>— 默认被启用,该选项不允许服务器在请求被写入磁盘前回复这些请求。该选项和 sync 相对应。如果它没有被选择, async 选项会被使用。 </p><ul><li><p><b>「立即强制同步写操作」 </b>— 不推迟写入磁盘的操作。该选项和 no_wdelay 相对应。 </p></li></ul></li></ul><p><b>「用户访问」 </b>活页标签允许你配置以下选项: </p><ul><li><p><b>「把远程根用户当作本地根用户」 </b>— 按照默认设置,根用户的用户 ID 和组群 ID 都是 0。根权限压缩(Root squashing)把用户 ID 0 和组群 ID 0 映射为匿名的用户和组群 ID,因此客户上的根用户就不会在 NFS 服务器上具备根特权。如果这个选项被选,根用户就不会被映射为匿名用户,客户上的根用户就会对导出的目录拥有根特权。选择这个选项会大大降低系统的安全性。除非绝对必要,请不要选择它。该选项和 no_root_squash 相对应。 </p></li><li><p><b>「把所有客户用户当作匿名用户」 </b>— 如果该选项被选,所有用户和组群 ID 都会被映射为匿名用户。该选项和 all_squash 相对应。 </p><ul><li><p><b>「为匿名用户指定本地用户 ID」 </b>— 如果 <b>「把所有客户用户当作匿名用户」 </b>被选,这个选项会让 你为匿名用户指定一个用户 ID。该选项和 corresponds to anonuid 相对应。 </p></li><li><p><b>「为匿名用户指定本地组群 ID」 </b>— 如果 <b>「把所有客户用户当作匿名用户」 </b>被选,这个选项会让 你为匿名用户指定一个组群 ID。该选项和 corresponds to anongid 相对应。 </p></li></ul></li></ul><p>要编辑 NFS 共享,从列表中选择它,然后点击 <b>「属性」 </b>按钮。要删除某个现存 NFS 共享,从列表中选择它,然后点击 <b>「删除」 </b>按钮。 </p><p>点击了 <b>「确定」 </b>来从列表中添加、编辑、或删除某个 NFS 共享后,改变就会立即生效 — 服务器守护进程被重新启动,原有的配置文件被保存为 /etc/exports.bak 。新的配置文件被写入 /etc/exports 。 </p><p><b>NFS 服务器配置工具 </b>直接读写 /etc/exports 配置文件。因此,这个文件在使用该工具后可以被手工修改;手工修改了该文件后也可以使用这个工具(假定手工修改时使用了正确的语法)。 </p><h2>1.3.1. 命令行配置</h2><p>如果你更喜欢使用文本编辑器来编辑配置文件或者你没有安装 X 窗口系统,你可以直接修改配置文件。 </p><p>/etc/exports 文件控制 NFS 服务器要导出哪些目录。它的格式如下: </p><table><tbody><tr><td><div>directory hostname ( options ) </div></td></tr></tbody></table><p>唯一需要指定的选项是 sync 和 async 之一(建议使用 sync is recommended)。如果指定了 sync ,服务器在请求所做的改变被写入磁盘之前就不会回复这些请求。 </p><p>例如: </p><table><tbody><tr><td><div>/misc/export speedy.example.com(sync) </div></td></tr></tbody></table><p>会允许来自 speedy.example.com 的用户使用默认的只读权限来挂载 /misc/export ,但是: </p><table><tbody><tr><td><div>/misc/export speedy.example.com(rw,sync) </div></td></tr></tbody></table><p>将会允许来自 speedy.example.com 的用户使用读写权限来挂载 /misc/export 。 </p><p>请参阅第 16.3.2 节来获取关于主机名格式的解释。 </p><p>请参阅 《Red Hat Linux 参考指南》 来获取可以被指定的选项的列表。 </p><table><tbody><tr><td valign="top" align="left"><p><b>小心:</b>请谨慎处理 /etc/exports 文件中的空格。如果主机名和括号内的选项之间没有空格,这些选项就只应用于这个主机名。如果在主机名和选项之间有空格,这些选项就是全局应用的。例如,请仔细查看以下行: </p><table><tbody><tr><td><div>/misc/export speedy.example.com(rw,sync) /misc/export speedy.example.com (rw,sync) </div></td></tr></tbody></table><p>第一行给来自 speedy.example.com 的用户以读写权限并拒绝所有其他用户。第二行给来自 speedy.example.com 的用户以只读权限(默认设置),并给予所有其他用户以读写权限。 </p></td></tr></tbody></table><p>在你每次改变 /etc/exports 的时候,你必须把改变通知给 NFS 守护进程,或使用以下命令来重新载入配置文件: </p><table><tbody><tr><td><div>/sbin/service nfs reload </div></td></tr></tbody></table><h2>1.3.2. 主机名格式</h2><p>主机可以使用以下格式: </p><ul><li><p>单个机器 — 一个全限定域名(能够被服务器解析的),主机名(能够被服务器解析的),或 IP 地址。 </p></li><li><p>使用通配符指定的一系列机器 — 使用“*”或“?”字符来指定字符串匹配。通配符不能被用在 IP 地址中;如果逆向 DNS 查寻失败了,通配符可能碰巧会奏效。当你在全限定域名中指定通配符时,点(.)不包括在 通配符的匹配项目内。例如: *.example.com 包括 one.example.com,但不包括 one.two.example.com. </p></li><li><p>IP 网络 — 使用 a.b.c.d/z ,这里的 a.b.c.d 是网络, z 是子网掩码中的位数(如 192.168.0.0/24)。另一种可以接受的格式是 a.b.c.d/netmask ,这里的 a.b.c.d 是网络, netmask 是子网掩码(如 192.168.100.8/255.255.255.0)。 </p></li><li><p>Netgroups — 格式为 @group-name ,这里的 group-name 是 NIS netgroup 的名称。 </p></li></ul><h2>1.3.3. 启动和停止服务器</h2><p>在导出 NFS 文件系统的服务器上, nfs 服务必须在运行。 </p><p>使用以下命令来查看 NFS 守护进程的状态: </p><table><tbody><tr><td><div>/sbin/service nfs status </div></td></tr></tbody></table><p>使用以下命令来启动 NFS 守护进程: </p><table><tbody><tr><td><div>/sbin/service nfs start </div></td></tr></tbody></table><p>使用以下命令来停止 NFS 守护进程: </p><table><tbody><tr><td><div>/sbin/service nfs stop </div></td></tr></tbody></table><p>要在引导时启动 nfs 服务,使用以下命令: </p><table><tbody><tr><td><div>/sbin/chkconfig --level 345 nfs on </div></td></tr></tbody></table><p>你还可以使用 chkconfig 、 <b>ntsysv </b>或 <b>服务配置工具 </b>来配置要在引导时启动哪些服务</p> |
|