文档

挂载文件系统失败故障排查

更新时间:

当挂载文件系统失败后,优先推荐您通过自动脚本或排查思路定位问题。部分挂载操作的报错,自动检查脚本无法排查处理,NAS也提供了常见报错FAQ便于您查阅。本文介绍云服务器ECS挂载NAS文件系统时,挂载失败的排查方法与解决方案。

重要
  • 在排查前,请确认挂载点状态为可用状态。如果挂载点状态为休眠状态,您需要通过控制台或OpenAPI重新启用挂载点。更多信息,请参见休眠挂载点

  • 在排查前,请确认当前账号未欠费。如果账号已欠费,且超过延停权益额度,阿里云会立即停止该NAS服务,仅保留您存储在该NAS文件系统中的数据。而您所使用的存储容量仍会继续扣费,因此欠费会累计。更多信息,请参见欠费停服说明

Linux挂载NFS协议文件系统失败自动检查脚本

Linux挂载NFS协议文件系统失败可能存在多种原因,您可以执行以下步骤通过自动检查脚本定位问题。

  1. 登录挂载文件系统失败的Linux服务器。

  2. 下载自动检查脚本。

    wget https://nas-client-tools.oss-cn-hangzhou.aliyuncs.com/linux_client/check_alinas_nfs_mount.py -P /tmp/
  3. 执行自动检查脚本并检查返回的配置正确性。

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

    重要参数说明如下所示,请根据实际值替换。

    • file-system-id.region.nas.aliyuncs.com:NAS NFS协议文件系统挂载点地址。您可以在NAS控制台,单击目标文件系统,然后单击挂载使用,将鼠标放置在挂载地址列的挂载点图标上获取挂载点地址。

    • /:NAS文件系统目录。

    • /mnt:当前服务器上待挂载的本地路径。

    修正挂载配置后,自动检查脚本会返回挂载命令,并提示检查结束。

  4. 复制并执行挂载命令,检查挂载结果。

Windows挂载SMB协议文件系统失败自动检查脚本

Windows挂载SMB协议文件系统失败可能存在多种原因,您可以执行以下步骤通过自动检查脚本定位问题。

  1. 登录挂载文件系统失败的Windows服务器。

  2. 在PowerShell工具或者PowerShell ISE工具中执行以下命令下载并运行挂载排查脚本,并根据脚本给出的具体解决方案执行操作。

    1. 下载排查脚本。

      Invoke-WebRequest https://nas-client-tools.oss-cn-hangzhou.aliyuncs.com/windows_client/alinas_smb_windows_inspection.ps1 -OutFile alinas_smb_windows_inspection.ps1
    2. 运行排查脚本。

      .\alinas_smb_windows_inspection.ps1 -MountAddress abcde-123.region-id.nas.aliyuncs.com -Locale zh-CN

      其中abcde-123.region-id.nas.aliyuncs.com为挂载点,请根据实际值替换。

Linux挂载SMB协议文件系统失败排查思路

Linux挂载SMB协议文件系统失败可能存在多种原因,您可以根据以下步骤依次排查或者检查/var/log/messagesdmesg输出。

  1. Linux操作系统版本检查。

    由于Linux系统对SMB协议的兼容程度较低,NAS SMB协议文件系统支持如下的Linux操作系统版本。

    操作系统类型

    操作系统版本

    CentOS

    CentOS 7.6 64位:3.10.0-957.21.3.el7.x86_64及以上

    Alibaba Cloud Linux

    Alibaba Cloud Linux 2.1903 64位:4.19.43-13.2.al7.x86_64及以上

    Debian

    Debian 9.10 64位:4.9.0-9-amd64及以上

    Ubuntu

    Ubuntu 18.04 64位:4.15.0-52-generic及以上

    OpenSUSE

    OpenSUSE 42.3 64位:4.4.90-28-default及以上

    SUSE Linux

    Enterprise Server 12 SP2 64位:4.4.74-92.35-default及以上

    CoreOS

    CoreOS 2079.4.0 64位:4.19.43-coreos及以上

  2. CIFS客户端检查。

    确认Linux操作系统是否已安装CIFS(cifs-utils)客户端或者mount.cifs是否在PATH指定的命令搜寻目录中。

    您可参照以下命令查看是否已安装CIFS客户端。如果未安装CIFS客户端或不在指定目录,请重新安装CIFS客户端。具体操作,请参见安装CIFS客户端

    操作系统

    执行命令

    Ubuntu

    sudo apt list cifs-utils

    Debian

    RHEL

    sudo yum list cifs-utils

    CentOS

    OpenSUSE

    sudo zypper search -i cifs-utils

    SLES12-SP2

    CoreOS

    which mount.cifs
  3. 网络连通检查。

    您可以通过执行ping <VolumeDomainName>命令,检查网络连通性。

    1. 确认云服务器ECS(Linux)和SMB协议文件系统是否属于同一个阿里云账号。

      如果不属于同一个阿里云账号,请在ECS所属账号中创建SMB协议文件系统或者通过云企业网连通网络。更多信息,请参见通过云企业网实现跨账号跨地域挂载NAS

    2. 确认云服务器ECS(Linux)和SMB协议文件系统处于同一个VPC中。

      如果不在同一个VPC,请重新创建SMB协议文件系统或者通过云企业网连通网络。更多信息,请参见通过云企业网实现同地域跨VPC挂载NAS

  4. 445端口检查。

    • 确认云服务器ECS(Linux)安全组是否设置为不允许访问SMB协议文件系统的IP地址或445端口。

      您可以通过执行telnet <VolumeDomainName> 445命令,检查连通性。

      如果端口445未打开,请在目标ECS实例的安全组中添加关于端口445的安全组规则。具体操作,请参见添加安全组规则

    • 确认云服务器ECS(Linux)未试图通过不受支持的TCP端口连接。

  5. 权限组检查。

    确认SMB协议文件系统挂载点的权限组允许ECS访问。

    如果不允许ECS访问,请修改权限组配置。具体操作,请参见修改权限组配置

  6. ECS管理员挂载权限检查。

    确认云服务器ECS(Linux)管理员具备root权限或者sudo权限。

  7. 挂载命令检查。

    确认挂载SMB协议文件系统的挂载命令正确。手动挂载命令如下所示:

    sudo mount -t cifs //file-system-id.region.nas.aliyuncs.com/myshare /mnt -o vers=2.0,guest,uid=0,gid=0,dir_mode=0755,file_mode=0755,mfsymlinks,cache=strict,rsize=1048576,wsize=1048576

    如果挂载命令参数设置错误,请修改为正确的命令。有关Linux挂载SMB协议文件系统的挂载参数说明,请参见Linux挂载SMB协议文件系统挂载参数说明

  8. SELINUX检查。

    确认挂载的目标目录的SELINUX设置正确。

  9. 文件系统同一时刻挂载的计算节点数量检查。

    确认是否云服务器ECS(Linux)挂载连接数太多,超过了单文件系统挂载上限(1000个)。

    • 如果超出挂载上限,请根据业务场景调整。

    • 如果未超出上限,请联系NAS技术支持咨询。

      同时请提供文件系统信息、Linux版本信息、具体挂载命令、/var/log/messages和dmesg输出。

Windows系统挂载NFS协议的通用型NAS文件系统失败排查思路

Windows系统挂载NFS协议的通用型NAS文件系统失败可能存在多种原因,您可以根据以下步骤依次排查。

  1. 账号检查。

    确认ECS实例和挂载点属于同一个账号。如果ECS实例和挂载点不属于同一个账号,您可通过云企业网连通账号后再挂载NFS协议文件系统。具体操作,请参见通过云企业网实现跨账号跨地域挂载NAS

  2. 挂载点网络检查。

    确认ECS实例与挂载点属于同一个VPC。如果ECS实例与挂载点不属于同一个VPC,您可以通过云企业网连通VPC然后载挂载NFS协议文件系统。具体操作,请参见通过云企业网实现同地域跨VPC挂载NAS

  3. 2049端口检查。

    确认ECS安全组允许访问挂载点的2049端口。如果ECS安全组不允许访问挂载点的2049端口,请修改安全组规则。具体操作,请参见修改安全组规则

    您可通过telnet命令或Test-NetConnection命令检测端口的连通性。

    • 在命令提示符中使用telnet命令。

      telnet $mount_point.$region.nas.aliyuncs.com 2049
    • 在PowerShell下使用Test-NetConnection命令。

      Test-NetConnection $mount_point.$region.nas.aliyuncs.com -Port 2049
  4. NFS协议文件系统权限组检查。

    确认挂载点的权限组允许ECS访问。如果挂载点的权限组不允许ECS访问,请修改权限组配置。具体操作,请参见修改权限组配置

如何解决子目录不存在报错?

报错信息:mount.nfs: access denied by server while mounting xxxx.nas.aliyuncs.com:/<dir>

挂载子目录时,挂载命令中指定的NAS子目录<dir>不存在导致报错。您可以先挂载NAS根目录,挂载成功后,创建需要的子目录,再重新挂载子目录。具体操作,请参见如何在Linux系统中创建NAS子目录并完成挂载?

如何解决ECS实例重命名报错?

问题现象

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

问题原因

对于某些内核版本,如果执行挂载操作的ECS实例名称与其他ECS实例名称相同,且该重名ECS实例已使用NFSv4.0挂载了同一个NFS挂载点,此时会产生冲突。

解决方案

  1. 在报错的ECS实例上执行以下命令。

    echo 'install nfs /sbin/modprobe --ignore-install nfs nfs4_unique_id=`cat /sys/class/dmi/id/product_uuid`' >> /etc/modprobe.d/nfs.conf
  2. 在业务低峰期重启ECS实例。

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

  3. 重新挂载NFS协议文件系统。具体操作,请参见Linux系统挂载NFS协议文件系统

挂载NFS协议文件系统时,返回mount.nfs: No such device该如何处理?

问题现象

在ECS实例中挂载NFS协议文件系统的NAS时,返回如下报错信息。

mount.nfs: No such device

No such device

原因分析

可能是/etc/modprobe.d/sunrpc.conf文件中的options sunrpc tcp_slot_table_entries=128配置写成了options sunrpc tcp_slot_entries=128,导致sunrpc模块没有正常加载到内核。

解决方案

  1. /etc/modprobe.d/sunrpc.conf文件中的配置修改为options sunrpc tcp_slot_table_entries=128

  2. 执行modprobe sunrpc命令,加载sunrpc模块。

  3. 重新挂载NFS协议文件系统。

挂载NFS协议文件系统时,返回mount: can't find /root/nas in /etc/fstab该如何处理?

问题现象

在ECS实例中挂载NAS NFS协议文件系统时,返回如下报错信息。

mount: can't find /root/nas in /etc/fstab

问题原因

可能是执行命令格式错误。

解决方案

使用正确的挂载命令挂载NAS NFS协议文件系统。关于Linux挂载NFS协议文件系统的挂载命令参数说明,请参见挂载命令参数说明

  • 通用型NAS,请执行以下命令。

    使用NFS v3协议挂载文件系统:

    sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt

    使用NFS v4协议挂载文件系统:

    sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mnt                                
  • 极速型NAS,请执行以下命令。

    sudo mount -t nfs -o vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt

其中,file-system-id.region.nas.aliyuncs.com为NFS协议文件系统挂载点地址,请根据实际值替换。

如何检查和解决Windows挂载SMB协议文件系统返回系统错误53?

  • 错误描述

    未找到网络路径。

  • 原因分析

    • 网络未连通。

    • TCP/IP NetBIOS Helper服务未启动。

    • 注册表未正确配置LanmanWorkstation。

  • 解决方案

    1. 执行ping <挂载点地址>命令检查挂载点地址是否连通,延时是否正常。

      • 如果网络连接正常,则执行步骤b。

      • 如果网络连接不通,请您先通过以下方式排查网络异常。

        • 确认挂载命令正确,无多余或缺少/\、空格及myshare等内容。

          正确挂载SMB协议文件系统的命令格式:

          net use <挂载目标盘符> \\<挂载点地址>\myshare

          示例:

          net use z: \\xxxx.cn-hangzhou.nas.aliyuncs.com\myshare 
        • 在控制台确认文件系统类型为SMB。SMB

        • 确认挂载点地址填写正确。

        • 确认ECS实例与挂载点在同一个VPC中。

        • 确认跨VPC或通过VPN连入的客户端,网络配置正确。

    2. 执行telnet <挂载点地址> 445命令检查SMB服务是否可用。

    3. 确认是否已启动TCP/IP NetBIOS Helper服务。具体操作,请参见Windows系统挂载SMB协议文件系统

    4. 打开注册表,确认HKEY_LOCAL_MACHINE > System > CurrentControlSet > Control > NetworkProvider > OrderProviderOrder的值已包括LanmanWorkstation。如果没有,请添加。检查注册表

如何检查和解决Windows挂载SMB协议文件系统返回系统错误58?

  • 错误描述

    指定的服务器无法运行请求的操作。

  • 原因分析

    客户端SMB协议版本不兼容。

  • 解决方案

    请确认Windows系统版本为Windows 2008 R2及以上版本(不包括Windows 2008)。

如何检查和解决Windows挂载SMB协议文件系统返回系统错误64?

  • 错误描述

    指定的网络名不可用。

  • 原因分析

    • NAS权限组未允许目标ECS访问。

    • NAS权限组未正确配置目标ECS的内网IP地址或VPC IP地址。

    • 服务欠费。

    • 选择经典网络进行挂载时,ECS和NAS不属于同一阿里云UID。

    • 文件系统类型不是SMB。

  • 解决方案

    无权访问NAS文件系统资源,请从以下方面进行排查。

    1. 确认文件系统挂载点权限组已包含该机器的内网IP或VPC IP。

    2. 确认阿里云UID未欠费。

    3. 确认经典网络挂载时,ECS和NAS属于同一个阿里云UID。

    4. 确认文件系统类型为SMB。系统错误 64

如何检查和解决Windows挂载SMB协议文件系统返回系统错误67?

  • 错误描述

    找不到网络名。

  • 原因分析

    关键的网络服务未启动。

  • 解决方案

    启动如下服务,具体操作,请参见Windows系统挂载SMB协议文件系统

    1. 启用Workstation服务。

    2. 启用TCP/IP NetBIOS Helper服务。

如何检查和解决Windows挂载SMB协议文件系统返回系统错误85?

  • 错误描述

    本地设备名已在使用中。

  • 原因分析

    目标盘符已被占用。

  • 解决方案

    请更换目标盘符重新挂载文件系统。

如何检查和解决Windows挂载SMB协议文件系统返回系统错误1231?

  • 错误描述

    无法连接网络位置。

  • 原因分析

    • 系统未安装或未启用Microsoft网络客户端。

    • 系统未安装或未启用Microsoft网络的文件和打印机共享。

  • 解决方案

    安装并启用Microsoft网络客户端或Microsoft网络的文件和打印机共享。

    如果已安装但未启用Microsoft网络客户端或Microsoft网络的文件和打印机共享,请选中对应的选项。并通过以下方式安装并开启对应的选项。

    系统错误1231

    1. 打开网络与共享中心,单击主机所连网络。

    2. 单击属性

    3. 无线网络连接属性对话框中,单击安装

      • 安装Microsoft网络客户端。

        1. 选择网络功能类型对话框中,选择客户端,单击添加

        2. 选择Client for Microsoft Networks,单击确定

      • 安装Microsoft网络的文件和打印机共享。

        1. 选择网络功能类型对话框中,选择服务,单击添加

        2. 选择Microsoft > File and Printer Sharing for Microsoft,单击确定

如何检查和解决Windows挂载SMB协议文件系统返回系统错误1272?

  • 错误描述

    系统提示:不能访问此共享文件夹,因为您组织的安全策略阻止未经身份验证的来宾访问。这些策略可帮助保护您的电脑免受网络上不安全设备或恶意设备的威胁。

  • 原因分析

    Windows系统因安全策略阻挡了以来宾访问权限(Guest Auth)访问SMB协议文件系统的用户。

  • 解决方案

    若您的系统为Windows Server 2016之后版本(不包括Windows Server 2016),请修改以下注册表项允许来宾访问权限(Guest Auth)。

    1. 登录挂载文件系统的ECS服务器。

    2. 打开命令提示符,执行regedit命令,进入注册表编辑器页面。

    3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters路径下,确认AllowInsecureGuestAuth注册项值为1

      1. 如果AllowInsecureGuestAuth注册项的值为0,则单击鼠标右键修改AllowInsecureGuestAuth,将数值数据(V)中的值修为1。

      2. 如果未找到AllowInsecureGuestAuth注册项,则切换到PowerShell,执行以下命令,添加AllowInsecureGuestAuth注册项。

        New-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters -Name AllowInsecureGuestAuth -PropertyType DWORD -Value 1 
    4. 重新挂载SMB协议文件系统。

      net use Z: \\file-system-id.region.nas.aliyuncs.com\myshare

      如果继续返回1272错误,可能是RequireSecuritySignature注册项的值为1,请将该值修改为0,然后再重新挂载SMB协议文件系统。

      RequireSecuritySignature注册项路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters

    更多信息,请参见Guest access in SMB2 disabled by default in WindowsOverview of Server Message Block signing

如何解决服务器开机自启动挂载NFS协议文件系统失败?

问题现象

已配置服务器重启后自动挂载NFS协议文件系统,但重启时,自动挂载失败。

原因分析

可能服务器的系统为CentOS 7.0。CentOS 7.0默认不处理fstab中的非local文件系统,remote-fs.target服务状态为disable,因此导致重启云服务器后,自动挂载NFS协议文件系统失败。

说明

配置项不会随着内核版本升级而变动,所以CenOS 7.0升级到7.9内核时,remote-fs.target服务依然是关闭的,需要您手动开启remote-fs.target服务。

解决方案

您可以任选以下一种方案实现服务器开机自启动挂载NFS协议文件系统,然后再打开/etc/fstab配置文件,添加挂载配置。如何添加挂载配置,请参见Linux系统挂载NFS协议文件系统

  • 方案一:彻底解决

    依次执行以下命令,开启remote-fs.target服务,实现服务器开机自启动挂载NFS协议文件系统。

    systemctl start remote-fs.target
    systemctl enable remote-fs.target
  • 方案二:临时解决

    通过在系统的rc.local中执行以下命令,开启remote-fs.target服务,实现服务器开机自启动挂载NFS协议文件系统。

    [ ! -f /etc/rc.local ] && echo '#!/bin/bash' > /etc/rc.local; echo "mount -a -t nfs" >> /etc/rc.local; chmod +x /etc/rc.local

为什么Windows Server 2016 IIS无法加载SMB volume文件?

Windows Server 2016的IIS无法加载SMB协议文件系统的解决方案,请参见安装和配置AD域

如何检查并解决Windows NFS soft挂载问题?

  • 问题描述

    在Windows系统上使用NFS协议文件系统时,默认使用soft模式进行挂载,而在以下场景中soft模式会对数据一致性造成影响,并且会造成应用异常退出。

    • 数据一致性:使用soft模式挂载时,如果请求超时,则返回错误。对于应用,这个操作是未完成的;对于服务端,这个请求可能已经执行,所以会造成数据不一致。

    • 应用异常退出:使用soft模式挂载时,如果请求超时,则返回超时错误。在某些语言中,会抛出异常,如果应用未处理,则会异常退出。

  • 解决方案

    在Windows系统中,使用hard模式挂载NFS协议文件系统,可以避免以上问题。

    1. 执行mount命令检查当前的挂载模式。

      • 如果显示mount=soft,则按照以下步骤进行整改。

      • 如果显示mount=hard,则无需整改。hard

    2. 停止当前正在使用此NFS协议文件系统的应用。

    3. 卸载NFS协议文件系统。

      umount H:

      请根据实际挂载盘符进行替换挂载命令中的盘符H:

    4. 重新挂载NFS协议文件系统。

      mount -o nolock -o mtype=hard -o timeout=60 \\xxxxxx.cn-hangzhou.nas.aliyuncs.com\! h:

      请根据实际情况替换挂载点地址xxxxxx.cn-hangzhou.nas.aliyuncs.com和挂载盘符h:

    5. 执行mount命令验证挂载结果。

      如果回显信息包括mount=hard、locking=no以及timeout的参数值>=10,则表示挂载成功。挂载结果

如何解决Windows挂载NFS协议文件系统的报错?

使用容器挂载NAS时,提示access denied by server while mounting <挂载地址>

问题现象

为容器挂载NAS文件系统时,提示access denied by server while mounting <挂载地址>

问题原因

可能存在以下原因:

  1. 挂载目录不存在。

  2. 启动容器时使用的宿主机角色,没有修改NAS的权限

  3. 挂载点配置的权限组无容器的访问权限

解决方案

  1. 确认挂载目录是否存在。

    您可以执行cd <挂载目录>命令,验证挂载目录是否存在。

  2. 确认容器启动用户是否有root权限。

    如果容器启动用户无root权限,则需要通过root登录NAS文件系统,改变权限属性后再挂载,保持容器用户和挂载点文件系统的权限一致。在容器内挂载时,需要以privileged方式运行容器。

  3. 确认挂载点配置的权限组是否包含容器的IP。

    1. 登录NAS控制台

    2. 在左侧导航栏,选择文件系统>文件系统列表

    3. 在顶部菜单栏,选择地域。

    4. 文件系统列表页面,单击目标文件系统操作列的管理

    5. 在文件系统列表详情页,单击挂载使用

    6. 在挂载点列表的权限组列,单击权限组名称,进入该权限组的规则列表页面。

    7. 确认权限组规则中已添加目标容器IP。

      如果权限组规则中无目标容器IP,请将目标容器IP加入权限组规则中。具体操作,请参见添加权限组规则。

通过云助手批量挂载、卸载、查询状态失败时,该怎么办?

首先确认填写的挂载参数都符合条件。其次观察命令结果的错误码,根据错误提示进一步处理。更多信息,请参见错误信息。最后可以使用一键挂载功能,尝试先在一台ECS上面执行操作,如果失败再看相关报错提示,处理问题。

您也可以通过NAS控制台,先在一台ECS实例上挂载文件系统,如果挂载失败,请根据提示信息进一步处理。

通过控制台挂载文件系统失败可能有哪些原因?

请您排查以下挂载失败原因并尝试修复。

挂载失败分类

挂载失败可能原因

解决方案

ECS实例或云助手状态异常

ECS实例非运行中状态

在ECS控制台检查目标ECS实例状态并修复。

云助手客户端未安装

请您安装云助手客户端。具体操作,请参见Linux实例安装云助手Agent

挂载命令运行超时或中断

NFS客户端安装太慢

等待一段时间,再次尝试挂载操作。

NFS客户端安装失败

NFS客户端软件源识别失败

请您登录ECS实例,手动安装NFS客户端。具体操作,请参见安装NFS客户端

输入参数格式错误

挂载路径和NAS目录传入错误

请您检查挂载路径和NAS目录都必须是绝对路径,非必填参数使用默认值即可。

挂载路径不符合要求

挂载路径非空目录

请您更换挂载路径,然后再次尝试挂载。

挂载路径已挂载在其他挂载点上

挂载路径的父目录已挂载在其他挂载点上

挂载命令错误

挂载参数配置错误

建议您使用默认挂载配置再次尝试挂载操作。

其他挂载失败原因

请执行错误排查脚本定位具体问题。具体操作,请参见挂载文件系统失败故障排查

  • 本页导读 (1)
文档反馈