在创建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 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数量充足。

如果您的业务场景需要使用超过400 TiB的CPFS文件系统容量,请您提交工单联系CPFS团队咨询。

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

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

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