客户端在进行NFS挂载时的有用选项与注意事项

TangLu 运维 2015-04-22 4681 0

通常情况下利用NFS服务挂载的数据都是一些普通文件(如图片,音频视频等)。这些数据不需要执行权限,所以在进行NFS挂载的时候可以在客户端上加一些选项,使挂载的分区只能作为读取数据用,避免可执行脚本的植入导致服务器被黑。

NFS挂载所用的命令是mount,下面看看mount的一些常用的特别选项:

mount  -o  ro, rw    #挂载后是否为只读系统(ro) 或可读可写(rw)
                 async, sync    #挂载后是否采用同步写入(sync) 或非同步写入 (async),默认为async
                 auto, noauto    #是否允许开机自动挂载(auto)或不自动挂载(noauto),建议为noauto
                 suid, nosuid    #挂载后的分区是否含有 suid/sgid 格式
                 exec, noexec    #挂载后的分区内是否可执行文件
                 user, nouser    #挂载后的分区是否可以让其他用户执行mount

                 fg,bg    #当执行挂载时,是在前端(fg)还是后端(bg)执行,前端执行时,mount命令会持续尝试挂载,直到成功或超时,期间不能执行其他操作;后端执行则在后台持续mount,不会影响到系统操作。如果服务器常常开关机,默认为fg,建议使用 bg选项

                 hard,soft    #执行硬挂载(hard)还是软挂载(soft),如果是硬挂载,当NFS服务器发生故障时RPC会发出持续请求,直到恢复。如果是软挂载,RPC在超时后进行重复的请求,而非持续,这样系统不会因为持续的请求而一直等待响应,默认为hard,建议用 soft

                 rsize,wsize    #设置缓存区读(rsize)写(wsize)的区块大小。提高缓存区的区块可以提升NFS传输效率,但也不要太大,不能超过网络传输最大值。如果服务器端和客户端内存与网络较好,这个值可以设大一点,32768 (bytes)rsize和wsize默认都为1024
                 defaults    #默认值,包含了rw, suid, dev, exec, auto, nouser, async
                 remount    #重新挂载,一般为更新了相关参数后重新挂载一次使其生效

挂载案例:

[root@linuxe.cn ~]# mount -t nfs -o nosuid,noexec,nodev,rw \
> -o bg,soft,rsize=32768,wsize=32768 \
> 192.168.100.254:/home/public /home/nfs/public


当192.168.100.254因为某些因素宕机,NFS会在后台重复请求响应,直到 NFS成功连接。rsize 与 wsize 的大小需要依据实际网络环境设置

 

如何开机挂载NFS

鸟哥的书中有提到过NFS是不能直接写入/etc/fstab 当中的,因为网络的启动是在本机挂载之后,所以在系统开机执行挂载时读取到/etc/fstab,但是这个时候没有网络是无法正常挂载上的,需要把挂载命令写入/etc/rc.d/rc.local,如下:

 

[root@linuxe.cn ~]# vim /etc/rc.d/rc.local
mount -t nfs -o nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 \
192.168.100.254:/home/public /home/nfs/public

其实依然可以写入到/etc/fstab文件中,mount还有一个选项是_rnetdev,把这个加在defaults后面即可,这个选项是说明如果挂载的是一个网络设备,挂载没有成功时就进行跳过

评论