NFS服务介绍
- NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。
- NFS数据传输基于RPC协议
- 结论:RPC存在的意义是为了解决NFS服务端和客户端通信多端口并且口不固定的问题
- NFS的服务端和客户端通信时,并不是只有一个端口
- 端口还不固定,需要有一个中心,来记录这些不固定的端口
NFS服务端安装配置
- 服务端跟客户端都需要安装
yum install -y nfs-utils
- 创建要共享的目录
mkdir /home/nfstestdir
- 服务端编辑NFS配置文件
vim /etc/exports //加入如下内容
/home/nfstestdir
192.168.1.10/24(rw,stnc,all_squash,anonuid=1000,anongid=1000)
- 保存配置文件后,客户端执行如下操作准备,/nfstestdir/ 是我们要挂载共享的目录
showmount -e 192.168.1.10
mount -t nfs 192.168.1.10:/home/nfstestdir /data/
- 设置客户端开机自动挂载共享目录
vim /etc/fstab
192.168.1.10:/usr/local/src/nfs_data /data nfs defaults 0 0
- 启动NFS服务,并且设置开机启动
systemctl start nfs-server
systemctl enable nfs-server
NFS配置选项
- rw 读写
- ro 只读
- sync 同步模式,内存数据实时写入磁盘
- async 非同步模式,可以提升你NFS的读写速度
- no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
- root_squash 与上面选项相对,客户端上的root用户受到约束,被限定成某个普通用户
- all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通户
- anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
exportfs命令
- exportfs的作用在于,不影响正在使用的NFS服务,避免增加共享目录,影响正在使用的
- 服务端编辑exports文件新增加/tmp/目录共享
vim /etc/exports
/tmp/ 192.168.1.10/16(rw,async,no_root_squash)
- 服务端重新加载NFS目录,配置文件就会生效
exportfs -arv
- 客户端查看服务端共享的目录
showmount -e 192.168.1.10
- 客户端挂载共享目录
mount -t nfs 192.168.1.10:/tmp/ /usr/local/src/data1/
- 设置客户端开机自动加载共享目录
192.168.1.10:/tmp /usr/local/src/data1 nfs defaults 0 0
- 常用选项
- -a 全部挂载或者全部卸载
- -r 重新挂载
- -u 卸载某一个目录
- -v 显示共享目录