1.什么是nfs
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

2.搭建nfs
1.安装nfs-utils和rpcbind
yum install nfs-utils rpcbind
2.设置开机启动服务
chkconfig nfs on
chkconfig rpcbind on

3.启动相关服务
service rpcbind start
service nfs start
4.服务器配置
1)创建服务器共享目录
在128.111.67.73机器上创建mkdir /opt/img/uploadImg
2)编辑/etc/exports文件,添加如下项目

/opt/img/uploadImg 128.111.67.71/16(rw,sync,no_root_squash,no_all_squash)
/opt/img/uploadImg 128.111.67.72/16(rw,sync,no_root_squash,no_all_squash)
其中 /opt/img/uploadImg为服务器共享的目录,
128.111.67.71/16为可以访问的IP地址。
设置为*时(所有人都能访问)
括号内的常见参数有:
参数值 内容说明
rw  ro 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。

sync  async sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!

no_root_squash  root_squash 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!

all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦!

no_subtree_check 关闭子树检查

anonuid  anongid anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 啰。
其他选项可以通过man exports查阅man文档

刷新服务并重启服务。
exportfs -r
systemctl restart nfs

查看本机nfs服务器
showmount -e localhost

选项与参数:
-a :显示目前主机与客户端的 NFS 联机分享的状态;
-e :显示某部主机的 /etc/exports 所分享的目录数据
3.客户端配置
1.创建挂载点
mkdir /opt/apache-tomcat-7.0.96/webapps/ROOT/tmp/img

2.查看服务器抛出的共享目录信息
showmount -e 128.111.67.73

3.挂载目录
为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议
mount -t nfs -o vers=3 128.111.67.73:/opt/img/uploadImg /opt/apache-tomcat-7.0.96/webapps/ROOT/tmp/img -o proto=tcp -o nolock

4.查看挂载的目录
df -h