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之间不能有空格,否则客户端挂载的目录会变成只读.. ---->同学分享,待验证