NFS:Network FileSystem
最大的功能就是可以透过网络,让不同的机器、不同的操作系统,可以彼此分享个别的档案。
NFS使用的是远程过程调用协议(RPC,Remote Procedure Call)
启动nfs服务的首要条件:Server端和Client端都必须启动了portmap服务,在Server端启动了nfs服务;在挂载的时候,最好是uid和gid在server和client是相同的
1.查询是否安装套件portmap和nfs
A rpm -qa|grep nfs:nfs-utils用来提供rpc.nfsd及rpc.mountd这两个NFS daemons与其他documents与说明文件
、执行档等的套件,是NFS的主要套件。
rpc.nfsd:主要功能管理client端是否能够登入主机的权限,还包括对这个登入者的id的判别
rpc.mountd:管理NFS档案系统,通过-rwxrwxrwx判定档案使用权限;读取NFS设定档/etc/exports来比对
Client的权限
B rpm -qa|grep portmap:端口之间的对应关系
2.NFS的套件结构
A /etc/exports:这个档案是NFS的主要设定档,系统无默认值,可能需要用vi进行新建
B /usr/sbin/exportfs:维护NFS分享资源的指令,用在server端
C /usr/sbin/showmount:查看NFS分享出来的目录资源,用在client端
D /var/lib/nfs/xtab:这个档案是主要的NFS的记录文件
3./etc/exports的设定
格式:[欲分享的目录] [主机名称1或IP1(参数1,参数2)] [主机名称2或IP2(参数3,参数4)]
解释:欲分享的目录主要是分享给主机名称1和主机名称2,但是提供给这两者的权限不一样
rw:可擦写的权利;ro:只读的权限;no_root_squash:登入NFS主机使用分享目录的使用者,如果是root的话,那么对于这
个分享的目录来说,他就有root的权限,这个项目极不安全;root_suqsh:在登入NFS主机使用分享之目录的使用者如果是
root的话,那么这个使用者的权限将被压缩成为匿名使用者,通常他的UID和GID都会变成nobody那个系统账号的身份;
all_squash:不论登入NFS的使用者是谁,他的身份都会被压缩为匿名使用者,通常也就是nobody了;anonuid:*_squash的
匿名使用者UID设定值,这个UID必须存在于/etc/passwd中;anongid,这个是匿名使用者的GID;sync:数据同步写入到内存
与硬盘当中;async:数据线暂存于内存当中,而非直接写入硬盘。
4.关于权限的问题:注意在exports里面的anonuid和anongid的设置,并且需要对应这个id在server上面是否存在这个用户
5.启动服务
service portmap start
加入开机启动 chkconfig portmap on
service nfs start
加入开机启动 chconfig nfs on
exportfs -rv 全部重新export一次
exportfs -au 全部都卸载了
showmount [-ae] hostname
-a 在屏幕上显示目前主机与client所连上来的使用目录状态
-e 显示hostname这部机器的/etc/exports里面分享的目录
6.RPC Server的相关指令
rpcinfo [-p] hostname(orIP)
-p:显示所有的port与program的信息
查看Server中的portmap端口,portmap端口号为111
netstat -tuln|grep 111
7.Client端的设定
A 检查可以使用的Server目录
showmount -e hostname(orIP)
B 进行挂载
mount -t nfs hostname(orIP):/directory /mount/point
C 查看远程主机的容量
df
8.无法挂载的问题
A Permission denied:权限问题,去NFS服务器查看/etc/exports并进行修改
B mount: RPC: Port mapper failure - RPC: Unable to receive 或者是 mount: RPC: Program not registered
:原因portmap服务未启动
C 防火墙设置,在iptables的规则当中必须要开放111端口
iptables -A INPUT -p TCP --dport 111 -j ACCEPT
iptables -A INPUT -p UDP --dport 111 -j ACCEPT
D 防火墙设置,在TCP_Wrappers出现问题
检查/etc/hosts.deny 如果有ALL:ALL,那么在/etc/hosts.allow加入这一行 portmap:ALL
9.关机注意事项
NFS Server 想要关机之前,能先『关掉 portmap 与 nfs 』这两个东西!如果无法正确的将这两个 daemons 关掉
,那么先以 netstat -utlp 找出 PID ,然后以 kill 将他关掉先!这样才有办法正常的关机成功