使用s3cmd工具实现RGW对象存储生命周期管理

参考:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html

https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html

https://s3browser.com/bucket-lifecycle-configuration.aspx

https://www.51cto.com/article/701720.html

1. 生命周期配置示例

  • 规则说明:在1个月后将对象移到新的存储类COLD,然后在2个月后将它们过期以删除。
<LifecycleConfiguration>
<Rule>
  <ID>Transition then Expire Rule</ID>
  <Filter>
      <Prefix></Prefix>
  </Filter>
  <Status>Enabled</Status>
  <Transition>
    <Days>30</Days>
    <StorageClass>COLD</StorageClass>
  </Transition>
  <Expiration>
    <Days>60</Days>
  </Expiration>
</Rule>
</LifecycleConfiguration>
  •  规则说明:简单地指示删除早于设定日期的对象。
<LifecycleConfiguration>
<Rule>
  <ID>Expire after 1 year</ID>
  <Filter>
      <Prefix></Prefix>
  </Filter>
  <Status>Enabled</Status>
  <Expiration>
    <Days>365</Days>
  </Expiration>
</Rule>
</LifecycleConfiguration>
  • 规则说明:仅将对象移动到新存储类而不将它们标记为过期(删除)。
<LifecycleConfiguration>
<Rule>
  <ID>Transition objects to COLD storage class</ID>
  <Filter>
      <Prefix></Prefix>
  </Filter>
  <Status>Enabled</Status>
  <Transition>
    <Days>30</Days>
    <StorageClass>COLD</StorageClass>
  </Transition>
</Rule>
</LifecycleConfiguration>
  • 规则说明:在 120 天后过期所有前缀为 dir1 的对象,并在 60 天后过期所有前缀为 dir2 的对象。
<LifecycleConfiguration>
<Rule>
  <ID>prefix expiration</ID>
  <Filter>
      <Prefix>dir1</Prefix>
  </Filter>
  <Status>Enabled</Status>
  <Expiration>
    <Days>120</Days>
  </Expiration>
  <Filter>
      <Prefix>dir2</Prefix>
  </Filter>
  <Status>Enabled</Status>
  <Expiration>
    <Days>60</Days>
  </Expiration>
</Rule>
</LifecycleConfiguration>

2. 使用s3cmd工具管理规则

  • 将上面的配置内容保存为一个xml文件,例如:lifecycle-expire.xml,内容如下:
<LifecycleConfiguration>
<Rule>
  <ID>Expire after 1 days</ID>
  <Filter>
      <Prefix></Prefix>
  </Filter>
  <Status>Enabled</Status>
  <Expiration>
    <Days>1</Days>
  </Expiration>
</Rule>
</LifecycleConfiguration>
  • 创建一个测试的S3存储桶,例如:
s3cmd mb s3://lifecycletest
  • 在存储桶上设置生命周期策略
s3cmd setlifecycle lifecycle-expire.xml s3://lifecycletest
  • 查看是否已设置生命周期
s3cmd info s3://lifecycletest

说明:当使用 transition 规则而不是 expire 规则时,s3cmd info 将无法正确显示出它。您将需要使用 S3 Browser这样的工具来查看生命周期规则。S3 Browser也可用于创建这些规则。使用 S3 Browser 的唯一缺点是它不允许使用自定义存储类,例如使用“COLD”。它仅使用标准 Amazon S3 命名,因此在使用 transition 而不是 expire 规则时,最好使用 s3cmd 和 XML 文件。

3. Debug 配置

rgw lc debug interval = 60

4. 故障排除

  • 检查 RGW 生命周期规则状态:
radosgw-admin lc list
  • 如果未设置为“COMPLETE”,您可以通过运行以下命令强制 Ceph 启动规则:
radosgw-admin lc process

 

posted @ 2022-05-26 15:57  Varden  阅读(851)  评论(0编辑  收藏  举报