a.保证多个应用服务器的文件保持一致。
b.拆分文件服务器和应用服务器解耦合。
在 CentOS 7 上使用 NFS 来实现共享文件夹是一个常见且有效的方案。以下是详细的步骤,包括如何设置 NFS 服务器以及如何从客户端访问共享目录。本文一共分为两步配置,一个注意事项。
首先,确保 NFS 服务已安装。在 CentOS 7 中,这个功能包含在 nfs-utils 包中。
sudo yum install -y nfs-utils
创建一个目录作为要共享的文件夹。例如:
sudo mkdir -p /srv/nfs/shared
调整目录权限以允许访问。在示例中,我们将目录权限设置为全局可读写,以便演示(生产环境中应根据需求设置权限):
sudo chown -R nfsnobody:nfsnobody /srv/nfs/shared
sudo chmod 777 /srv/nfs/shared
这个文件用于配置 NFS 共享目录及其访问权限。
sudo vim /etc/exports
在文件中添加以下行,将 /srv/nfs/shared 目录共享给特定的客户端:
/srv/nfs/shared 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
说明:
192.168.1.0/24: 允许从该子网段的所有 IP 访问。
rw: 读写权限。
sync: 确保写操作同步完成。
no_root_squash: 允许 NFS 客户端的 root 用户拥有 root 权限。
no_subtree_check: 禁用子树检查,提高性能。
让 NFS 服务意识到新的共享配置:
exportfs -a
启动并设置 NFS 服务在启动时自动运行:
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
通过以下命令:查看服务端:2049
netstat -tulpn
一般场景的防火墙有两种iptables和firewall这两种防火墙:
firewall的需要开通端口2049的linux命令如下:
#添加端口命令
firewall-cmd --add-port=2049/tcp --zone=public --permanent
#重新加载防火墙配置
firewall-cmd --reload
#查看一下是否添加成功
firewall-cmd --list-ports;
在客户端机器上,需要安装相关的 NFS 工具:
sudo yum install -y nfs-utils
在客户端上创建一个目录,用于挂载远程 NFS 共享:
sudo mkdir -p /mnt/nfs/shared
手动挂载 NFS 共享到指定的挂载点:
sudo mount 192.168.1.x:/srv/nfs/shared /mnt/nfs/shared
将 192.168.1.x 替换为 NFS 服务器的实际 IP 地址。
为了在系统重启后自动挂载,编辑 /etc/fstab 文件并添加以下行:
192.168.1.x:/srv/nfs/shared /mnt/nfs/shared nfs defaults 0 0
在客户端,尝试读写测试文件以确认 NFS 共享是否正常工作:
touch /mnt/nfs/shared/testfile
ls -l /mnt/nfs/shared/
1.检查防火墙的端口是否开启,可以先关闭,服务端和客户端服务器的防火墙,并重启一下服务端服务。
2.检查服务器上的可用导出:
在客户端机器上,使用 showmount 查看 NFS 服务器的可用共享,这可以帮助确认路径是否正确:
showmount -e 221.0.1.11
确保 /home/nfs/shared 出现在结果中。如果没有,检查 NFS 服务器的导出配置
总结:
通过此设置,您可以在 CentOS 7 系统上使用 NFS 提供和访问共享文件夹。在配置 exports 和目录权限时应考虑安全性,确保仅允许信任的客户端访问共享资源。