NFS(网络文件系统)即网络文件系统,是 Linux/Unix 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。
测试环境 CentOS7.3
NFS 服务端配置 1. 安装 nfs-utils 和 rpcbind
# yum update
yum -y update
安装 nfs#
yum -y install nfs-utils rpcbind
2. 启用和打开 NFS 相关服务 rpcbind,nfs-server,nfs-lock,nfs-idmap。 注意需要先启动 rpcbind
启用服务#
systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
启动 nfs 服务#
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
3. 创建需要共享的目录
# 设置共享目录
mkdir /application/share
chmod -R 777 /application/share
#chown nfsnobody /application/share
4. 配置需要共享的目录到 /etc/exports 下,XXX.XXX.XXX.XXX 为需要共享的对象 IP 地址
# 写入配置到 exports
echo "/application/share XXX.XXX.XXX.XXX(rw,sync,no_root_squash,no_all_squash)" >> /etc/exports
重新加载 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. 检查共享目录是否设置正确
# 检查共享是否正常
showmount -e
6. 调整防火墙配置
# 配置防火墙
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
# 更新
yum -y update
安装 nfs#
yum -y install nfs-utils
2. 检查共享目录是否设置正确,XXX.XXX.XXX.XXX 为共享服务器地址
# 检查共享是否正常
showmount -e XXX.XXX.XXX.XXX
3. 挂载远程服务器 NFS 分区到本地挂载点
# 创建挂载点
mkdir /application/share
挂载 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
#卸载 /application/share
4.NFS 分区写入本地 fstab 文件系统
# 设置 fstab, 必须重启
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