ECS上搭建的NFS服务器无法正常使用
概述
本文主要讲述在使用ECS服务器搭建NFS服务,NFS客户端在挂载时不稳定和异常的检查方法。
详细信息
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
请您参考以下内容进行检查,先检查Client端,再检查Server端。
步骤一:检查NFS Client端
- 执行以下命令查看NFS客户端软件是否安装。
rpm -qa | grep nfs
说明:当返回的信息中包含NFS及其版本信息则该实例已安装NFS,否则您需要手动安装。
- 查看客户端的
portmap
服务是否已经开启。systemctl status portmap
systemctl status rpcbind - 如若
portmap
服务未开启,执行以下命令进行开启。systemctl start portmap
systemctl start rpcbind - 执行以下命令将
portmap
服务设为开机自动启动。
chkconfig portmap on
chkconfig rpcbind on - 执行以下命令检查NFS客户端到服务器的网络状态,具体操作步骤请参见链路测试方法。
ping [$IP]
注意:[$IP]指的是NFS服务端的IP地址。一定要确保NFS客户端到NFS服务器端的网络畅通,否则也谈不上使用NFS(网络文件系统)。
- 在NFS Client端执行以下命令测试端口连通状态。
telnet [$IP] 111
telnet [$IP] 2049说明:111端口是
portmap
服务。2049端口是nfs service
服务。 - 在NFS Client上执行以下命令测试873端口是否正常。
telnet [$IP] 873
说明:如果在NFS Server上没有配置NFS使用那些端口,那么就需要在网络上开放所有的端口,否则可能导致NFS客户端连接不上。为了避免此问题,可以设定NFS使用固定的端口,那么开放固定的端口即可。
- 执行以下命令检查NFS客户端的Iptables状态。
iptables -L -n
- 执行以下命令设定防火墙INPUT的默认策略为
ACCEPT
。iptables -t filter -P INPUT ACCEPT
- 在NFS Client端执行以下命令测试端口连通状态。
- 执行以下命令列出NFS Server信息。
showmount -e [$IP]
说明:如果能够查看到共享的信息,那么此时就应该能够直接挂载使用了。若不能看到信息,可能是Server端的问题。
步骤二:检查NFS Server端
- 执行以下命令查看NFS Server软件包是否安装。
rpm -qa | grep nfs
- 执行以下命令查看
portmap
服务是否开启。systemctl status portmap
systemctl status rpcbind - 如若
portmap
服务未开启,执行以下命令进行开启。systemctl start portmap
systemctl start rpcbind - 执行以下命令将
portmap
服务设为开机自动启动。
chkconfig portmap on
chkconfig rpcbind on - 在NFS Server端执行以下命令进行测试。
netstat -an | less
- 执行以下命令查看NFS端口状态。
rpcinfo -p localhost
说明:其中111端口和2049端口必须是开启状态。
- 建立目录,在
/etc/exports
中加入此目录,然后挂载该目录进行测试。mount -t nfs [$Catalog]/Pathfile /tmp
说明:[$Catalog]指的是您自行建立的目录名称。如果可以挂载成功,那么NFS Server的设置即为正常。
- 查看
/etc/exports
文件- 查看共享哪些目录,查看将目录共享给哪些客户端,权限是什么,查看文件编写的格式是否正确。
- 确认无误后,执行命令
exportfs -a
重载文件。
- 执行以下命令查看共享出来的目录是否能够正常的列出来。
showmount -e /etc/exports
说明:如果能够正常的列出来,并且服务器能够挂载由自己共享出来的NFS,那么Server端就是正常的。
适用于
- 云服务器ECS