分层与自动迁移
对象存储把容量分成若干存储类别:越冷的类别单位容量越省,但取回需要等待、最短存储期更长、可用性口径也更宽松。生命周期策略就是一组自动规则,按前缀或标签识别对象,在满足天数后把它们转移到更冷类别,到期后再删除或清理历史版本。它的价值在于让冷数据不再占用昂贵的高性能层,而不需要业务改代码。
基本信息
| 适用对象 | 兼容 S3 的对象存储(S3、MinIO、云厂商对象存储等) |
|---|---|
| 规则维度 | 前缀、标签、对象大小、天数、版本状态 |
| 常见动作 | 转移到冷层、过期删除、清理未完成分片、清理过期版本 |
| 配置方式 | 桶的生命周期配置文档,以目标存储官方文档为准 |
典型使用场景
- 日志与审计记录:热存数周后转冷,法规期届满自动删除
- 备份文件:按天分层存放,越旧越便宜,恢复时按需取回
- 数据湖:原始层保留长期、加工层定期过期,避免无用中间产物堆积
- 清理遗留:删除长期未完成的分片上传与过期删除标记,收回隐性占用
- 成本治理:按前缀把不同业务的数据引导到匹配的存储层
规则思路示意
规则思路示意
# 规则一:日志目录 30 天后转冷层
# filter: prefix = logs/
# transition: days = 30 -> cold tier
# 规则二:180 天后过期删除
# filter: prefix = logs/
# expiration: days = 180
# 规则三:清理非当前版本,保留最近 3 个
# noncurrent_version_expiration: keep = 3
# 规则四:清理 7 天前仍未完成的分片上传
# abort_incomplete_multipart_upload: days = 7冷热层的取舍
| 维度 | 热层 | 冷层与归档层 |
|---|---|---|
| 访问延迟 | 毫秒级直接读取 | 可能需要等待取回或解冻 |
| 存储成本 | 单位容量最高 | 显著下降,适合长期留存 |
| 最短存储期 | 无或很短 | 通常有下限,提前删除仍按全期计费 |
| 取回费用 | 一般无额外费用 | 取回与请求可能单独计费 |
配置时的注意点
- 转移规则与过期规则的天数要衔接好,避免对象刚转冷就被删
- 冷层有最短存储期,短期数据放进去反而更贵
- 规则按前缀生效,前缀设计不当会误伤同桶的其他业务数据
- 同时开启版本控制时,非当前版本的清理规则必须单独配置
- 规则变更后按日志抽查,确认对象实际落到了预期层
分片上传中断后残留的分片不会出现在对象列举里,却会占用容量;配置自动清理规则是最省事的处理方式。
各实现支持的类别名称、最短存储期与取回时间差异较大,做成本与可用性测算时以目标存储当前的官方文档为准。