挂载访问FAQ
本文介绍Linux操作系统通过CPFS-POSIX客户端或CPFS-NFS客户端挂载CPFS文件系统失败的常见问题及解决方案。
问题概览
POSIX客户端挂载点
CPFS-POSIX客户端挂载
挂载CPFS文件系统时,返回“unsupported OS for 'X86_64' architecture”错误该如何处理?
挂载CPFS文件系统时,返回“make sure kernel-devel version is consistent with kernel”错误该如何处理?
挂载CPFS文件系统时,返回“ssh: connect to host A port 22: Connection timed out”错误该如何处理?
挂载CPFS文件系统时,返回“connect to host B port 22: Connection timed out”错误该如何处理?
挂载CPFS文件系统时,返回“[FATAL] B:Could not connect to B via ssh”错误该如何处理?
CPFS-NFS客户端挂载
CPFS扩容
在创建POSIX客户端挂载点时,提示“库存不足”该如何处理?
问题现象:
在文件存储CPFS控制台为文件系统创建POSIX客户端挂载点时,出现如图报错。
原因分析:
在创建POSIX挂载点时,文件存储CPFS会在您的阿里云账号下自动创建3个按量付费的ECS实例(ecs.g*.large),该实例用来管理CPFS-POSIX客户端集群。在创建POSIX客户端挂载点时,请确保您的阿里云账号状态正常且可以购买ECS实例。
解决方案:
您可以登录ECS控制台并前往实例创建页,查看所需ECS实例规格库存情况,避免由于指定规格库存不足导致创建挂载点失败。
在创建POSIX客户端挂载点时,提示“交换机IP数量不足”该如何处理?
问题现象:
在文件存储CPFS控制台为文件系统创建POSIX客户端挂载点时,出现如图报错。
原因分析:
CPFS文件系统的存储节点需要使用POSIX客户端挂载点指定交换机上分配的IP,每个存储节点会占用一个IP。CPFS文件系统的存储节点占用的最大IP数量为160个。
解决方案:
您可以登录专有网络管理控制台,查询目标专有网络下交换机中可用IP的数量,确保交换机具有充足且可用的IP。
为什么无法创建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
请筛查以下可能原因并尝试修复:
待挂载的ECS实例安全组配置错误或未加入qr-sg安全组。具体操作,请参见配置安全组。
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命令。
挂载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之间的网络是否互通:
执行以下命令,查询DNS的IP地址。
示例命令中的挂载点域名以
cpfs-009e40ab9c6476e6-001a3e8bf745b****.cn-hangzhou.cpfs.aliyuncs.com
为例,业务中请替换为实际的挂载点域名。dig -t txt cpfs-009e40ab9c6476e6-001a3e8bf745b****.cn-hangzhou.cpfs.aliyuncs.com
执行
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客户端无法正常启动,该如何处理?
问题现象:
在管理节点qr-001上执行
mmgetstate -a
,检查ECS实例状态时,显示该ECS实例状态为down。执行
/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。
解决方案:
执行
/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. --------------------------------------------------------
执行
/usr/lpp/mmfs/bin/mmstartup
命令,重启ECS实例。执行
/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客户端可见,反之亦然。更多信息,请参见客户端说明。