nfs工作流程
- 由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。
- NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
- 客户端获取正确的端口,并与NFS daemon联机存取数据。
- 存取数据成功后,返回前端访问程序,完成一次存取操作。
nfs服务端安装
安装nfs的配件
yum -y install nfs-utils rpcbind
编写配置文件
vi /etc/exports
/opt/test/ *(rw,no_root_squash,no_all_squash,sync,anonuid=506,anongid=506)
exportfs -r
配置文件说明
- /opt/test 为共享目录
-
- 为网段
- rw:read-write,可读写
- ro:read-only,只读
- sync:文件同时写入硬盘和内存
- async:文件暂存于内存,而不是直接写入内存
- no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的
- root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份
- all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限
- anonuid:匿名用户的UID值,大于500开始
- anongid:匿名用户的GID值,大于500开始
启动服务
systemctl start rpcbind
systemctl start nfs
chkconfig rpcbind on
chkconfig nfs on
nfs客户端安装
安装
yum -y install nfs-utils
mount挂载使用:
mount -t nfs 10.10.90.1:/opt/test /mnt -o nolock
如果挂载出错可以使用如下方式:
mount -t nfs 10.10.90.1:/opt/test /mnt -o proto=tcp -o nolock
nfs测试
在NFS客户端上执行以下命令,将本机的IP地址信息输出到NFS目录下的test.txt文件中:
ip addr > /mnt/test.txt
在服务端中可以看到/opt/test/text.txt文件已经被创建。
客户端取消挂载
umount /mnt