第 9 章 在目标卷中重新声明空间
您可以使用目标卷中的重新声明空间操作访问实际可用空间。当持久性卷上删除文件或数据,且此操作可用于 Ceph RBD 时,重新声明操作时,可以使用可用的存储空间。由于对象仍在 RBD 设备上,而且存储没有发布到 Ceph 集群,这为实际可用存储空间提供了错误的信息。
回收空间操作会在 RBD 设备上触发 rbd sparsify
,这会为零镜像扩展回收空间。对于文件系统模式,fstrim
也在块设备上挂载的文件系统上执行。当在文件系统上启用 fstrim
后,您可以使用以下模式创建一个基于 Ceph RBD 的 ReadWriteOnce(RWO)访问 PVC:
- 卷模式块
- 卷模式文件系统
对于新安装的集群,默认启用重新声明空间操作。
要为升级的集群启用重新声明空间操作,在 openshift-storage 命名空间中的 rook-ceph-operator-override
configmap 中设置 CSI_ENABLE_CSIADDONS: "true
"。
$ oc patch cm rook-ceph-operator-config -n openshift-storage -p $'data:\n "CSI_ENABLE_CSIADDONS": "true"'
您可以使用以下三种方法之一重新声明空间:
- 使用 ReclaimSpaceJob 启用重新声明空间操作
- 使用 ReclaimSpaceCronJob 启用重新声明空间操作
- 使用注解 PersistentVolumeClaims 启用重新声明空间操作(红帽建议使用此方法启用重新声明空间操作)
9.1. 使用 ReclaimSpaceJob 启用重新声明空间操作
ReclaimSpaceJob
是一个命名空间自定义资源,旨在在目标卷中调用重新声明空间操作。这是一个时间方法,用于立即启动回收空间操作。您必须重复创建 ReclaimSpaceJob
CR,以便在需要时重复回收空间操作。
流程
创建并应用以下自定义资源以回收空间操作:
apiVersion: csiaddons.openshift.io/v1alpha1 kind: ReclaimSpaceJob metadata: name: sample-1 spec: target: persistentVolumeClaim: pvc-1
以上 yaml 中使用的变量如下:
target
表示操作要在其上执行的卷目标。-
persistentVolumeClaim
包含指示PersistentVolumeClaim
的名称的字符串。
-
-
backoffLimit
指定重新声明空间操作失败前的最大重试次数。如果没有指定,则默认值为 6。允许的最大值和最小值为 60 和 0。 -
retryDeadlineSeconds
指定操作可能会与开始时间相关的持续时间。其值必须是正整数,以秒为单位。如果没有指定,则默认为 600 秒。允许的最大值为 1800。
- 在完成操作后删除客户资源。