排解 Managed Lustre 磁碟區問題

本頁面提供疑難排解步驟,說明如何解決在 Google Kubernetes Engine 使用 Google Cloud Managed Lustre CSI 驅動程式時,常見的問題和錯誤。

在按照本節的疑難排解步驟操作前,請先參閱從 GKE 連線至 Managed Lustre 的限制。

更新執行個體容量下限

Managed Lustre 執行個體的容量下限已更新為 9000 GiB。如要使用 Managed Lustre CSI 驅動程式建立 9000 GiB 執行個體,請將叢集版本升級至 1.34.0-gke.2285000 以上版本。

動態佈建的 Lustre 執行個體效能級別不正確

動態佈建 Lustre 執行個體時,無論 API 要求中指定的 perUnitStorageThroughput 值為何,執行個體建立作業都會失敗,並顯示 PerUnitStorageThroughput 的 InvalidArgument 錯誤。這會影響 1.33.4-gke.1036000 之前的 GKE 1.33 版本。

解決方法:

將 GKE 叢集升級至 1.33.4-gke.1036000 以上版本。如果使用穩定版,可能還無法取得新版本。在這種情況下,您可以從一般版或搶鮮版手動選取包含修正程式的版本。

Managed Lustre 通訊埠

Managed Lustre CSI 驅動程式會根據 GKE 叢集版本和現有的 Managed Lustre 設定,使用不同的通訊埠與 Managed Lustre 執行個體通訊。

  • 預設通訊埠 (988):如果是執行 1.33.2-gke.4780000 以上版本的新 GKE 叢集,驅動程式預設會使用通訊埠 988 進行 Lustre 通訊。

  • 舊版通訊埠 (6988):在下列情況下,驅動程式會使用通訊埠 6988:

    • 舊版 GKE:如果 GKE 叢集執行的版本低於 1.33.2-gke.4780000,則啟用 CSI 驅動程式時必須使用 --enable-legacy-lustre-port 旗標。啟用這個旗標可解決 GKE 節點上 gke-metadata-server 的通訊埠衝突問題。
    • 支援 GKE 的現有 Managed Lustre 執行個體:如果您要連線至使用 --gke-support-enabled 旗標建立的現有 Managed Lustre 執行個體,無論叢集版本為何,都必須在啟用 CSI 驅動程式時加入 --enable-legacy-lustre-port。如果沒有這個旗標,GKE 叢集就無法掛接現有的 Lustre 執行個體。

    如要進一步瞭解如何啟用 CSI 驅動程式和舊版通訊埠,請參閱「Lustre 通訊埠」。

記錄查詢

如要查看記錄,請在Logs Explorer中執行下列查詢。

如要傳回 Managed Lustre CSI 驅動程式節點伺服器記錄,請按照下列步驟操作:

resource.type="k8s_container"
resource.labels.pod_name=~"lustre-csi-node*"

排解磁碟區佈建問題

如果 PersistentVolumeClaim (PVC) 仍處於 Pending 狀態,且 20 到 30 分鐘後未建立 PersistentVolume (PV),則可能發生錯誤。

  1. 檢查 PVC 事件:

    kubectl describe pvc PVC_NAME
    
  2. 如果錯誤指出設定問題或引數無效,請驗證 StorageClass 參數。

  3. 重新建立 PVC。

  4. 如果問題持續發生,請與 Cloud Customer Care 團隊聯絡。

排解磁碟區掛接問題

Pod 排定至節點後,系統就會掛接磁碟區。如果失敗,請檢查 Pod 事件和 kubelet 記錄。

kubectl describe pod POD_NAME

CSI 驅動程式啟用問題

問題:

MountVolume.MountDevice failed for volume "yyy" : kubernetes.io/csi: attacher.MountDevice failed to create newCsiDriverClient: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

或

MountVolume.SetUp failed for volume "yyy" : kubernetes.io/csi: mounter.SetUpAt failed to get CSI client: driver name lustre.csi.storage.gke.io not found in the list of registered CSI drivers

原因:CSI 驅動程式未啟用或尚未執行。

解決方法:

  1. 確認 CSI 驅動程式已啟用。
  2. 如果叢集最近才經過調度資源或升級,請稍候幾分鐘,讓驅動程式生效。
  3. 如果錯誤持續發生,請檢查 lustre-csi-node 記錄檔中是否有「Operation not permitted」(不允許作業) 訊息。這表示節點版本過舊,不支援 Managed Lustre。如要解決這個問題,請將節點集區升級至 1.33.2-gke.1111000 以上版本。
  4. 如果記錄顯示「LNET_PORT mismatch」,請升級節點集區,確保已安裝相容的 Lustre 核心模組。

已有這個掛接點

問題:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = AlreadyExists
desc = A mountpoint with the same lustre filesystem name "yyy" already exists on
node "yyy". Please mount different lustre filesystems

原因:不支援在單一節點上,從不同 Managed Lustre 執行個體掛接多個檔案系統名稱相同的磁碟區。

解決方法:為每個 Managed Lustre 執行個體使用不重複的檔案系統名稱。

掛接失敗:找不到該檔案或目錄

問題:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: No such file or directory

原因:指定的檔案系統名稱不正確或不存在。

解決方法:確認 StorageClass 或 PV 設定中的 fs_name 與 Managed Lustre 執行個體相符。

無法掛接:輸入/輸出錯誤

問題:

MountVolume.MountDevice failed for volume "yyy" : rpc error: code = Internal desc = Could not mount ... failed: Input/output error

原因:叢集無法連線至 Managed Lustre 執行個體。

解決方法:

  1. 驗證 Managed Lustre 執行個體的 IP 位址。
  2. 確認 GKE 叢集和 Managed Lustre 執行個體位於同一個虛擬私有雲網路,或已正確對接。

內部錯誤

症狀: rpc error: code = Internal desc = ...

解決方法:如果錯誤持續發生,請與 Cloud Customer Care 聯絡。

排解磁碟區卸載問題

問題:

UnmountVolume.TearDown failed for volume "yyy" : rpc error: code = Internal desc = ...

解決方法:

  1. 強制刪除 Pod:

    kubectl delete pod POD_NAME --force
    
  2. 如果問題持續發生,請與 Cloud Customer Care 團隊聯絡。

疑難排解磁碟區刪除問題

如果刪除 PVC 後,PV 長時間 (例如超過一小時) 仍處於「已釋出」狀態,請與 Cloud Customer Care 聯絡。

排解磁碟區擴充問題

PVC 卡在 ExternalExpanding 狀態

問題:PVC 狀態未變更為 Resizing,且事件顯示 ExternalExpanding。

原因:allowVolumeExpansion 欄位可能遺漏或設為 false。

解決方法: 確認 StorageClass 具有 allowVolumeExpansion: true。

kubectl get storageclass STORAGE_CLASS_NAME -o yaml

展開失敗:引數無效

症狀: VolumeResizeFailed: rpc error: code = InvalidArgument ...

原因:要求的大小無效 (例如不是步距的倍數,或超出限制)。

解決方法: 查看有效容量範圍,並將 PVC 更新為有效大小。

擴充失敗:內部錯誤

症狀: VolumeResizeFailed ... rpc error: code = Internal

解決方法: 重新套用 PVC,再次嘗試擴充。如果一再失敗,請與 Cloud Customer Care 聯絡。

已超過期限

問題: VolumeResizeFailed 搭配 DEADLINE_EXCEEDED。

原因:作業時間超出預期,但可能仍在進行中。

解決方法: 請等待作業完成。調整工具會自動重試。如果長時間卡住 (例如超過 90 分鐘),請與支援團隊聯絡。

超過配額

症狀:因配額限制而無法擴充。

解決方法: 申請提高配額,或申請較小的容量增幅。