為何裝載 Block Storage for Classic 會因檔案系統檢查錯誤而失敗?
排除儲存卷檔系統檢查問題。
經典基礎設施
當您檢視使用 的 Pod 之 Pod 日誌時 Block Storage for Classic,會看到類似以下範例的錯誤訊息。
UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.(i.e., without -a or -p
options)
磁碟已毀損。 當持久卷(PV)處於讀寫模式時,若相關 Pod 在未被正確驅逐前遭強制刪除,或在卷仍處於掛載狀態時節點被重啟/重新載入,即會發生磁碟損壞。 在這些情況下,卸載程序未能正確完成,導致卷保持在不一致的狀態。 這種情況通常發生在執行節點重新載入或更新的工作流程中,這些流程會在清空資源後立即執行操作,卻未驗證所有 Pod 是否已完成遷移且磁碟區是否已解除掛載。
執行下列指令,以修補 Pod 正在裝載的 PV。
-
取得失敗 Pod 的詳細資料,並記下它正在裝載的 PV 及 PVC。
kubectl get pods -
對 PV 進行修補,以新增
"ibm.io/autofix-fsckErr":"true"註解。kubectl patch pv PVNAME -p '{"metadata": {"annotations":{"ibm.io/autofix- fsckErr":"true"}}}' -
刪除並重建應用程式 Pod,以重試裝載 PV。 刪除並重建 Pod 之後,Kubernetes 會重試裝載作業,且 Block Storage for Classic 驅動程式 Pod 會嘗試根據
"ibm.io/autofix-fsckErr":"true"註釋自動修正問題。 -
順利部署並執行 Pod 之後,請執行下列指令來編輯 PV。
kubectl edit pv PVNAME -
從 PV 中移除
"ibm.io/autofix-fsckErr: true"註釋並儲存它。 -
如果仍然發生此問題,請聯絡支援人員。 開啟 支援案例。 在案例詳細資料中,請務必包括任何相關日誌檔、錯誤訊息或指令輸出。