NFS客户端和NFS服务端通讯过程
1.首先服务器端启动RPC服务,并开启111端口
2.服务器端启动NFS服务,并向RPC注册端口信息
3.客户端启动RPC(portmap服务),向服务端的RPC请求服务端的NFS端口
4.服务端的RPC反馈NFS端口信息给客户端
5.客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输
一、安装NFS软件(默认已安装)
要部署NFS服务,服务端和客户端都需要安装这两个软件
nfs-utils:NFS主程序
rpcbind:PRC主程序
# 安装
sudo pacman -S nfs-utils
sudo pacman -S rpcbind
二、配置NFS服务端
编辑 /etc/exports,添加格式如下
# [共享目录] [客户端地址1(权限)] [客户端地址2(权限)] ...
# [共享目录] [客户主机名1(权限)] [客户主机名2(权限)] ...
# 设置目录最高权限 sudo chmod 777 [共享目录]
/tftp1 10.82.16.233(rw,no_root_squash,no_subtree_check,sync)
/tftp2 *(rw,no_root_squash,no_subtree_check,sync)
(权限)参数列表:
rw读写属性
ro只读属性
sync文件实际写入磁盘后才返回
all_squash:所有访问用户均被压缩成后续接的用户
anonuid:默认压缩的用户
anongid:默认压缩的用户组
*:所有主机
三、启动服务端NFS服务
先启动 [rpcbind],然后启动 [nfs-server]
systemctl start rpcbind.service
systemctl start nfs-server.service
将他们设置为开机启动
systemctl enable rpcbind.service
systemctl enable nfs-server.service
查看当前状态
systemctl status rpcbind
systemctl status nfs-server
四、配置客户端NFS服务
1 启动rpcbind服务并设置为开机启动(hisiv 3519跳过这一步)
systemctl enable rpcbind.service
systemctl start rpcbind.service
#客户端不需要启动nfs服务
2 将服务器的共享目录挂载到客户端的目录下:
新建共享目录:mkdir -p /mnt/code
修改权限:chmod 777 /mnt/code -R
。
挂载到客户端:
挂载到开发版 mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 IP:/code /mnt/code
挂载到Linux mount -t nfs -o nolock -o tcp IP:/code /mnt/code
挂载到windows mount -o mtype=soft -o timeout=3 -o retry=3 -o nolock \\IP\code H:
IP:/code 是服务器的IP地址和共享目录, /mnt 是客户端的目录,mtype=soft为软挂载,timeout为RPC调用超时秒值,retry为软挂载重试次数,这样设置客户端不容易卡死。
挂载后就可以从客户端的 /mnt 目录访问服务器/code目录下的内容了。
查看是否挂载成功 df -h
。
五、其他命令
服务器配置:
exportfs :在服务的查看已经开启的共享目录命令
exportfs -r :修改 /etc/exports 服务配置后马上生效
如果出现:
exportfs: could not open /var/lib/nfs/.etab.lock for locking: errno 13 (Permission denied)
exportfs: can't lock /var/lib/nfs/etab for writing
解决办法:sudo chmod 777 -R /var/lib/nfs
再重新执行。
客户端:
showmount -e nfs :检查 NFS 服务器端是否有目录共享
服务控制 [rpcbind] 和 [nfs-server] :
systemctl status [服务名]:查看当前状态
systemctl restart [服务名]:重新启动服务
systemctl disable [服务名]:停止开机启动
防火墙:
sudo systemctl status firewalld.service
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
更多详细可以参考:NFS服务基本配置及使用