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,运行以下命令:
代码语言:javascript复制yum install -y nfs-utils rpcbind
上述命令将安装rpcbind服务和nfs服务。
Step-2:为NFS指定固定端口,运行以下命令:
代码语言:javascript复制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为许可状态,运行以下命令:
代码语言:javascript复制
vi /etc/selinux/config
将上述文件中的
SELINUX=enforcing
替换为
SELINUX=permissive
保存上述文件之后,运行以下命令:
setenforce 0
Step-5:创建共享目录,运行以下命令:
代码语言:javascript复制mkdir -p /data/nfs_share
上述命令将建立共享目录/data/nfs_share。
Step-6:配置exports文件,运行以下命令:
代码语言:javascript复制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相关服务,运行以下命令:
代码语言:javascript复制chkconfig nfs on
chkconfig rpcbind on
service nfs start
service rpcbind start
Step-8:检查NFS的相关端口是否已经启用,运行以下命令:
代码语言:javascript复制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_dirvi /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:修改不活动状态的超时时间,运行以下命令:
代码语言:javascript复制
vi /etc/sysconfig/autofs
将上述文件中的
TIMEOUT=300
替换为
TIMEOUT=600
也就是将不活动状态的超时时间由5分钟修改为10分钟。
Step-2:建立共享目录挂载点的父目录,运行以下命令:
代码语言:javascript复制mkdir -p /root/demo
Step-3:配置共享目录挂载点的父目录,运行以下命令:
代码语言:javascript复制vi /etc/auto.master
上述文件的内容如下所示:
/root/demo /etc/auto.demo
其中,/root/demo是挂载点的父目录,这个目录在系统中始终可见,并由autofs服务监控,以确定是否“需要”挂载/创建子目录挂载点。/etc/auto.demo为单个配置文件,包含由autofs服务在此父目录下管理的子目录挂载点的列表。
Step-4:配置共享目录挂载点目录,运行以下命令:
代码语言:javascript复制
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服务,运行以下命令:
代码语言:javascript复制service autofs restart
Step-6:访问网络共享目录,运行以下命令:
代码语言:javascript复制cd /root/demo/remote_dir
运行上述命令之后,autofs将自动创建挂载点目录,并且挂载共享目录。
Step-7:卸载网络共享目录,详情如下所示:
代码语言:javascript复制在/root/demo/remote_dir之下的所有文件和目录停止使用且超时期满之后(10分钟),autofs将卸载共享目录。