【IT168 服务器频道】在Red Hat Enterprise Linux 5.0服务器中,NFS服务器以后,网络中不同的计算机在使用该文件系统之前必须先挂载该文件系统。用户既可以通过mount命令挂载,也可以通过在/etc/fstab中加入条目项实现,/etc/fstab中的条目项中包括一个NFS的挂载类型。NFS文件系统的名称由文件所在的主机名加上被挂载目录的路径名组成,两个部分通过冒号分开。例如,computer1:/home/project指示一个文件系统被挂载在计算机computer1中的/home/project中。
这里推荐客户端使用mount命令来挂载,下面主要挂载的相关知识和方法,然后简单介绍直接编辑/etc/fstab文件的方法。
1.1 使用mount命令
用户同样可以在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(硬)mount或soft(软)mount。
采用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一些数据等,这样在远程机器暂时连接不上或关闭时就不会挂起会话过程。
1.2 扫描可以使用的NFS Server目录
在客户端本地建立mount point,使用mount挂载远程主机共享的目录。假设主机名是"www.cao.net",使用showmount查看NFS Server可以共享的目录,然后将/home/public挂载在/home/ nfs/public下:
# showmount -e www.cao.net
Export list for localhost:
/tmp *
/home/linux *.cao.net
/home/public (everyone)
/home/cao 192.168.1.4
1.3 卸载NFS网络文件系统
卸载NFS网络文件系统可以使用unmount命令:
umount /home/nfs/public
# unmount -a #取消所有已经挂载在mount上的路径
如果关机时NFS服务器中还有客户联机,建议在关机之前先关闭portmap与nfsd系统服务。如果无法正确关闭,那么应执行命令"netstat -utlp"找出PID。然后使用kill命令杀死进程,这样才能正常关机。
1.4 应用实例
本节介绍如何挂载/home/cao目录。
首先建立这个目录,然后利用mount指令来挂载NFS服务器的/home/cao目录:
# mkdir -p /home/nfs/cao
# mount -t nfs 192.168.1.4:/home/cao/home/nfs/cao
使用df命令查看挂载的目录,目录中已经包括NFS服务器IP地址的共享目录,如图1所示。
图1 挂载NFS服务器的共享目录
挂载后,只要进入/home/nfs/cao目录,即进IP地址为"192.168.1.4"那台NFS服务器的/home/cao目录中。
1.5 其他挂载NFS文件系统的方法
1.使用/etc/fstab来挂载NFS
要挂载其他机器上的NFS共享的另一种方法是在/etc/fstab文件中添加一行,在这一行中必须声明NFS服务器的主机名、要导出的目录,以及要挂载NFS共享的本地机器目录。必须是根用户才能修改/etc/fstab文件。
/etc/fstab中每行的一般语法如下所示:
server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr
挂载点/pub在客户端机器上必须存在。在客户端系统的/etc/fstab文件中添加这一行后在shell提示下键入命令mount,以及将会从服务器中挂载的挂载点/pub。
2.使用autofs来挂载NFS
挂载NFS共享的第3种方法是使用autofs,它使用automount守护进程来管理挂载点,只在文件系统被访问时才动态地挂载。
autofs咨询主映射配置文件/etc/auto.master来决定要定义哪些挂载点,然后使用适用于各个挂载点的参数来启动automount守护进程。主映射配置中的每一行都定义一个挂载点,一个分开的映射文件定义在该挂载点下要挂载的文件系统。如/etc/auto.misc文件可能会定义/misc目录中的挂载点,这种关系在/etc/auto.master文件中会被定义。
auto.master文件中的每个项目都有3个字段,第1个字段是挂载点;第2个字段是映射文件的位置;第3个字段可选,可以包括超时数值之类的信息。
例如,要在机器上的/misc/myproject挂载点上挂载远程机penguin.example.net中的/project52目录,在auto.master文件中添加以下行:
/misc /etc/auto.misc --timeout 60
在/etc/auto.misc文件中添加以下行:
myproject -rw,soft,intr,rsize=8192,wsize=8192 penguin.example.net:/proj52
/etc/auto.misc中的第1个字段是/misc子目录的名称,该目录被automount动态地创建,它不应该在客户端机器上实际存在;第2个字段包括挂载选项,如rw代表读写访问权,第3个字段是要导出的NFS的位置,包括主机名和目录。
autofs是一种服务,要启动这项服务,在shell提示下键入以下命令:
/sbin/service autofs restart
要查看活跃的挂载点,在shell提示下键入以下命令:
/sbin/service autofs status
如果在autofs运行时修改了/etc/auto.master配置文件,则必须在shell提示下键入以下命令来通知automount守护进程重新载入配置文件:
/sbin/service autofs reload
本文节选自《Red Hat Enterprise Linux 5.0服务器构建与故障排除》一书,作者曹江华。本文仅提供读者试读,如需全部内容请购买原书。