0. 环境说明

 

nfs服务端系统:CentOS 6.4 x86_64

nfs服务端IP:192.168.4.211

nfs客户端系统:CentOS 6.4 x86_64

nfs客户端IP:192.168.4.212

 

1. 安装NFS服务端(192.168.4.211)

 

Step-1:安装nfs-utils和rpcbind,运行以下命令:

yum install -y nfs-utils rpcbind

上述命令将安装rpcbind服务和nfs服务。

 

Step-2:为NFS指定固定端口,运行以下命令:

vi /etc/sysconfig/nfs

搜索和设置如下所示的端口配置:
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

 

Step-3:开放防火墙中的上述端口,运行以下命令:

iptables  -I INPUT -p tcp --dport 111 -j ACCEPT

iptables  -I INPUT -p udp --dport 111 -j ACCEPT

iptables  -I INPUT -p tcp --dport 2049 -j ACCEPT

iptables  -I INPUT -p udp --dport 2049 -j ACCEPT

iptables  -I INPUT -p tcp --dport 30001:30004 -j ACCEPT

iptables  -I INPUT -p udp --dport 30001:30004 -j ACCEPT

service iptables save

service iptables restart

 

Step-4:设置SELinux为许可状态,运行以下命令:

vi /etc/selinux/config

将上述文件中的
SELINUX=enforcing
替换为
SELINUX=permissive

保存上述文件之后,运行以下命令:
setenforce 0

 

Step-5:创建共享目录,运行以下命令:

mkdir -p /data/nfs_share

上述命令将建立共享目录/data/nfs_share。

 

Step-6:配置exports文件,运行以下命令:

vi /etc/exports

在上述文件的末尾新增一行,如下所示:
/data/nfs_share 192.168.4.212(rw,sync,no_root_squash)
/data/nfs_share *(ro)

这一行表示只有192.168.4.212客户端能够以读写权限挂载共享目录,其他客户端只能以只读权限挂载。

 

Step-7:启动NFS相关服务,运行以下命令:

chkconfig nfs on
chkconfig rpcbind on
service nfs start
service rpcbind start

 

Step-8:检查NFS的相关端口是否已经启用,运行以下命令:

service iptables status
rpcinfo -p localhost

 

2. 安装NFS客户端(192.168.4.212)

 

NFS客户端不需要启动NFS服务,但需要安装nfs-utils,运行以下命令:

yum install -y nfs-utils

 

3. 手动挂载NFS共享目录

 

Step-1:确定挂载点,运行以下命令:

showmount -e 192.168.4.211

-e选项显示NFS服务端的导出列表。

 

Step-2:创建挂载目录,运行以下命令:

mkdir -p /root/remote_dir

其中,/root/remote_dir为共享目录的挂载点目录。

 

Step-3:挂载共享目录,运行以下命令:

mount -t nfs 192.168.4.211:/data/nfs_share /root/remote_dir

其中,-t选项用于指定文件系统的类型为nfs。

 

Step-4:共享目录使用结束之后,卸载共享目录,运行以下命令:

umount /root/remote_dir

 

4. 开机自动挂载

 

向fstab文件中添加共享目录的挂载条目,即可实现开机自动挂载,但是随后与NFS服务端的连接将始终处于活动状态。运行以下命令:

mkdir -p /root/remote_dir
vi /etc/fstab

在上述文件末尾加入共享目录的挂载条目,如下所示:
192.168.4.211:/data/nfs_share /root/remote_dir nfs defaults 0 0

其中,第5个字段设置为0表示共享目录的文件系统不需要使用dump命令进行转储,第6个字段设置为0表示共享目录的文件系统不需要使用fsck命令进行检查。

 

除此之外,还可以使用自动挂载器(autofs)实现按需自动挂载网络共享目录。当共享不再使用,并处于不活动状态一定时间之后,自动挂载器会对共享解除挂载。

 

5. 按需自动挂载(特殊映射)

 

当autofs服务运行时,系统中存在一个名为/net的特殊目录,但是该目录将显示为空。NFS客户端通过特殊映射实现按需自动挂载共享目录的步骤如下所示:

 

Step-1:修改不活动状态的超时时间,运行以下命令:

vi /etc/sysconfig/autofs

将上述文件中的
TIMEOUT=300
替换为
TIMEOUT=600
也就是将不活动状态的超时时间由5分钟修改为10分钟。

配置完成之后,重启autofs服务:
service autofs restart

 

Step-2:访问网络共享目录,运行以下命令:

cd /net/192.168.4.211/data/nfs_share

运行上述命令时,autofs会自动挂载NFS服务端中的网络共享目录。

 

Step-3:卸载已挂载的网络共享目录,详情如下所示:

在/net/192.168.4.211/data/nfs_share之下的所有文件和目录停止使用且超时期满之后(10分钟),autofs将卸载共享目录。

 

6. 按需自动挂载(间接映射)

 

Step-1:修改不活动状态的超时时间,运行以下命令:

vi /etc/sysconfig/autofs

将上述文件中的
TIMEOUT=300
替换为
TIMEOUT=600
也就是将不活动状态的超时时间由5分钟修改为10分钟。

 

Step-2:建立共享目录挂载点的父目录,运行以下命令:

mkdir -p /root/demo

 

Step-3:配置共享目录挂载点的父目录,运行以下命令:

vi /etc/auto.master

上述文件的内容如下所示:
/root/demo    /etc/auto.demo

其中,/root/demo是挂载点的父目录,这个目录在系统中始终可见,并由autofs服务监控,以确定是否“需要”挂载/创建子目录挂载点。/etc/auto.demo为单个配置文件,包含由autofs服务在此父目录下管理的子目录挂载点的列表。

 

Step-4:配置共享目录挂载点目录,运行以下命令:

vi /etc/auto.demo

上述文件的内容如下所示:
remote_dir -rw 192.168.4.211:/data/nfs_share

其中,remote_dir为子目录挂载点,此目录通常不可见,只有当autofs服务创建此目录和挂载共享之后对其进行直接命名/访问时,它才会变为可见。-rw为挂载网络共享时要使用的挂载选项。192.168.4.211:/data/nfs_share为需要挂载的NFS服务端和共享目录。

 

Step-5:重新启动autofs服务,运行以下命令:

service autofs restart

 

Step-6:访问网络共享目录,运行以下命令:

cd /root/demo/remote_dir

运行上述命令之后,autofs将自动创建挂载点目录,并且挂载共享目录。

 

Step-7:卸载网络共享目录,详情如下所示:

在/root/demo/remote_dir之下的所有文件和目录停止使用且超时期满之后(10分钟),autofs将卸载共享目录。