14.1 NFS介绍
- NFS是Network File System的缩写,它基于网络层面的,借助网络实现数据同步.
- NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本.
- NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写.
- NFS应用场景: A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致.
- 小结: NFS服务需要借助RPC协议来实现通信.
14.2 NFS服务端安装配置
- 安装nfs和rpc两个服务包: yum install -y nfs-utils rpcbind
- 编辑nfs配置文件: vim /etc/exports
- 加入如下内容 /home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
- 说明: /home/nfstestdir为nfs服务端用于共享的目录,其后192.168.133.0/24...这段是配置让哪些机器(nfs客户端机器)能访问该共享目录.
- 保存配置文件后,执行如下准备操作: mkdir /home/nfstestdir #创建共享目录 chmod 777 /home/nfstestdir #更改共享目录权限为777方便之后实验操作 systemctl start rpcbind #启动rpcbind服务 systemctl start nfs ##启动nfs服务 systemctl enable rpcbind #让rpcbind服务能开机启动 systemctl enable nfs #让nfs服务能开机启动
- 补充说明: rpcbind服务会监听111端口,以实现和客户端的数据同步.
14.3 NFS配置选项和客户端挂载
-
1. NFS配置选项
-
NFS配置文件/etc/exports中 /home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
-
配置选项的含义:
-
rw 读写
-
ro 只读
-
sync
同步模式,内存数据实时写入磁盘(因为实时写入磁盘,磁盘效率会降低). -
async 非同步模式(因为非实时写入磁盘,断电等特殊情况可能会没来得及写入磁盘而丢失数据).
-
no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大.
-
root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户.
-
all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户.
-
anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid.
-
2. NFS客户端挂载
-
NFS客户端需要将NFS服务端的共享目录挂载到本地(比如/mnt目录下),以方便实现数据的同步.
-
安装nfs-utils yum install -y nfs-utils
-
查询NFS服务器可挂载信息: showmount -e 192.168.133.130 #该ip为NFS服务端ip
-
挂载NFS服务端共享目录到本地/mnt目录 mount -t nfs 192.168.133.130:/home/nfstestdir /mnt
-
df -h #查询挂载信息
-
touch /mnt/aminglinux.txt #创建一个测试文件
-
ls -l /mnt/aminglinux.txt #可以看到文件的属主和属组都为1000
- 注意事项:
- (1)使用showmount时可能会遇到无法连接的情况,这时除了确保NFS服务端的nfs,rpc服务有开启外,建议先暂时关闭双方的防火墙和selinux. setenforce 0 #关闭selinux systemctl stop firewalld #关闭防火墙
- (2)/etc/exports文件中的/home/nfstestdir 192.168.133.13(rw,sync,all_squash,anonuid=1000,anongid=1000) ip与(rw之间不能有空格,否则客户端挂载的目录会变成只读.. ---->同学分享,待验证