NFS即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS最早由Sun公司开发,分2、3、4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本。

部署NFS服务_nfs

搭建部署

服务端

1、安装软件

[root@plinuxos ~]# yum install -y nfs-utils rpcbind

2、编辑配置文件

[root@plinuxos ~]# 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、授权

[root@plinuxos ~]# mkdir -p /home/nfssharedir
[root@plinuxos ~]# chown 777 /home/nfssharedir

4、检查与启动

[root@plinuxos ~]# netstat -ltnp
[root@plinuxos ~]# systemctl start nfs
[root@plinuxos ~]# ps aux | grep nfs
[root@plinuxos ~]# ps aux | grep rpc
[root@plinuxos ~]# systemctl enable nfs

客户端

[root@test-03 ~]# yum install -y nfs-utils
[root@test-03 ~]# showmount -e 192.168.137.100

如果没有效果,先确认服务端服务已经启动,再确认服务端和客户端的防火墙已经关闭后,再次尝试。

也可以挂载:

[root@test-03 ~]# mount -t nfs 192.168.137.100:/home/nfssharedir /mnt/


exportfs

重启nfs服务时,需要把所有挂载点卸载掉。可以使用exportfs -arv命令。

1、编辑配置文件

[root@plinuxos ~]# 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命令

[root@plinuxos ~]# exportfs -arv
exporting 192.168.137.200:/tmp
exporting 192.168.137.0/24:/home/nfssharedir

3、关闭服务端和客户端防火墙

4、检查效果

[root@test-03 ~]# showmount -e 192.168.137.100
[root@test-03 ~]# 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服务。