使用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个月后将它们过期以删除。


  Transition then Expire Rule
  
      
  
  Enabled
  
    30
    COLD
  
  
    60
  

  •  规则说明:简单地指示删除早于设定日期的对象。


  Expire after 1 year
  
      
  
  Enabled
  
    365
  

  • 规则说明:仅将对象移动到新存储类而不将它们标记为过期(删除)。


  Transition objects to COLD storage class
  
      
  
  Enabled
  
    30
    COLD
  

  • 规则说明:在 120 天后过期所有前缀为 dir1 的对象,并在 60 天后过期所有前缀为 dir2 的对象。


  prefix expiration
  
      dir1
  
  Enabled
  
    120
  
  
      dir2
  
  Enabled
  
    60
  

2. 使用s3cmd工具管理规则

  • 将上面的配置内容保存为一个xml文件,例如:lifecycle-expire.xml,内容如下:


  Expire after 1 days
  
      
  
  Enabled
  
    1
  

  • 创建一个测试的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