管理磁碟區
先決條件
-
運作中的 DirectPV 外掛程式。
若要安裝此外掛程式,請參閱外掛程式安裝指南。
-
在 Kubernetes 中運作中的 DirectPV CSI 驅動程式。
若要安裝此驅動程式,請參閱驅動程式安裝指南。
-
已在 DirectPV 中新增硬碟。
請參閱硬碟管理指南。
新增磁碟區
請參閱磁碟區配置指南。
列出磁碟區
若要從 DirectPV 取得磁碟區的資訊,請執行list volumes
命令。輸出會類似如下
$ kubectl directpv list drives
┌────────┬──────┬──────┬─────────┬─────────┬─────────┬────────┐
│ NODE │ NAME │ MAKE │ SIZE │ FREE │ VOLUMES │ STATUS │
├────────┼──────┼──────┼─────────┼─────────┼─────────┼────────┤
│ master │ vdb │ - │ 512 MiB │ 506 MiB │ - │ Ready │
│ node1 │ vdb │ - │ 512 MiB │ 506 MiB │ - │ Ready │
└────────┴──────┴──────┴─────────┴─────────┴─────────┴────────┘
擴展磁碟區
DirectPV 支援線上擴展磁碟區,而無需重新啟動使用這些磁碟區的 Pod。這是透過在擴展相關的 Persistent Volume Claim
(PVC) 的大小後自動完成。
-
取得 PVC YAML
kubectl get pvc [PersistentVolumeClaimName] -o yaml > my-file-name.yaml
-
在 PVC 中,修改
spec.resources.requests.storage
以變更請求的大小。 -
將更新的 PVC 套用至 Kubernetes 環境,例如使用
kubectl apply
。套用變更後,PVC 會更新,而且 DirectPV 會自動增加指派給聲明的磁碟區大小。
-
使用
kubectl get pvc [PersistentVolumeClaimName] -o yaml
驗證變更檢閱
status.capacity.storage
以查看更新後的大小。
刪除磁碟區
只有在沒有任何 Pod 使用該磁碟區且該磁碟區處於 Ready
狀態時,才能刪除磁碟區。執行 kubectl delete pvc
命令以觸發 DirectPV 磁碟區刪除。刪除磁碟區會導致永久資料遺失。請務必確認您要刪除的磁碟區。
# Delete `sleep-pvc` volume
kubectl delete pvc sleep-pvc
清除過時的磁碟區
當 Pods 和/或 Persistent Volume Claims 被強制刪除時,相關聯的 DirectPV 磁碟區可能不會被刪除,導致磁碟區變成過時狀態。請執行 clean
指令來移除過時的磁碟區。
$ kubectl directpv clean --all
暫停磁碟區
根據 Kubernetes 的設計,只有當 StatefulSet 中所有的 Pods 都處於執行狀態時,該 StatefulSet 工作負載才會啟用。有故障的磁碟區會阻止 StatefulSet 啟動。
DirectPV 提供了一個解決方案,可以將故障的磁碟區掛載到空的 /var/lib/directpv/tmp
目錄,並以唯讀權限存取,以此暫停這些故障的磁碟區。這可以透過執行 suspend volumes 指令來達成。
kubectl directpv suspend volumes --nodes node-1 --drives dm-3
被暫停的磁碟區可以在修復後恢復。恢復後,對應的磁碟區將會恢復使用各自配置的磁碟機。
這可以使用 [resume volumes]](/command-line/resume-volumes/) 指令來達成。
kubectl directpv resume volumes --nodes node-1 --drives dm-3