管理卷

前提条件

添加卷

参考卷配置指南.

列出卷

要从 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).

  1. 获取 PVC YAML

    kubectl get pvc [PersistentVolumeClaimName] -o yaml > my-file-name.yaml

  2. 在 PVC 中,修改spec.resources.requests.storage更改请求的大小。

  3. 将更新后的PVC应用到Kubernetes环境中,例如使用kubectl apply.

    应用更改后,PVC 将更新,DirectPV 会自动增加分配给声明的卷的大小。

  4. 验证更改kubectl get pvc [PersistentVolumeClaimName] -o yaml

    Reviewstatus.capacity.storage查看更新后的大小。

删除卷

这是一个危险操作,会导致数据丢失

可以删除卷如果没有 Pod 正在使用该卷它就在Ready状态。 运行kubectl delete pvc触发 DirectPV 卷删除的命令。 删除卷将导致永久性数据丢失。 请务必确认要删除的卷。

# Delete `sleep-pvc` volume
kubectl delete pvc sleep-pvc

清理陈旧卷

当 Pod 和/或 Persistent Volume Claim 被强制删除时,相关的 DirectPV 卷可能不会被删除。 这会导致卷变成陈旧卷。 通过运行以下命令删除陈旧卷:clean命令。

$ kubectl directpv clean --all

挂起卷

数据丢失
这是一个危险操作,会导致数据丢失。

根据Kubernetes的设计,一个StatefulSetworkload 只有在所有 pod 都处于运行状态时才处于活动状态。 有问题的卷会阻止 StatefulSet 启动。

DirectPV 提供了一个解决方案,通过将故障卷挂载到空目录来暂停它们/var/lib/directpv/tmp具有只读访问权限的目录。 这可以通过执行暂停卷命令。

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