实验环境:centos7.6,2G内存,50G硬盘大小,虚拟机服务端ip:172.16.1.31 客户端ip:172.16.1
.41
服务端部署流程
第一步:安装软件
yum -y install nfs-utils rpcbind
第二步:编写配置文件/etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1001,anongid=1001)
01 02 03
01:要实现存储的目录
02:允许访问的IP网段的白名单(可以使用内网地址,也可以使用外网地址)
03:存储目录的权限信息和功能
nfs配置文件中参数的作用:
参数 | 作用 |
---|---|
rw | 存储目录具有只读权限 |
ro | 存储目录具有读写权限 |
sync | -同步方式存储数据,直接将数据存储到磁盘中(数据存储安全高,存储效率慢) |
async | 异步方式存储数据,直接将数据存储到内存中(提高存储效率,安全性低) |
no_root_squash | 不要将root用户转换,这里不转化也能执行读写执行操作 |
root_squash | 将root用户转换 |
all_squash | 将所有用户都进行转换 |
no_all_squash | 不要将普通用户转换 |
第三步:创建存储目录并修改属主
mkdir /data
chown -R nfsnobody. /data
第四步:启动服务
先启动rpc服务:systemctl start rpcbind systemctl enable rpcbind
先启动nfs服务:systemctl start nfs systemctl enable nfs
客户端部署流程
第一步:安装软件
yum -y install nfs-utils
第二步:实现远程挂载共享目录
mount -t nfs 172.16.1.31:/data /mnt
df -h
第三步:实现开机自动挂载
vim /etc/fstab
172.16.1.31:/data /mnt defaults 0 0
工作原理
服务端:
1)启动rpc服务,开启111端口 rpcinfo -p 172.16.1.31(或者localhost) 检查nfs服务进程和端口注册信息
2)启动nfs服务
3)实现nfs服务进程和端口号的注册
客户端:
1)建立TCP网络连接
2)客户端执行挂载命令,进行远程挂载
3)可以实现数据远程传输存储
4) 检查nfs服务进程与端口注册信息
没有注册的时候:
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
nfs服务注册之后:
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 53997 status
100024 1 tcp 49863 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
NFS服务挂载不上排查方法:
服务端进行排查:
- 检查nfs进程信息是否注册
rpcinfo -p localhost/172.16.1.31
问题原因:
服务启动顺序不对,没有启动nfs服务 - 检查有没有可用存储目录
showmount -e 172.16.1.31
问题原因:
配置文件编写有问题,重启nfs服务 - 在服务端进行挂载测试
是否能够在存储目录中创建或删除数据
客户端测试: - 检查nfs进程信息是否注册
rpcinfo -p localhost/172.16.1.31
问题原因:
服务启动顺序不对,没有启动nfs服务 - 检查有没有可用存储目录
showmount -e 172.16.1.31
问题原因:
配置文件编写有问题,重启nfs服务
网络问题
ping 172.16.1.31
telnet 172.16.1.31 111
刚开始学Linux的菜鸟,如果有什么问题,欢迎大家指正,谢谢大家!