Linux服务器无法挂载NFS文件系统的原因及解决方法

常见问题 169℃

linux服务器无法挂载nfs文件系统怎么办?挂载失败了怎么回事?先前有网友反馈使用阿里云linux服务器挂载nfs文件系统时出现报错,导致挂载失败。本文整理了几种常见的linux挂载nfs文件系统失败报错及对应的解决方法,希望对大家有所帮助。

1、使用自动检查脚本排查处理

我们在使用阿里云Linux服务器挂载nfs文件系统时,如果出现挂载失败的情况,可以尝试用脚本来自动排查问题,然后针对报错问题进行解决,相关操作步骤如下:

登录到挂载文件系统失败的Linux服务器中,执行自动检查脚本并检查返回的配置是否正确。

wget -N https://code.aliyun.com/nas_team/nas-client-tools/raw/master/linux_client/check_alinas_nfs_mount.py -P /tmp/

python2.7 /tmp/check_alinas_nfs_mount.py file-system-id.region.nas.aliyuncs.com:/ /mnt

其中,file-system-id.region.nas.aliyuncs.com为挂载点,/为NAS文件系统目录,/mnt为当前服务器上待挂载的本地路径,我们可以根据实际情况替换。

修正挂载配置后,自动检查脚本会返回挂载命令,并提示检查结束。最后复制并执行挂载命令,检查挂载结果。使用自动检查脚本会很容易让我们查看到挂载失败的问题所在,但也有部分挂载操作报错是自动检查脚本无法排查处理的,这时就需要我们手动处理。

2、子目录不存在的报错

相关报错信息:mount.nfs: access denied by server while mounting xxxx.nas.aliyuncs.com:/

我们在挂载文件系统时,如果遇到上述报错信息,这主要是由于挂载命令中指定的NAS子目录

不存在所导致的。

解决方法:我们可以先挂载NAS根目录,挂载成功后,创建需要的子目录,然后再重新挂载子目录。

3、云服务器实例重名的报错

如果在使用NFSv4.0挂载时报错信息:mount.nfs: Operation not permitted或mount.nfs: an incorrect mount option was specified,但是使用NFSv3却可以挂载成功。

这种情况主要是由于对于某些内核版本,如果执行挂载操作的云服务器实例名称与其他云服务器实例名称相同,且该重名的云服务器实例已使用NFSv4.0挂载了同一个NFS挂载点,这时往往会产生冲突,从而导致报错。

解决方法:我们可以在出现报错的云服务器实例上执行下面命令。

echo ‘install nfs /sbin/modprobe –ignore-install nfs nfs4_unique_id=`cat /sys/class/dmi/id/product_uuid`’ >> /etc/modprobe.d/nfs.conf

或者手动卸载所有已挂载的NFS文件系统,并执行rmmod命令卸载NFSv4.0客户端和NFS内核模块。