NFS(Network File System)即网络文件系统,是Linux/Unix支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
测试环境 CentOS7.3
NFS服务端配置
1.安装nfs-utils和rpcbind
# yum update
yum -y update
# install nfs
yum -y install nfs-utils rpcbind
2.启用和打开NFS相关服务rpcbind,nfs-server,nfs-lock,nfs-idmap。 注意需要先启动rpcbind
#enable services
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
# start nfs service
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
3.创建需要共享的目录
# setup share folder
mkdir /application/share
chmod -R 777 /application/share
#chown nfsnobody:nfsnobody /application/share
4.配置需要共享的目录到/etc/exports下,XXX.XXX.XXX.XXX为需要共享的对象IP地址
# write configs exports
echo "/application/share XXX.XXX.XXX.XXX(rw,sync,no_root_squash,no_all_squash)" >> /etc/exports
# reload exports
exportfs -a
服务器端的设定都是在/etc/exports这个文件中进行设定的,设定格式如下:
欲分享出去的目录 主机名称1或者IP1(参数1,参数2) 主机名称2或者IP2(参数3,参数4)
上面这个格式表示,同一个目录分享给两个不同的主机,但提供给这两台主机的权限和参数是不同的,所以分别设定两个主机得到的权限.
可以设定的参数主要有以下这些:
rw:可读写的权限;
ro:只读的权限;
no_root_squash:登入到NFS 主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用.
root_squash:在登入 NFS协议主机使用分享之目的使用者如果是使用者的都成 nobody 身份;
all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody.
anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中.
anongid:同 anonuid ,但是?成 group ID 就是了!
sync:资料同步写入存储器中.
async:资料会先暂时存放在内存中,不会直接写入硬盘.
insecure 允许从这台机器过来的非授权访问.
5.检查共享目录是否设置正确
# check if share works
showmount -e
6.调整防火墙配置
# config firewall
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --reload
NFS客户端配置
1.安装nfs-utils
# update
yum -y update
# install nfs
yum -y install nfs-utils
2.检查共享目录是否设置正确,XXX.XXX.XXX.XXX为共享服务器地址
# check if share works
showmount -e XXX.XXX.XXX.XXX
3.挂载远程服务器NFS分区到本地挂载点
# make mount points
mkdir /application/share
# mount nfs
mount -t nfs XXX.XXX.XXX.XXX:/application/share /application/share
#mount -vvv -t nfs XXX.XXX.XXX.XXX:/application/share /application/share -o ver=3
#unmount /application/share
4.NFS分区写入本地fstab文件系统
# setup fstab, must reboot
echo "XXX.XXX.XXX.XXX:/application/share /application/share nfs rw,sync,hard,intr 0 0" >> /etc/fstab
参考
https://www.howtoforge.com/nfs-server-and-client-on-centos-7
http://blog.chinaunix.net/uid-26557245-id-3428672.html