如果你的服务器使用的是基于 Red Hat 的发行版(如 CentOS 或 RHEL),那么可以使用 yum
来安装和配置 NFS。以下是完整的步骤:
在数据服务器上配置 NFS 文件服务器
1. 安装 NFS 服务器
sudo yum install nfs-utils
2. 配置共享目录
-
创建一个要共享的目录:
sudo mkdir -p /mnt/data
-
设置共享目录的权限:
sudo chown nobody:nogroup /mnt/data sudo chmod 777 /mnt/data
-
编辑
/etc/exports
文件,添加以下行来配置共享目录:/mnt/data 192.168.0.0/24(rw,sync,no_subtree_check) 也可以使用一下配置不限制ip /opt/nfstest *(fsid=0,rw,sync,no_subtree_check,no_root_squash)
其中
/mnt/data
是你要共享的目录,192.168.0.0/24
是允许访问的客户端网络范围,可以根据你的网络配置进行调整。 -
应用新的 NFS 配置并启动 NFS 服务:
sudo exportfs -a sudo systemctl enable nfs-server sudo systemctl start nfs-server
在应用服务器上配置 NFS 客户端
1. 安装 NFS 客户端
在每台应用服务器上执行以下命令:
sudo yum install nfs-utils
2. 挂载 NFS 共享目录
-
创建挂载点目录:
sudo mkdir -p /opt/data
-
挂载 NFS 共享目录:
sudo mount 192.168.0.10:/mnt/data /opt/data
其中
192.168.0.10
是文件服务器的 IP 地址,/mnt/data
是文件服务器上的共享目录。 -
配置自动挂载:
为了在系统重启后自动挂载 NFS 共享目录,可以在
/etc/fstab
文件中添加以下行:192.168.0.10:/mnt/data /opt/data nfs defaults 0 0
测试和验证
在文件服务器上:
验证 NFS 服务是否在运行:
sudo systemctl status nfs-server
检查导出目录是否正确配置:
sudo exportfs -v
在应用服务器和数据服务器上:
验证 NFS 挂载是否成功:
df -h | grep /opt/data
创建一个测试文件,确保可以在应用服务器和数据服务器上读写 NFS 共享目录:
echo "Hello NFS" | sudo tee /opt/data/testfile.txt
cat /opt/data/testfile.txt
注:挂载 NFS 共享目录失败情况解决方法
执行 sudo mount 192.168.1.33:/opt/nfstest /opt/nfstest
命令后一直在等待中,可能是由于以下几个原因:
- 网络连接问题:应用服务器无法与 NFS 文件服务器通信。
- NFS 服务未运行:NFS 服务在文件服务器上未启动或配置错误。
- 防火墙问题:防火墙阻止了 NFS 相关端口的通信。
- SELinux 问题:SELinux 可能阻止了 NFS 挂载。
- 共享目录配置问题:NFS 共享目录未正确配置或导出。
排查步骤
1. 检查网络连接
确保应用服务器能够访问文件服务器:
ping 192.168.1.33
2. 检查 NFS 服务状态
在文件服务器上,确保 NFS 服务正在运行:
sudo systemctl status nfs-server
如果服务未启动,可以启动服务:
sudo systemctl start nfs-server
3. 验证 NFS 共享目录配置
在文件服务器上,检查 /etc/exports
文件的内容是否正确:
cat /etc/exports
确保包含类似以下内容:
/opt/nfstest 192.168.1.0/24(rw,sync,no_subtree_check)
应用新的 NFS 配置:
sudo exportfs -a
验证导出目录:
sudo exportfs -v
4. 检查防火墙设置
在文件服务器上,确保防火墙允许 NFS 相关端口的通信:
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
5. 检查 SELinux 设置
在文件服务器上,暂时禁用 SELinux 以排除问题:
sudo setenforce 0
如果这解决了问题,可以配置 SELinux 以允许 NFS:
sudo setsebool -P use_nfs_home_dirs 1
6. 检查日志文件
查看日志文件以获取更多信息:
sudo tail -f /var/log/messages
7. 重试挂载
在应用服务器上重试挂载命令:
sudo mount -v 192.168.1.33:/opt/nfstest /opt/nfstest