👻创作者:丶重明
👻创作时间:2025年3月7日
👻擅长领域:运维
目录
- 1.ILM使用介绍
- 2.生命周期配置实例
1.ILM使用介绍
对象生命周期管理(ILM)是现代对象存储系统的核心功能之一,MinIO通过mc ilm
命令提供了一套灵活的生命周期策略管理工具。
通过配置ILM规则,用户可以自动化管理存储桶中对象的生命周期,例如:
- 自动删除达到保留期限的旧数据
- 将热数据转换为冷存储类别
- 实现合规性数据保留策略
- 优化存储成本和管理效率
- 清理未完成的分段上传
语法:
mc ilm <子命令> [参数] ALIAS/BUCKET
子命令:
- add:添加规则
mc ilm add
- ls:列出规则
mc ilm ls
- re:删除规则
mc ilm rm
- edit:编辑现有规则
mc ilm edit
关键参数:
参数 | 说明 |
---|---|
--id | 指定规则的唯一标识符(自动生成可省略) |
--tags | 基于对象标签过滤 |
--prefix | 应用于指定前缀的对象 |
--expiry-days | 过期删除天数 |
--transition-days | 转换存储类别前的天数 |
--storage-class | 目标存储类别 |
--disable | 临时禁用规则而不删除 |
2.生命周期配置实例
- 基础过期策略
# 删除30天前的日志文件
mc ilm add myminio/test-bucket \--prefix "logs/" \--expiry-days 30
- 分层存储
# 将文档7天后转为冷存储,90天后删除
mc ilm add myminio/documents \--prefix "archives/" \--transition-days 7 \--storage-class "GLACIER" \--expiry-days 90
- 基于标签的管理
# 删除标记为temp=true且超过15天的对象
mc ilm add myminio/uploads \--tags "temp=true" \--expiry-days 15
- 多层存储方案
# 热数据层:保持标准存储
# 温数据层:30天后转为低频访问
mc ilm add myminio/project-data \--transition-days 30 \--storage-class "INFREQUENT_ACCESS"# 冷数据层:90天后归档
mc ilm add myminio/project-data \--transition-days 90 \--storage-class "GLACIER"# 最终删除:365天后过期
mc ilm add myminio/project-data \--expiry-days 365
查看生效的规则列表:
有多少规则就会显示多少规则。
$ mc ilm ls myminio/test-bucket
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for latest version (Expiration) │
├──────────────────────┬─────────┬────────┬──────┬────────────────┬─────────────────────┤
│ ID │ STATUS │ PREFIX │ TAGS │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
├──────────────────────┼─────────┼────────┼──────┼────────────────┼─────────────────────┤
│ cvj31kal96is9ae2vj2g │ Enabled │ logs/ │ - │ 30 │ false │
└──────────────────────┴─────────┴────────┴──────┴────────────────┴─────────────────────┘
如果你是想用文档的方式显示出来的话可以这样:
$ mc ilm export myminio/test-bucket
{"Rules": [{"Expiration": {"Days": 30},"ID": "cvj31kal96is9ae2vj2g","Filter": {"Prefix": "logs/"},"Status": "Enabled"}]
}
最后
我们对于单个桶的规则设置不要超过100条。
对高频访问桶设置凌晨执行窗口。
mc admin config set myminio ilm schedule_daily=00:00-04:00
对大桶启用分片处理
mc ilm bulk start myminio/large-bucket