疑難排解
為什麼我的 Kubernetes 中 DirectPV 安裝失敗?
您需要具備執行安裝的必要權限。請詳閱規格文件。關於 Red Hat OpenShift,請參閱OpenShift 專用文件。
direct-csi-min-io
儲存類別。為什麼?
升級 DirectPV 至 v4.x.x 後,我找不到 舊版 DirectCSI 已棄用,包括 direct-csi-min-io
儲存類別,且不再支援。先前建立的磁碟區會繼續正常運作。對於新的磁碟區請求,請使用 directpv-min-io
儲存類別。
DirectPV 安裝失敗,出現類似Error; unable to get legacy drives; conversion webhook for direct.csi.min.io/v1beta3, … 或類似的錯誤訊息。為什麼?
安裝 DirectPV 也會嘗試升級舊版 DirectCSI。升級早於 v3.1.0 的 DirectCSI 需要執行轉換 webhook 服務。關於適當的升級程序,請參閱升級文件。
discover
命令的 YAML 輸出中,我找不到我的儲存磁碟機。為什麼?
在 DirectPV 會忽略符合以下任何條件的磁碟機:
- 磁碟機的大小小於 512MiB。
- 磁碟機是隱藏的。
- 磁碟機是唯讀的。
- 磁碟機已分割。
- 磁碟機被其他裝置佔用。
- 磁碟機已掛載或已被 DirectPV 使用。
- 磁碟機是正在使用的交換分割區。
- 磁碟機是 CDROM。
檢查 discover --all
命令輸出的最後一欄,查看哪些條件排除該磁碟機。解決這些條件後再試一次。
你們是否支援 SAN、NAS、iSCSI、網路磁碟機等?
DirectPV 適用於使用直接連接儲存的高效能本機磁碟區。我們不建議使用任何遠端磁碟機,因為遠端磁碟機可能會導致效能不佳。
你們是否支援 LVM、Linux RAID、硬體 RAID、軟體 RAID 或類似的技術?
它可以運作,但我們強烈建議使用原始裝置以獲得更好的效能。
是否支援 LUKS 裝置?
是。
我已經使用本機持久性磁碟區 (Local PV) 作為儲存。為什麼我需要 DirectPV?
本機持久性磁碟區是臨時的,並且與 Pod 的生命週期相關聯。當 Pod 重新啟動或刪除時,這些磁碟區會遺失,這可能會導致資料遺失。
此外,本機持久性磁碟區的生命週期需要管理技能。DirectPV 會動態地按需佈建磁碟區,這些磁碟區在 Pod/節點重新啟動時仍保持持久性。DirectPV 磁碟區的生命週期由相關聯的持久性磁碟區宣告 (PVC) 管理,簡化了磁碟區管理。
no drive found ...
的錯誤訊息。為什麼?
我在我的持久性磁碟區宣告中看到 下表列出了可能的原因和解決方案。
原因 | 解決方案 |
---|---|
在未將任何磁碟機新增至 DirectPV 的情況下,進行磁碟區宣告。 | 新增磁碟機。 |
沒有磁碟機具有足夠的可用空間來滿足請求的大小。 | 新增新的磁碟機或移除過時的磁碟區。 |
不滿足要求的拓撲。 | 修改持久性磁碟區宣告。 |
在要求的節點上找不到要求的磁碟機。 | 修改持久性磁碟區宣告。 |
要求的節點不是 DirectPV 節點。 | 修改持久性磁碟區宣告。 |
我看到已建立持久性磁碟區宣告,但未建立對應的 DirectPV 磁碟區。為什麼?
DirectPV 隨附 WaitForFirstConsumer 磁碟區繫結模式。這表示必須先排定使用磁碟區的 Pod。
Pending
狀態。為什麼?
我看到使用磁碟區的 Pod 仍處於 - 如果您尚未建立對應的持久性磁碟區宣告,請建立它。
- 您可能正面臨 Kubernetes 排程問題。請參閱 Kubernetes 文件關於排程
volume XXXXX is not yet staged, but requested with YYYYY
錯誤。為什麼?
我看到 根據 CSI 規格,Kubelet
應該先呼叫 StageVolume
RPC,然後呼叫 PublishVolume
RPC。在極少數情況下,不會觸發/呼叫 StageVolume
RPC,但會呼叫 PublishVolume
RPC。重新啟動您的 Kubelet 並向您的 Kubernetes 提供者回報此問題。
udev
錯誤。為什麼?
我看到 您可能極少看到 udev
錯誤。
unable to find device by FSUUID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; either device is removed or run command `sudo udevadm control --reload-rules && sudo udevadm trigger` on the host to reload
在極少數情況下,您系統中的 Udev
未能更新 /dev
目錄。執行以下命令以更新並重新載入 udev
,然後向您的作業系統供應商回報此問題。
sudo udevadm control --reload-rules && sudo udevadm trigger