一、 NFS的简介:
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

NFS在文件传送或信息传送过程中依赖于RPC协议,RPC远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制,NFS本身是没有提供信息传输的协议和功能的。

NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS、GFS等等分布式文件系统。
二、  服务端安装配置
1、NFS文件系统安装配置
yum  install  nfs*  rpcbind  -y
  
NFS安装完毕,需要创建共享目录,共享目录在vi  /etc/exports文件里面配置,可配置参数如下,在配置文件中添加如上一行,然后重启Portmap:
/data/      *(rw,no_root_squash,no_all_squash,sync)

配置文件详解:
/data/            表示需要共享的目录。
IP                表示允许哪个客户端访问。
IP后括号里的设置表示对该共享文件的权限。
ro                只读访问
rw                读写访问
sync              所有数据在请求时写入共享
all_squash        共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash     保留共享文件的UID和GID(默认)
root_squash       root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squash    root用户具有根目录的完全管理访问权限
配置生效:
xportfs -r
重启NFS服务即可
service rpcbind restart ;service nfs restart

查看 RPC 服务的注册状况
rpcinfo -p localhost
选项与参数:
-p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
-t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
-u :针对某主机的某支程序检查其 UDP 封包所在的软件版本

三、 客户端安装配置
1、安装nfs-utils客户端
[root@bogon ~]# yum -y install nfs-utils

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

Linux客户端,如何想使用这个NFS文件系统,需要在客户端挂载,挂载命令为(为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议):
mount –t  nfs  10.6.191.208:/data/   /mnt  -o proto=tcp -o nolock

如果有报错根据错误信息排查。常见问题有rpc服务没有启动、防火墙没关闭、selinux未关闭等问题。(拓展* 有兴趣的童鞋可以研究MFS(分布式文件系统
 
查看挂载结果
三、报错信息
PS报错信息:

1、
解决方法:
rpcinfo -p
rpm -qa |grep nfs-utils
yum -y install nfs-utils
systemctl start nfs-utils
systemctl enable  nfs-utils
rpcinfo -p
mount -t nfs 10.6.191.183:/nfs /home/ddsc/data/
四、 autofs的自动挂载
autofs是根据需要自动挂载,默认5分钟不使用自动卸载挂载点!nfs,smb,iso,sd*的挂载
环境:RHEL6.5/Centos6.5    172.24.0.25

01、安装autofs
um install -y autofs
   rpm  -ql  autofs | less   #查看配置文件位置
配置文件:
 
/etc/auto.master   #主配置
    /etc/auto.misc       #挂载点配置样板
02、测试autofs
vim     /etc/auto.mvp
nfs       -fstype=nfs         172.24.0.24:/share      ###nfs 是挂载点
  
vim    /etc/auto.master

/mvp   /etc/auto.mvp       ###加载配置文件  /mvp进入挂载点的路径
service autofs restart
[root@zabbix_proxy etc]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2       40254272 11193596  28651804  29% /
tmpfs             436668       72    436596   1% /dev/shm      ###未挂载
[root@zabbix_proxy etc]# cd /mvp/
[root@zabbix_proxy mvp]# ll
总用量 0
[root@zabbix_proxy mvp]# cd nfs                                                       ###进入挂载点,看到nfs共享的文件,切压制为nobody
[root@zabbix_proxy nfs]# ll
总用量 4
-rw-rw-rw-. 1 nobody nobody 3 12月 28 11:57 hello
[root@zabbix_proxy nfs]# df
Filesystem         1K-blocks     Used Available Use% Mounted on
/dev/sda2           40254272 11193592  28651808  29% /
tmpfs                 436668       72    436596   1% /dev/shm
172.24.0.24:/share  40051584 20146944  19497728  51% /mvp/nfs      ####显示已挂载
[root@zabbix_proxy nfs]# mkdir go
[root@zabbix_proxy nfs]# touch xiaobang
[root@zabbix_proxy nfs]# ll                                                               ###测试可以新建文件
总用量 8
drwxr-xr-x. 2 nobody nobody 4096 12月 28 12:04  go
-rw-rw-rw-. 1 nobody nobody    3 12月 28 11:57 hello
-rw-r--r--. 1 nobody nobody    0 12月 28 12:04 xiaobang

03、挂载时间等信息配置
/etc/sysconfig/autofs
#MASTER_MAP_NAME="auto.master"      ###主配置文件auto.master
#
# TIMEOUT - set the default mount timeout in secons. The internal
#           program default is 10 minutes, but the default installed
#           configuration overrides this and sets the timeout to 5
#           minutes to be consistent with earlier autofs releases.
#
TIMEOUT=300                                       ###定义的空闲时间5min
###NF
S服务端配置
环境:Centos6.5 172.24.0.24
yum install -y nfs-utils rpcbind         ###一般rpcbind都默认安装并开机自启动
vim /etc/exports

/openshare       172.24.0.0/16(rw,sync,all_squash)      ###rw,切压制为nobody, 可写  chmod -R  a+w /openshare
service nfs restart
exportfs         ###刷新nfs共享
showmount   ###查看共享列表
01-11 00:15
查看更多