实现背景
最近需要把大数据测试环境的虚拟机迁移到另一台物理机上,其中数据库文件过大,一般的上传文件有大小限制不能超过4GB,可以通过NFS共享目录解决文件上传问题。
NFS介绍
NFS介绍NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问远程共享目录,就像访问本地磁盘一样。NFS 只是一种文件系统,本身并没有传输功能,是基于 RPC(远程过程调用)协议实现的,采用 C/S 架构。
目标:实现A共享目录,B访问A。
前置条件:准备两台主机A和B,且在同一局域网。
1.A安装NFS软件包
sudo yum install nfs-utils
2.配置 NFS 服务端
编辑 /etc/exports 文件,添加需要共享的目录及其权限设置。
例如,假设我们需要共享 /mnt/data 目录,并且允许所有客户端读写访问:
/mnt/data *(rw,sync,no_root_squash)
其中:
- /mnt/data 是需要共享的目录。
- ‘* 表示允许所有客户端访问。
- rw 表示允许读写访问。
- sync 表示同步写入磁盘,保证数据的安全性。
- no_root_squash 表示允许 root 用户访问共享目录。
保存修改后,使用以下命令重新加载配置:
sudo exportfs -r
3.启动 NFS 服务端
使用以下命令启动 NFS 服务端:
sudo systemctl start nfs-server
可以使用以下命令检查服务是否已启动:
sudo systemctl status nfs-server
4.B配置 NFS 客户端
在B上,安装 NFS 软件包:
sudo yum install nfs-utils
然后,使用以下命令挂载共享目录:
sudo mount server:/mnt/data /mnt/nfs
其中:
- server 是 NFS 服务端的 IP 地址或主机名。
- /mnt/data 是共享的目录。
- /mnt/nfs 是挂载到客户端上的目录。
5.验证 NFS 服务
可以在客户端上创建、修改、删除文件,然后在服务端上查看是否同步更新。
如果需要卸载 NFS 共享目录,可以使用以下命令:
sudo umount /mnt/nfs
可能出现的问题
mount.nfs: No route to host
这个错误通常表示无法到达目标主机。请确保在执行该命令之前,您的机器可以访问目标机器的 IP 地址,并且目标机器上的 NFS 服务正在运行。
您可以通过以下几种方法来解决这个问题:
- 检查网络连接
请检查您的机器与目标机器之间的网络连接,确保它们可以互相访问。您可以尝试使用 ping 命令来测试网络连接,例如:
ping 192.168.2.164
如果无法 ping 通目标机器,可能需要检查您的网络设置或防火墙配置。
2. 检查目标机器的 NFS 服务状态
请确保目标机器上的 NFS 服务正在运行,并且已正确配置共享目录。您可以尝试在目标机器上使用以下命令检查 NFS 服务状态
3. 检查目标机器的防火墙设置
如果目标机器的防火墙已启用,请确保已将 NFS 服务端口添加到防火墙规则中。NFS 默认使用 TCP 和 UDP 端口 2049。您可以尝试使用以下命令检查目标机器上的防火墙设置:
firewall-cmd --list-all
如果需要,请添加防火墙规则,例如:
firewall-cmd --add-service=nfs --permanent
firewall-cmd --reload