搜索

第 10 章 在目标卷中重新声明空间

download PDF

已删除的文件或零数据区块有时会在 Ceph 集群上占用存储空间,从而导致报告可用的存储空间不准确。重新声明空间操作通过对目标卷执行以下操作来删除此类差异:

  • fstrim - 此操作在处于 Filesystem 模式的卷上执行,且仅在执行重新声明空间操作时将其挂载到 pod 时。
  • RBD sparsify - 当卷没有附加到任何 pod 时,会执行此操作,并回收由 4M 分散的零数据占用的空间。
注意
  • 重新声明空间操作仅由 Ceph RBD 卷支持。
  • 回收空间操作涉及执行时的性能损失。

您可以使用以下方法之一重新声明空间:

  • 使用注解 PersistentVolumeClaims 启用重新声明空间操作(推荐使用方法启用重新声明空间操作)
  • 使用 ReclaimSpaceJob 启用重新声明空间操作
  • 使用 ReclaimSpaceCronJob 启用重新声明空间操作

10.1. 使用注解 PersistentVolumeClaim 启用重新声明空间操作

使用此流程来注解 PersistentVolumeClaim,以便它可以根据给定的调度自动调用重新声明空间操作。

注意
  • schedule 值的格式与 Kubernetes CronJob 相同,用于设置重复操作请求的和/或间隔。
  • 推荐的调度间隔为 @weekly。如果调度间隔值为空或无效格式,则默认调度值设置为 @weekly
  • 每个调度的操作之间支持的最小间隔至少为 24 小时。例如,@daily (每天的 00:00)或 0 3 * (每天为 3:00)。
  • 在非高峰、维护窗口或工作负载输入/输出应低时调度 ReclaimSpace 操作。
  • 当修改调度时,ReclaimSpaceCronJob 会被重新创建。当注解被删除时,它会被自动删除。

流程

  1. 获取持久性卷声明(PVC)详情。

    $ oc get pvc data-pvc
    NAME      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                          AGE
    data-pvc  Bound    pvc-f37b8582-4b04-4676-88dd-e1b95c6abf74   1Gi        RWO            ocs-storagecluster-ceph-rbd           20h
  2. 将注解 reclaimspace.csiaddons.openshift.io/schedule=@monthly 添加到 PVC 以创建 reclaimspacecronjob

    $ oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@monthly"
    persistentvolumeclaim/data-pvc annotated
  3. 验证 reclaimspacecronjob 是否已创建,格式为 "< pvc-name>-xxxxxxx"。

    $ oc get reclaimspacecronjobs.csiaddons.openshift.io
    NAME                    SCHEDULE    SUSPEND   ACTIVE   LASTSCHEDULE   AGE
    data-pvc-1642663516     @monthly                                      3s
  4. 修改计划,使其自动运行此任务。

    $ oc annotate pvc data-pvc "reclaimspace.csiaddons.openshift.io/schedule=@weekly" --overwrite=true
    persistentvolumeclaim/data-pvc annotated
  5. 验证 reclaimspacecronjob 的调度是否已修改。

    $ oc get reclaimspacecronjobs.csiaddons.openshift.io
    NAME                  SCHEDULE    SUSPEND   ACTIVE   LASTSCHEDULE   AGE
    data-pvc-1642664617   @weekly                                       3s
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.