第 10 章 在目标卷中重新声明空间
删除的文件或零数据块有时会在 Ceph 集群中占用存储空间,从而导致可用存储空间不准确报告。重新声明空间操作通过对目标卷执行以下操作来删除这种差异:
-
fstrim- 此操作用于处于Filesystem模式的卷,且仅在执行重新声明空间操作时挂载到 pod 时才使用。 -
RBD sparsify- 当卷没有附加到任何 pod 时,使用 RBD sparsify,并回收由 4M 大小零数据的块占用的空间。
注意
- 只有 Ceph RBD 卷支持重新声明空间操作。
- 回收空间操作涉及执行时的性能损失。
您可以使用以下任一方法重新声明空间:
10.1. 通过注解 PersistentVolumeClaim 来启用重新声明空间操作 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用这个流程自动调用重新声明空间操作,以根据给定的调度注解持久性卷声明(PVC)。
注意
-
schedule 值的格式与 Kubernetes CronJob 相同,它设定
重复操作请求的和/或间隔。 -
推荐的调度间隔为
@weekly。如果调度间隔值为空或无效格式,则默认调度值设为@weekly。不要调度多个ReclaimSpace操作@weekly或同时。 -
每个调度操作之间的最小支持间隔至少为 24 小时。例如,
@daily(每天的At 00:00)或0 3 * *(每天的At 3:00)。 -
在非高峰、维护窗口或工作负载
输入/输出低时调度ReclaimSpace操作。 -
当修改调度时,ReclaimSpaceCronJob 会被重新创建。当注解被删除时,它会被自动删除。
流程
获取 PVC 详情。
oc get pvc data-pvc
$ oc get pvc data-pvcCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE data-pvc Bound pvc-f37b8582-4b04-4676-88dd-e1b95c6abf74 1Gi RWO ocs-storagecluster-ceph-rbd 20h
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE data-pvc Bound pvc-f37b8582-4b04-4676-88dd-e1b95c6abf74 1Gi RWO ocs-storagecluster-ceph-rbd 20hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将注解
reclaimspace.csiaddons.openshift.io/schedule=@monthly添加到 PVC 以创建reclaimspacecronjob。oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@monthly"
$ oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@monthly"Copy to Clipboard Copied! Toggle word wrap Toggle overflow persistentvolumeclaim/data-pvc annotated
persistentvolumeclaim/data-pvc annotatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
reclaimspacecronjob是否已创建格式为 "<pvc-name>-xxxxxxx"。oc get reclaimspacecronjobs.csiaddons.openshift.io
$ oc get reclaimspacecronjobs.csiaddons.openshift.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE data-pvc-1642663516 @monthly 3s
NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE data-pvc-1642663516 @monthly 3sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 修改计划,使其自动运行此任务。
oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@weekly" --overwrite=true
$ oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@weekly" --overwrite=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow persistentvolumeclaim/data-pvc annotated
persistentvolumeclaim/data-pvc annotatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
reclaimspacecronjob的调度是否已修改。oc get reclaimspacecronjobs.csiaddons.openshift.io
$ oc get reclaimspacecronjobs.csiaddons.openshift.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE data-pvc-1642664617 @weekly 3s
NAME SCHEDULE SUSPEND ACTIVE LASTSCHEDULE AGE data-pvc-1642664617 @weekly 3sCopy to Clipboard Copied! Toggle word wrap Toggle overflow