挂载访问FAQ

更新时间:

本文介绍Linux操作系统通过CPFS-POSIX客户端或CPFS-NFS客户端挂载CPFS文件系统失败的常见问题及解决方案。

问题概览

POSIX客户端挂载点

CPFS-POSIX客户端挂载

CPFS-NFS客户端挂载

CPFS扩容

在创建POSIX客户端挂载点时,提示“库存不足”该如何处理?

  • 问题现象:

    在文件存储CPFS控制台为文件系统创建POSIX客户端挂载点时,出现如图报错。001

  • 原因分析:

    在创建POSIX挂载点时,文件存储CPFS会在您的阿里云账号下自动创建3个按量付费的ECS实例(ecs.g*.large),该实例用来管理CPFS-POSIX客户端集群。在创建POSIX客户端挂载点时,请确保您的阿里云账号状态正常且可以购买ECS实例。

  • 解决方案:

    您可以登录ECS控制台并前往实例创建页,查看所需ECS实例规格库存情况,避免由于指定规格库存不足导致创建挂载点失败。02

在创建POSIX客户端挂载点时,提示“交换机IP数量不足”该如何处理?

  • 问题现象:

    在文件存储CPFS控制台为文件系统创建POSIX客户端挂载点时,出现如图报错。FAQ01

  • 原因分析:

    CPFS文件系统的存储节点需要使用POSIX客户端挂载点指定交换机上分配的IP,每个存储节点会占用一个IP。CPFS文件系统的存储节点占用的最大IP数量为160个。

  • 解决方案:

    您可以登录专有网络管理控制台,查询目标专有网络下交换机中可用IP的数量,确保交换机具有充足且可用的IP。04

为什么无法创建POSIX客户端挂载点?

如果您在CPFS控制台创建挂载点后,查询不到刚创建的挂载点。您可以查询阿里云账号是否欠费,如果您的阿里云账号已欠费,则无法创建CPFS文件系统挂载点。请您及时充值,然后再次尝试创建CPFS文件系统挂载点。

一个ECS实例可挂载多少个CPFS文件系统?

一个ECS实例最多可挂载一个CPFS文件系统。

挂载CPFS文件系统时,返回“unsupported OS for 'X86_64' architecture”错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示CPFS文件系统不支持该计算节点的操作系统规格,请您更换计算节点规格。CPFS客户端支持的操作系统请参见使用限制

[ FATAL ] You cannot add cpfs-client-001 node because it has an unsupported OS for 'X86_64' architecture.

挂载CPFS文件系统时,返回“make sure kernel-devel version is consistent with kernel”错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示待挂载的ECS实例未安装kernel-devel、kernel-headers软件包或已安装的软件包版本不适配。

No package kernel-devel-3.10.0-957.21.3.el7.x86_64 available.

Error: Nothing to do

please make sure kernel-devel version is consistent with kernel

请您执行以下命令检查ECS实例上软件包的安装情况。

rpm -qa | grep kernel-devel-`uname -r`

当返回为空时,说明ECS实例上的软件包安装不正确,请您在ECS实例上重新安装软件包。具体操作,请参见步骤一:准备环境

挂载CPFS文件系统时,返回“ssh: connect to host A port 22: Connection timed out”错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示待挂载ECS实例与文件系统之间网络不通。

====> start check ssh
try ssh root@a.b.c.d by /root/.ssh/id_rsa.pub

ssh: connect to host a.b.c.d port 22: Connection timed out

请筛查以下可能原因并尝试修复:

可能原因

解决方案

ECS实例(a.b.c.d)与POSIX客户端管理节点(qr-001)之间网络不通

请您检查网络连通性后,再次执行挂载命令。

ECS实例(a.b.c.d)未加入qr-sg安全组

请您检查安全组配置后再次挂载。具体操作,请参见配置安全组

ECS实例(a.b.c.d)与CPFS挂载点不在同一个VPC中

请您选择与挂载点同一VPC的ECS实例进行挂载。

ECS实例(a.b.c.d)的IP不存在

请您检查ECS实例状态。

挂载CPFS文件系统时,返回“not active on:<hostname>”错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示CPFS文件系统在待挂载的ECS实例上无法启动。

[ WARN ] GPFS is not active on: hostname. Consult the install toolkit logs for possible errors 
during install. The GPFS service can also be started manually by running GPFS command 
'mmstartup -N Node[,Node...]'

[ FATAL ] GPFS NOT ACTIVE

请筛查以下可能原因并尝试修复:

  1. 待挂载的ECS实例安全组配置错误或未加入qr-sg安全组。具体操作,请参见配置安全组

  2. CPFS文件系统在使用时需要待挂载的ECS实例具备4 GB以上的内存,当待挂载的ECS实例内存较低时会报错,请您确认ECS实例的内存。

挂载CPFS文件系统时,返回“Command failed”错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示ECS实例可用内存小于4 GB。请您升级对应的ECS实例内存,然后再次执行cpfs add ip命令挂载文件系统。

[ WARN ] GPFS is not active on: hostname. Consult the install toolkit logs for possible errors 
during install. The GPFS service can also be started manually by running GPFS command 
'mmstartup -N Node[,Node...]'

[ FATAL ] GPFS NOT ACTIVE

挂载CPFS文件系统时,返回“cpfs.sh is running already”错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示存在运行中的挂载或卸载任务,请您等待一段时间后再次尝试挂载。

cpfs.sh is running already, pid: xyz

挂载CPFS文件系统时,返回“connect to host B port 22: Connection timed out”错误该如何处理?

ECS实例A挂载CPFS文件系统时,如果返回如下报错信息,表示当前CPFS文件系统集群中存在状态异常的ECS实例B。

# cpfs add A

connect to host B port 22: Connection timed out

B hostname is invalid

Failed to add node.

请您参考以下方式排查并修复异常的ECS实例B,之后再次尝试挂载操作。

在管理节点qr-001上执行mmgetstate -a,检查ECS实例B状态是否正常(active为正常状态)。

  • 如果实例B状态正常,请提交工单联系CPFS团队进一步排查。

  • 如果实例B状态异常,请判断该实例是否继续使用。

    • 如果继续使用该实例,请提交工单联系CPFS团队修复实例状态。

    • 如果不再使用该实例,请执行mmdelnode -N <id> --force命令清除该节点信息。

      mmdelnode -N iZuf61mhwoc9flkufs0**** --force
      
        Do you want to continue? (yes/no) yes
      
      mmdelnode: [W] Could not cleanup the following unreached nodes:
      
      iZuf61mhwoc9flkufs0****
      
      mmdelnode: Command successfully completed
      
      mmdelnode: Propagating the cluster configuration data to all affected nodes. This is an 
      asynchronous process.

      清除后,请在/etc/hosts中删除实例B的host信息。其中,iZuf61mhwoc9flkufs0****为目标ECS实例ID。

挂载CPFS文件系统时,返回“[FATAL] B:Could not connect to B via ssh”错误该如何处理?

ECS实例A挂载CPFS文件系统时,如果返回如下报错信息,表示当前CPFS文件系统集群中存在安装中断的ECS实例B且在安装配置中有残留。

[ FATAL ] ssh: connect to host B port 22: Connection timed out

[ FATAL ] B: Could not connect to B via ssh.
  • 2.2.0以前的版本

    请您在/usr/lpp/mmfs/5.0.5.0/installer/configuration/clusterdefinition.txt文件中,删除ECS实例B的残留配置信息。

    [node4]
    fqdn = B
    
    os = rhel7
    arch = x86_64
    
    ip_address = 192.168.6.37
    is_admin_node = False
    
    is_object_store = False
    
    is_nfs = False
    is_smb = False
    
    is_hdfs = False
    is_protocol_node = False
    is_nsd_server = False
    access_ips =
    is_quorum_node = False
    
    is_manager_node = False
    is_gui_server = False
    is_ems_node = False
    
    is_callhome_node = False
    
    is_broker_node = False
    
    is_node_offline = False
    
    is_node_reachable = True
    
    is_node_excluded = False
    
    is_mestor_node = False
  • 2.2.0及以后的版本

    请您在/usr/lpp/mmfs/5.1.2.0/ansible-toolkit/ansible/ibm-spectrum-scale-install-infra/vars/scale_clusterdefinition.json文件中,删除ECS实例B的残留配置信息。

       {
          "fqdn": "iZuf6hn0blj1g377w4xxxxZ",
          "os": "rhel7",
          "arch": "x86_64",
          "ip_address": "172.19.0.100",
          "is_admin_node": false,
          "is_object_store": false,
          "is_nfs": false,
          "is_smb": false,
          "is_hdfs": false,
          "is_protocol_node": false,
          "is_nsd_server": false,
          "is_quorum_node": false,
          "is_manager_node": false,
          "is_gui_server": false,
          "is_ems_node": false,
          "is_callhome_node": false,
          "is_broker_node": false,
          "is_node_offline": false,
          "is_node_reachable": true,
          "is_node_excluded": false,
          "is_mestor_node": false,
          "scale_daemon_nodename": "iZuf6hn0blj1g377w4xxxxZ"
        }

挂载CPFS文件系统时,返回[ FATAL ] No GPFS admin node specified. specify an admin node using 'spectrumscale node add <node name or IP> -a'.错误该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示您执行命令的节点错误。

[ FATAL ] No GPFS admin node specified. specify an admin node using 'spectrumscale node add <node name or IP> -a'.

请确认您是否是在qr-001节点上执行的CPFS命令。qr-001

挂载CPFS文件系统时,返回Failed to resolve domain: file-system-id.region.cpfs.aliyuncs.com错误该如何处理?

  • 问题原因

    执行挂载命令中的file-system-id.region.cpfs.aliyuncs.com参数未替换为导出目录挂载地址。

  • 解决方案

    登录NAS控制台,在目标CPFS文件系统操作列的管理,进入协议服务页面,在操作列,单击导出目录,进入导出目录面板获取挂载地址。然后将挂载命令中的file-system-id.region.cpfs.aliyuncs.com参数替换为获取的挂载地址。重新执行挂载命令挂载文件系统。

在云电脑上挂载CPFS文件系统的过程中提示错误,怎么办?

如果在云电脑上挂载CPFS文件系统时,界面提示无法挂载或挂载失败等类似错误,此时可以按照以下步骤检查您的云电脑和CPFS之间的网络是否互通:

  1. 执行以下命令,查询DNS的IP地址。

    示例命令中的挂载点域名以cpfs-009e40ab9c6476e6-001a3e8bf745b****.cn-hangzhou.cpfs.aliyuncs.com为例,业务中请替换为实际的挂载点域名。

    dig  -t txt cpfs-009e40ab9c6476e6-001a3e8bf745b****.cn-hangzhou.cpfs.aliyuncs.com
  2. 执行ping命令,ping上一步的IP地址以检查网络是否互通。

    如果网络不互通,您需要检查网络的相关配置。

使用cpfs add命令挂载CPFS文件系统时,遇到YUM源报错该如何处理?

挂载CPFS文件系统时,如果返回如下报错信息,表示CentOS 8的YUM源配置失效。

Errors during downloading metadata for repository 'appstream':
Status code: 404 for http://mirrors.cloud.aliyuncs.com/centos/8/AppStream/x86_64/os/repodata/repomd.xml (IP: 100.100.XX.XX)
Error: Failed to download metadata for repo 'appstream': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

CentOS 8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。建议您切换YUM源。具体操作,请参见CentOS 8 EOL如何切换源?

CPFS客户端无法正常启动,该如何处理?

  • 问题现象:

    1. 在管理节点qr-001上执行mmgetstate -a,检查ECS实例状态时,显示该ECS实例状态为down。

    2. 执行/usr/lpp/mmfs/bin/mmstartup命令,返回如下信息。

      … mmfslinux.ko kernel extension does not exist. Use mmbuildgpl
      command to create the needed kernel extension for your kernel …
  • 原因分析:

    当前ECS实例升级了kernel。

  • 解决方案:

    1. 执行/usr/lpp/mmfs/bin/mmbuildgpl命令,重建kernel extension。

      返回示例如下:

      mmbuildgpl: Building GPL (5.1.2.0) module begins at Fri Dec 3 16:05:33 CST 2021.
      --------------------------------------------------------
      Verifying Kernel Header...
       kernel version = 41800305 (418000305012001, 4.18.0-305.12.1.el8_4.x86_64, 4.18.0-305.12.1)
       module include dir = /lib/modules/4.18.0-305.12.1.el8_4.x86_64/build/include
       module build dir  = /lib/modules/4.18.0-305.12.1.el8_4.x86_64/build
       kernel source dir = /usr/src/linux-4.18.0-305.12.1.el8_4.x86_64/include
       Found valid kernel header file under /usr/src/kernels/4.18.0-305.12.1.el8_4.x86_64/include
      Getting Kernel Cipher mode...
       Will use skcipher routines
      Verifying Compiler...
       make is present at /bin/make
       cpp is present at /bin/cpp
       gcc is present at /bin/gcc
       g++ is present at /bin/g++
       ld is present at /bin/ld
      Verifying libelf devel package...
       Verifying elfutils-libelf-devel is installed ...
        Command: /bin/rpm -q elfutils-libelf-devel
        The required package elfutils-libelf-devel is installed
      Verifying Additional System Headers...
       Verifying kernel-headers is installed ...
        Command: /bin/rpm -q kernel-headers
        The required package kernel-headers is installed
      make World ...
      make InstallImages ...
      --------------------------------------------------------
      mmbuildgpl: Building GPL module completed successfully at Fri Dec 3 16:05:54 CST 2021.
      --------------------------------------------------------
    2. 执行/usr/lpp/mmfs/bin/mmstartup命令,重启ECS实例。

    3. 执行/usr/lpp/mmfs/bin/mmmount all命令,重新挂载文件系统。

如何清理已卸载ECS实例的残留配置信息?

首先,请您再次确认ECS实例已卸载CPFS文件系统。具体操作,请参见卸载文件系统。然后执行mmdelnode -N <id> --force命令,清理已卸载ECS实例的残留配置信息,示例如下:

mmdelnode -N iZuf61mhwoc9flkufs0**** --force
  Do you want to continue? (yes/no) yes
mmdelnode: [W] Could not cleanup the following unreached nodes:

iZuf61mhwoc9flkufs0****

mmdelnode: Command successfully completed

mmdelnode: Propagating the cluster configuration data to all affected nodes. This is an 
asynchronous process.

其中,iZuf61mhwoc9flkufs0****为目标ECS实例ID。

执行扩容操作时,返回“库存不足”该如何处理?

CPFS文件系统扩容依赖于CPFS存储节点的库存及挂载点交换机的可用IP数量。请前往专有网络管理控制台,查看当前可用IP数量,CPFS文件系统最多需要164个可用IP,请您确保交换机可用IP数量充足。

CPFS文件系统扩容后,存量数据是否会自动平衡?

CPFS文件系统扩容后,默认不进行数据平衡,即存量数据仍然会存储在原来的存储节点上,不会自动迁移至新扩展的存储节点上。

由于数据平衡过程会消耗存储节点的网络、磁盘带宽,导致文件系统的前端IO性能下降,同时,文件系统的存量数据量越多,数据平衡的时间越长,综合考虑大部分业务并不需要扩容后自动进行数据平衡。所以CPFS文件系统扩容后不会自动进行数据平衡。

CPFS只能使用POSIX客户端挂载访问吗?

CPFS支持通过CPFS-POSIX客户端或CPFS-NFS客户端两种方式挂载访问文件系统,同时支持通过CPFS-POSIX客户端和CPFS-NFS客户端互相访问。例如,通过CPFS-POSIX客户端创建的文件,修改的内容通过CPFS-NFS客户端可见,反之亦然。更多信息,请参见客户端说明