NFS即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS最早由Sun公司开发,分2、3、4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本。
搭建部署
服务端
1、安装软件
[[email protected] ~]# yum install -y nfs-utils rpcbind
2、编辑配置文件
[[email protected] ~]# vim /etc/exports /home/nfssharedir 192.168.137.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) ##配置格式:共享目录 客户端IP(参数1,参数2,参数.......)
▎参数说明:
rw:允许读写;
ro:只允许读;
sync:同步模式,内存数据实时写入磁盘,影响性能;
async:非同步模式,数据有丢失风险;
no_root_squash:客户端挂载NFS共享目录后,root用户不受约束,权限很大;
root_squash:与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户;
all_squash:客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户;
anonuid/anongid:和上面几个选项搭配使用,定义被限定用户的uid和gid。
3、授权
[[email protected] ~]# mkdir -p /home/nfssharedir [[email protected] ~]# chown 777 /home/nfssharedir
4、检查与启动
[[email protected] ~]# netstat -ltnp [[email protected] ~]# systemctl start nfs [[email protected] ~]# ps aux | grep nfs [[email protected] ~]# ps aux | grep rpc [[email protected] ~]# systemctl enable nfs
客户端
[[email protected] ~]# yum install -y nfs-utils [[email protected] ~]# showmount -e 192.168.137.100
如果没有效果,先确认服务端服务已经启动,再确认服务端和客户端的防火墙已经关闭后,再次尝试。
也可以挂载:
[[email protected] ~]# mount -t nfs 192.168.137.100:/home/nfssharedir /mnt/
exportfs
重启nfs服务时,需要把所有挂载点卸载掉。可以使用exportfs -arv命令。
1、编辑配置文件
[[email protected] ~]# vim /etc/exports /home/nfssharedir 192.168.137.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) /tmp 192.168.137.200(rw,sync,no_root_squash) ##新增该行
2、执行exportfs -arv命令
[[email protected] ~]# exportfs -arv exporting 192.168.137.200:/tmp exporting 192.168.137.0/24:/home/nfssharedir
3、关闭服务端和客户端防火墙
4、检查效果
[[email protected] ~]# showmount -e 192.168.137.100 [[email protected] ~]# mount -t nfs 192.168.137.100:/tmp/ /mnt/
▎NFS 4/6版本会有该问题(客户端文件属主属组nobody)
1、CentOS 7版本系统如果出现问题解决方案:
客户端挂载服务端共享目录到挂载点后,再重新挂载一次同时指定NFS的版本为3;
2、CentOS 6可以这样解决:
客户端和服务端都需要修改如下配置文件内容:
vim /etc/idmapd.conf
把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启rpcidmapd服务。
本文出自 “Gorilla City” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1959153