NFS(Network FileSystem):
NFS服务端口是2049,NFS还有其他的程序去启动额外的端口;NFS预设用来传输的端口是随机选择小于1024以下的端口
RPC(Remote Procedure Call):主要功能是指定每个NFS功能所对应的port number,并且回报给客户端,RPC固定使用port 111来监听客户端的需求并回报客户端正确的端口
不论是客户端还是服务器端使用NFS之前,RPC要先启动
NFS通常需要与NIS这一个可以确认客户端与服务器端身份一致的服务搭配使用,以避免身份的错乱
设定NFS服务的两个必须软件:
RPC主程序:rpcbind(CentOS 5.X前称为portmap)
NFS主程序:nfs-utils
NFS的配置文件/etc/exports ,并没有默认值,可能不会存在,可能需要手动用vim建立,主要用在服务端
NFS文件系统维护指令: /usr/sbin/exportfs ,是维护NFS分享资源的指令
分享资源的登录档: /var/lib/nfs/*tab ,NFS服务器的登录文件都放置在 /var/lib/nfs/目录里面,里面两个重要登录档:
etab :主要记录NFS所分享出来的目录的完整权限设定值
xtab:记录曾经链接到此NFS服务器的相关客户端数据
客户端查询服务器分享资源的指令: /usr/sbin/showmount ,主要用在客户端
/etc/exports 配置文件的语法与参数:
每一行前面是要共享出来的目录,例如:
/tmp 192.168.100.0/24(ro) 或 localhost(rw) 或 .ev.ncku.edu.tw(ro.sync)
共享目录 第一部主机(权限) 可用主机名 可用通配符
主机名后以()设计权限参数,若权限参数不止一个时,则以逗号 , 分开,且主机名与小括号是连在一起的
主机名可以是IP、网段或主机名,但是主机名必须要在 /etc/hosts内,或可使用DNS找到该名称才行,即可找到IP就行,支持通配符 或 ?
查询每个RPC服务的注册状态,使用rpcinfo指令:
rpcinfo -p [IP|hostname]
rpcinfo -t|-u IP|hostname 程序名称
选项与参数:
-p :针对某IP (未写则预设为本机)显示出所有的port与porgram的信息;
-t:针对某主机的某支程序检查其TCP封包所在的软件版本;
-u:针对某主机的某支程序检查其UDP封包所在的软件版本
NFS的联机观察:
showmount [-ae] [hostname|IP]
选项与参数:
-a :显示目前主机与客户端的NFS联机分享的状态;
-e :显示某部主机的/etc/exports所分享的目录数据;
例如:showmount -e localhost
NFS关于目录权限设定的预设参数:/var/lib/nfs/etab
客户端挂载了服务器的NFS文件系统后,客户端与其文件系统信息就会被记录到这个文件里
编辑或更改/etc/exports档案后,使用exportfs指令可以不用重新启动nfs服务:
指令: exportfs [-aruv]
选项与参数:
-a :全部挂载(或卸除)/etc/exports档案内的设定;
-r :重新挂载/etc/exports 里面的设定,亦同步更新/etc/exports及/var/lib/nfs/xtab的内容
-u:卸除某一目录
-v:在export的时候,将分享的目录显示到屏幕上
NFS必须要有分享的目录,然后在 /etc/exports 里面设置分享的目录和权限
NFS的安全性:NFS一般不会对因特网开放
防火墙的设定问题与解决方案:
NFS固定特定NFS服务的端口配置文件:/etc/sysconfig/nfs
这个档案里面能够指定特定的端口,这样每次启动NFS时,相关服务启动的端口就会固定
这个文件只要更改与PORT这个关键词有关的数据即可,主要有mountd,rquotad,nlockmgr
使用/etc/exports 设定更安全的权限,善用 root_squash及all_squash等功能,NFS服务器文件系统不要随便设定成为 -rwxrwxrwx
规划磁盘时,分一块给NFS用,设定合理的磁盘配额,设定比较严格的参数在/etc/fstab当中
NFS服务器关机时,必须关掉rpcbind与nfs两个服务,或使用showmount -a localhost查出哪个客户端还在联机,或者/var/lib/nfs/rmtab或xtab档案来检查,通知客户端断开连接
NFS客户端的设定(手动挂载):
1、确认本地端已经启动了rpcbind服务,系统默认已经启动
2、扫描NFS服务器分享的目录有哪些,并了解我们是否可以使用(showmount)
3、在本地端建立预计要挂载的挂载点目录(mkdir)
4、利用mount将远程主机直接挂载到相关目录
例如:mount -t nfs 192.168.100.254:/home/public /home/nfs/public
mount -t 参数是指定挂载的文件系统类型
使用df 或mount 指令查看文件系统挂载情况
挂载成功后,只要进入客户端的挂载点目录即进入了服务器NFS分享的目录
卸载直接使用 umount即可,例如: umount 本地挂载点目录
客户端的挂载参数与开机挂载:
mount时可指定的参数:suid|nosuid 、rw|ro、dev|nodev、exec|noexec、nouser|user、auto|noauto ;默认都是第一个
例如:mount -t nfs -0 nosuid,noexec,nodev,rw 192.168.100.254:/home/public /home/nfs/public
使用 mount | grep addr 查看客户端挂载情况
NFS特殊的挂载参数:在服务器关机或掉线却没有通知客户端的情况下,客户端只要使用到文件系统的指令则系统会很慢,为了解决这个问题,挂载时可以视情况添加下列参数:
fg|bg 挂载的行为是在前景(fg)还是背景(bg)
soft|hard :hard的情况,一方脱机,则RPC会持续呼叫,直到对方恢复联机位置;soft的情况,RPC会在time out后重复呼叫,而后持续呼叫
intr :当使用到hard方式挂载时,加上intr,则当RPC持续呼叫中,该次的呼叫是可以被中断的
rsize、wsize :读出(rsize)与写入(wsize)的区块大小(block size),设定值最好是达到网络能够传输的最大值为限
例如:mount -t nfs -0 nosuid,noexec,nodev,rw -o bg,soft,rsize=32768,wsize=32768 192.168.100.254:/home/public /home/nfs/public
将NFS开机时就挂载:
写入 /etc/rc.d/rc/local即可
例如:vim /etc/rc.d/rc.local
mount -t nfs -0 nosuid,noexec,nodev,rw,bg,soft,rsize=32768,wsize=32768 192.168.100.254:/home/public /home/nfs/public
NFS文件系统的自动挂载(使用时挂载):
autofs服务:主要配置文件是/etc/auto.master
1、建立主配置文件 /etc/auto.master,并指定侦测的特定目录(服务器NFS分享的目录的最上层目录)
例如: vim /etc/auto.master
/home/nfsfile /etc/auto.nfs
/home/nfsfile 不需要存在,autofs会主动的建立该目录
2、建立数据对应文件内(/etc/auto.nfs)的挂载信息与服务器对应资源
/etc/auto.nfs档案是不存在的,需要建立,格式是:
[本地端次目录] [-挂载参数] [服务器所提供的目录]
选项与参数:
[本地端次目录]:指的就是在/etc/auto.master内指定的目录的次目录
[-挂载参数] :就是rw,bg,soft 等等参数,可有可无;
[服务器所提供的目录]:例如 192.168.100.254:/home/public等
例如: vim /etc/auto.nfs
public -rw,bg,soft,rsize=32768,wsize=32768 192.168.100.254:/home/public
testing -rw,bg, soft,rsize=32768,wsize=32768 192.168.100.254:/home/test
tmp -rw,bg, soft,rsize=32768,wsize=32768 192.168.100.254:/tmp
参数部分,只要最前面加个 - 符号即可!
NFS服务器与客户端的使用者账号名称、UID最好要一致,可以避免权限错乱
NFS服务器预设对客户端的root进行权限压缩,通常压缩其成为nfsnobody或nobody
原文地址:http://blog.51cto.com/3134965/2140157