contents
下一步: NFS 守护进程 上一级: 网络文件系统 上一步: 准备 NFS

挂载 NFS 卷

NFS 卷gif 的挂载方式与常见的文件系统非常相似。您可以使用以下语法调用 mount 命令
     # mount -t nfs nfs volume local dir options
nfs_volume 的格式为 远程主机:远程目录。由于这种表示法是 NFS 文件系统特有的,您可以省略 -t nfs 选项。

挂载 NFS 卷时,您可以指定许多其他选项。这些选项可以通过以下方式指定:在命令行中使用 -o 开关,或者在 /etc/fstab 文件中对应卷的选项字段中指定。在这两种情况下,多个选项之间用逗号分隔。在命令行中指定的选项始终会覆盖 fstab 文件中给出的选项。

/etc/fstab 文件中的示例条目可能如下所示

     # volume              mount point       type  options
     news:/usr/spool/news  /usr/spool/news   nfs   timeo=14,intr
然后可以使用以下命令挂载此卷
     # mount news:/usr/spool/news
如果缺少 fstab 条目,NFS 挂载调用会显得非常复杂。例如,假设您要从名为 moonshot 的机器挂载用户主目录,该机器的默认读/写操作块大小为 4K。您可以通过发出以下命令将块大小减小到 2K,以适应数据报大小限制
     # mount moonshot:/home /home -o rsize=2048,wsize=2048
所有有效选项的完整列表在 nfs(5) 手册页中有完整描述,该手册页随 Rick Sladkey 的 NFS 感知挂载工具一起提供,该工具可以在 Rik Faith 的 util-linux 软件包中找到。以下是您可能想要使用的一些(非完整)选项列表
rsize=n 和 wsize=n
这些选项分别指定 NFS 客户端在读取和写入请求中使用的数据报大小。由于上述 UDP 数据报大小的限制,它们目前的默认值为 1024 字节。
timeo=n
此选项设置 NFS 客户端等待请求完成的时间(以十分之一秒为单位)。默认值为 0.7 秒。
hard
显式地将此卷标记为硬挂载。默认情况下已启用。
soft
将驱动器软挂载(相对于硬挂载而言)。
intr
允许信号中断 NFS 调用。在服务器没有响应时,可用于中止操作。
除了 rsize 和 wsize 之外,所有这些选项都适用于客户端的行为,如果服务器暂时变得不可访问。它们以以下方式协同工作:每当客户端向 NFS 服务器发送请求时,它都期望操作在给定的时间间隔(在 timeout 选项中指定)后完成。如果在此时限内未收到确认,则会发生所谓的次要超时,并且操作会重试,超时时间间隔加倍。在达到 60 秒的最大超时时间后,会发生主要超时

默认情况下,发生主要超时时,客户端会在控制台上打印消息并重新开始,这次的初始超时时间间隔是前一次级联的两倍。这种情况可能会无限期地持续下去。那些顽固地重试操作直到服务器再次可用的卷称为 硬挂载。相反的类型,软挂载 卷会在发生主要超时时生成 I/O 错误。由于缓冲区缓存引入的后写机制,此错误条件不会在进程下次调用 write(2) 函数之前传播到进程本身,因此程序永远无法确定对软挂载卷的写入操作是否已成功。

选择硬挂载还是软挂载卷不仅仅是个人喜好问题,还与您要从此卷访问的信息类型有关。例如,如果您通过 NFS 挂载 X 程序,您肯定不希望仅仅因为有人同时启动了七个 xv 副本,或者短暂地拔掉了以太网插头,就导致您的 X 会话崩溃。通过硬挂载这些卷,您可以确保您的计算机将等待直到能够重新建立与 NFS 服务器的联系。另一方面,非关键数据(例如 NFS 挂载的新闻分区或 FTP 存档)最好软挂载,这样在远程计算机暂时不可访问或宕机的情况下,它不会使您的会话挂起。如果您的网络连接到服务器不稳定,或者通过负载过高的路由器,您可以增加初始超时时间(使用 timeo 选项),或者硬挂载卷,但允许信号中断 NFS 调用,这样您仍然可以中止任何挂起的文件访问。

通常,mountd 守护进程会以某种方式跟踪哪些目录已被哪些主机挂载。此信息可以使用 showmount 程序显示,该程序也包含在 NFS 服务器软件包中。但是,mountd 守护进程目前尚未执行此操作。


contents
下一步: NFS 守护进程 上一级: 网络文件系统 上一步: 准备 NFS

Andrew Anderson
Thu Mar 7 23:22:06 EST 1996