NFS是Network File System的缩写vim
NFS最先由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本 NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。app
NFS应用场景是:A,B,C三台机器上须要保证被访问到的文件是同样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致dom
在服务端安装 nfs-utils、rpcbind 这两个包 yum install -y nfs-utils rpcbindasync
在客户端安装 nfs-utils 这一个包 yum install -y nfs-utils ui
在服务端编辑 /etc/exports 这个文件 vim /etc/exportsspa
写入 /home/nfstestdir 192.168.130.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)内存
建立须要共享的目录并给予合适的权限ci
查看服务端监听端口发现rpcbind服务已启动 若是没有启动用 systemctl start rpcbind 命令来启动开发
查看客户端监听端口发现rpcbind服务已启动 若是没有启动用 systemctl start rpcbind 命令来启动rpc
启动服务端nfs服务 systemctl start nfs
服务端让nfs服务 开机启动 systemctl enable nfs
rw 读写 ro 只读
sync 同步模式,内存数据实时写入磁盘
async 非同步模式
no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
all_squash 客户端上全部用户在使用NFS共享目录时都被限定为一个普通用户
anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
关闭服务端和客户端的防火墙和SELinux systemctl stop firewalld setenforce 0
挂载
进入到客户端mnt目录并建立一个新的文件
查看服务端/home/nfstestdir/目录下也有相同的文件
可是文件的 属主、属组 都不同 这是由于咱们配置/etc/exports这个文件时 anonuid=1000,anongid=1000 这两个参数限定的
anonuid=1000 限定用户uid为1000的用户
anongid=1000 限定用户gid为1000的组
经常使用选项
-a 所有挂载或者所有卸载
-r 从新挂载
-u 卸载某一个目录
-v 显示共享目录
vim /etc/exports
增长 /tmp/ 192.168.130.116(rw,sync,no_root_squash) 服务端
exportfs -arv 卸载所有并马上重载 服务端
showmount -e 192.168.130.116 客户端
mount -t nfs 192.168.130.116:/tmp/ /mnt/ 客户端
NFS 4版本会有该问题
客户端挂载共享目录后,无论是root用户仍是普通用户,建立新文件时属主、属组为nobody
客户端挂载时加上 -o nfsvers=3
客户端和服务端都须要
vim /etc/idmapd.conf //
把“#Domain = local.domain.edu” 改成 “Domain = xxx.com” (这里的xxx.com,随意定义吧),而后再重启rpcidmapd服务