场景模拟

多台服务器之间需要共享目录

  • 服务器A(192.168.4.77)
  • 服务器B(192.168.4.29)
  • 服务器C(192.168.4.11)
  • 服务器...

这里模拟将服务器A上的 /home/zml/softwares 目录共享给其他服务器使用

一、检查环境

无论服务端(被共享目录的服务器)还是客户端(使用共享目录的服务器)都要先进行以下操作

1. 检查nfs软件环境

检查每一台服务器上是否安装了nfs-utils rpcbind这两个软件,如果没有使用yum install 安装

rpm -qa | grep nfs-utils 
rpm -qa | grep rpcbind

当有类似以下结果时,则说明当前服务器装有必要的软件,无需再次安装

[root@icell-test softwares]# rpm -qa | grep nfs-utils 
nfs-utils-1.3.0-0.61.el7.x86_64
您在 /var/spool/mail/root 中有邮件
[root@icell-test softwares]# rpm -qa | grep rpcbind
rpcbind-0.2.0-47.el7.x86_64

2. 配置服务开机自启动

chkconfig --level 2345 nfs on
chkconfig --level 2345 rpcbind on

3. 启动NFS相关服务

service rpcbind start
service nfs start

二、主服务器端配置共享目录

1. 配置共享目录

这里将服务器A当做NFS共享目录的服务器端,先登录服务器A进行下述操作

# 编辑配置文件
vim /etc/exports
# 在文件中添加如下内容
# 内容格式为: 被共享的目录 客户端ip (被共享目录配置)
/home/zml/softwares * (rw,sync,no_root_squash)

说明:

/home/zml/softwares: 为 服务器A(服务端)共享的目录,供其他服务器(客户端)使用

客户端ip: 为可以共享的客户端服务器IP地址,可以是一个地址,也可以用通配符表示一个地址段,如192.168.1.*,也可以是任意地址,如*

括号中目录配置说明:

  • rw: 读写访问

  • insecure: nfs通过1024以上的端口发送数据

  • no_subtree_check: 不检查父目录权限

  • async: nfs在写入数据前可以响应数据(异步响应)

  • sync:nfs在写入数据完成后才响应数据(同步响应)

  • no_root_squash:root用户具有根目录的完全管理访问权限

2. 检查配置

# 刷新配置
exportfs -r

# 查看共享配置, 确认NFS服务器端共享目录成功(查看配置前,请确保已启动nfs相关服务,如果未启动,可以先按照步骤一中的方式启动)
exportfs -v

有类似以下输出内容时,说明服务端共享目录配置已完成

[root@icell-test softwares]# exportfs -v
/home/zml/softwares
		<world>(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

三、其他服务器挂载共享目录

登录需要使用共享目录的服务器,如服务器B

1. 先启动nfs相关服务

service rpcbind start
service nfs start

2. 查看服务端(服务器A)共享的目录

# showmount -e serverIp
showmount -e 192.168.4.77

serverIp 指上述步骤中部署NFS服务器端的IP地址(服务器A)

会有类似以下输出结果

[root@alianga-server softwares]# showmount -e 192.168.4.77
Export list for 192.168.4.77:
/home/zml/softwares *

3. 挂载共享目录

# mount -t nfs serverIp:/share_dir local_mount_dir -o proto=tcp
mount -t nfs 192.168.4.77:/home/zml/softwares /home/zml/softwares -o proto=tcp
  • serverIp 指上述步骤中部署NFS服务器端的IP地址(服务器A)。
  • NFS默认是用UDP协议,加上-o proto=tcp换成TCP协议。

4. 设置开机挂载

 vim /etc/fstab;
#添加如下内容:
# serverIp:/share_dir local_mount_dir nfs  defaults   0 0
192.168.4.77:/home/zml/softwares /home/zml/softwares  nfs  defaults  0 0

serverIp设置为上述步骤中部署NFS服务器端(服务器A)的IP地址

Q.E.D.


寻门而入,破门而出