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 |
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将卸载共享目录。 |