掛載訪問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客戶端可見,反之亦然。更多信息,請參見客戶端說明。