NFS(Network File System),网络文件系统,一种用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。它的核心功能是通过网络让不同的机器、不同的操作系统能够彼此共享数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

 

NFS 基本原则

容许不同的客户端及服务端通过一组RPC分享相同的文件系统,它是独立于操作系统,容许不同硬件及操作系统之间共同进行文件的分享。

 

NFS 服务搭建

对于NFS服务器的客户端搭建,讨论如下:

首先,需要了解一下mount命令的使用。用户既可以通过mount命令挂载,也可以通过在/etc/fstab中加入条目项来实现,/etc/fstab中的条目项包括一个NFS的挂载类型。NFS文件系统的名称由文件所在的主机名(hostname or ip)加上被挂载目录的路径名组成,两个部分通过冒号分开。例如,computer1:/home/project指示一个文件系统被挂载在计算机computer1中的/home/project中。

 

这里,推荐客户端使用mount命令来挂载,下面主要介绍挂载的相关知识和方法,然后简单介绍编辑/etc/fstab文件的方法。

用户同样可以在NFS的条目项中修改多个NFS特定的挂载选项。例如,可以指定往返数据包的大小和计算机等待系统响应的时间大小,或者指定一个文件系统是被硬挂载(hard-mounted)还是软挂载(soft-mounted)。

对硬挂载文件系统来说,如果因为某种原因导致远程系统响应失败,计算机将会持续地尝试建立连接;

对软挂载文件系统来说,同样情况下,在指定的时间间隔后计算机将会放弃尝试建立连接而发送一个错误消息。

默认采用硬挂载文件系统,系统硬挂载尝试失败时,对用户输入的响应也会停止,并且不断尝试建立连接。正是因为这样,有的用户更喜欢采用软挂载,它会使系统在指定时间间隔后尝试挂载失败后停止尝试。

 

mount 命令格式:

mount[-t vfstype] [-o  options] device dir

mount命令参数非常多,如下为与NFS相关的参数:

(1)-a:把/etc/fstab中列出的路径全部挂载。

(2)-t:需要mount的类型,如nfs等。

(3)-r:将mount的路径定为read only。

(4)-v mount:过程的每一个操作都有message传回到屏幕上。

(5)rsize=n:在NFS服务器读取文件时NFS使用的字节数,默认值是1 024个字节。

(6)wsize=n:向NFS服务器写文件时NFS使用的字节数,默认值是1 024个字节。

(7)timeo=n:从超时后到第1次重新传送占用的1/7秒的数目,默认值是7/7秒。

(8)retry=n:在放弃后台mount操作之前可以尝试的次数,默认值是7 000次。

(9)soft:使用软挂载的方式挂载系统,若Client的请求得不到回应,则重新请求并传回错误信息。

(10)hard:使用硬挂载的方式挂载系统,该值是默认值,重复请求直到NFS服务器回应。

(11)intr:允许NFS中断文件操作和向调用它的程序返回值,默认不允许文件操作被中断。

(12)fg:一直在提示符下执行重复挂载。

(13)bg:如果第1次挂载文件系统失败,继续在后台尝试执行挂载,默认值是失败后不在后台处理。

(14)tcp:对文件系统的挂载使用TCP,而不是默认的UDP。

说明:mount NFS服务器的另一个重要参数是hard(硬)或soft(软)。

采用hard mount,NFS客户机会不断地尝试与NFS服务器连接(在后台一般不会给出任何提示信息),直到挂载上为止。

采用soft mount,会在前台尝试与NFS服务器连接,当收到错误信息后终止mount尝试,并给出相关信息。

例如,hard mount:

# mount -t nfs -o hard 192.168.1.4:/home/cao /home/nfs/cao

 

使用hard还是soft主要取决于访问的信息。

例如,要查看NFS服务器的视频文件,不会希望由于一些意外的情况(如网络速度变得很慢)而使系统输出大量的错误信息。如果此时使用hard方式,系统就会等待,直到能够重新与NFS服务器建立连接传输信息。另外,如果是非关键数据,也可以使用hard方式,如FTP一些数据等,这样在远程机器暂时连接不上或关闭时就不会挂起会话过程。