本文介紹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用戶端掛載點時,出現報錯:指定的交換器IP數量不足。
原因分析:
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 = False2.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 triedCentOS 8作業系統版本結束了生命週期(EOL),Linux社區已不再維護該作業系統版本。建議您切換YUM源。
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.X.X) 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用戶端可見,反之亦然。更多資訊,請參見用戶端說明。