mc ilm add
版本 RELEASE.2022-12-24T15-21-38Z 中已更改: mc ilm add
已被 mc ilm rule add
替换。
语法
命令mc ilm add
会向存储桶添加一个对象生命周期管理规则。
该命令支持添加 转换(分层) 和 过期 两种生命周期管理规则。
以下命令会向 myminio
部署中的 mydata
存储桶添加新的生命周期管理规则。
mc ilm add --expire-days 90 --noncurrent-expire-days 30 myminio/mydata
mc ilm add --expire-delete-marker myminio/mydata
mc ilm add --transition-days 30 --transition-tier "COLDTIER" myminio/mydata
mc ilm add --noncurrent-transition-days 7 --noncurrent-transition-tier "COLDTIER"
配置的规则具有以下效果
删除超过 90 天的对象。
对象变成非当前对象 30 天后删除。
如果对象没有其他版本剩余,则删除
DeleteMarker
标记。将超过 30 天的对象转换为
COLDTIER
远程层。对象变成非当前对象 7 天后,将其转换为
COLDTIER
远程层。
该命令具有以下语法
mc [GLOBALFLAGS] ilm add \
[--prefix string] \
[--tags string] \
--expire-days "integer" \
[--expire-delete-marker] \
[--transition-days "string"] \
[--transition-tier "string"] \
[--noncurrent-expire-days "integer"] \
[--noncurrent-expire-newer "integer"] \
[--noncurrent-transition-days "integer"] \
[--noncurrent-transition-tier "string"] \
ALIAS
方括号
[]
表示可选参数。同一行中的参数是相互依赖的。
使用管道符
|
分隔的参数是互斥的。
将示例复制到文本编辑器中,并在终端/shell 中运行命令之前根据需要进行修改。
参数
- ALIAS
- 必选
要向其添加对象生命周期管理规则的 MinIO 部署上的 别名 和存储桶。
例如
mc ilm add myminio/mydata
- --prefix
- 可选
将管理规则限制在特定的对象前缀。
例如
mc ilm add --prefix "meetingnotes/" myminio/mydata/ --expire-days "90"
该命令会创建一个规则,该规则会对
myminio
别名中mydata
存储桶中的任何以meetingnotes/
为前缀的对象在 90 天后过期。
- --expire-days
- 必选
创建对象后保留对象的天数。在指定的天数过去后,MinIO 会将对象标记为要删除。将天数指定为整数,例如
30
表示 30 天。对于版本化的存储桶,过期规则仅适用于*当前*对象版本。使用
--noncurrent-expire-days
选项将过期行为应用于非当前对象版本。MinIO 使用 扫描程序进程 检查对象是否符合所有配置的生命周期管理规则。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
与以下选项互斥
- --expire-delete-marker
- 可选
指定此选项以指示 MinIO 删除没有剩余对象版本的对象的删除标记。具体来说,删除标记是给定对象的*唯一*剩余“版本”。
此选项与以下选项互斥
MinIO 使用 扫描程序进程 检查对象是否符合所有配置的生命周期管理规则。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
- --transition-days
- 可选
从对象创建开始的天历日数,在此之后 MinIO 会将对象标记为符合转换条件。MinIO 会将对象转换为配置的远程层(指定给
--transition-tier
)。将天数指定为整数,例如30
表示 30 天。对于版本化的存储桶,转换规则仅适用于*当前*对象版本。使用
--noncurrent-transition-days
选项将转换行为应用于非当前对象版本。需要指定
--transition-tier
。MinIO 使用 扫描程序进程 检查对象是否符合所有配置的生命周期管理规则。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
有关对象转换的更完整文档,请参阅 对象转换(“分层”)。
- --transition-tier
- 可选
MinIO 将对象转换到的远程层。指定由
mc admin tier
创建的现有远程层。如果指定了
--transition-days
,则需要此参数。
- --noncurrent-expire-days
- 可选
对象版本变成*非当前*(即该对象的另一个版本现在是HEAD)后保留的天数。在指定的天数过去后,MinIO 会将非当前对象版本标记为要删除。
此选项的行为与 S3
NoncurrentVersionExpiration
操作相同。MinIO 使用 扫描程序进程 检查对象是否符合所有配置的生命周期管理规则。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
- --noncurrent-transition-days
- 可选
对象变成非当前(即被同一对象的较新版本替换)的天数,在此之后 MinIO 会将对象版本标记为符合转换条件。一旦系统主机日期时间超过该日历日期,MinIO 就会将对象转换为配置的远程层(指定给
--transition-tier
)。此选项对非版本化存储桶无效。需要指定
--noncurrent-transition-tier
。此选项的行为与 S3
NoncurrentVersionTransition
操作相同。MinIO 使用 扫描程序进程 检查对象是否符合所有配置的生命周期管理规则。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
- --noncurrent-transition-tier
- 可选
MinIO 将非当前对象版本转换到的远程层。指定由
mc admin tier
创建的远程层。
- --noncurrent-expire-newer
- 可选
要保留的最大非当前对象版本数,按从最新到最旧的顺序排列。
使用此标志以先进先出的方式保留文件的某些过去版本。在保留最大数量的非当前版本后,MinIO 会将任何剩余的较旧非当前对象版本标记为符合过期条件。
下表列出了基于
--noncurrent-expire-newer 3
的一些对象版本及其过期资格v5(当前版本)
当前版本不受 ILM 规则影响。
v4
保留
v3
保留
v2
保留
v1
标记为过期
MinIO 保留当前版本 v5。MinIO 还保留接下来的
3
个非当前版本,从最新的开始。这意味着 MinIO 会将v4
、v3
和v2
标记为要保留的三个非当前版本。v1
将是第四个非当前版本,超出要保留的非当前版本的限制,因此 MinIO 会将v1
标记为过期。更新此标志的数量只会影响对象的未标记版本。如果您增加要保留的数量,任何已标记为过期的版本都不会更改。
MinIO 使用 扫描程序进程 检查对象是否符合所有配置的生命周期管理规则。由于高 IO 工作负载或系统资源有限而导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
全局标志
此命令支持任何 全局标志。
示例
在指定天数后使所有存储桶内容过期
使用 mc ilm add
和 --expire-days
将存储桶内容在对象创建后经过指定天数后标记为过期。
mc ilm add ALIAS/PATH --expire-days "DAYS"
将前缀下的非当前对象版本迁移到不同的层级
使用 mc ilm add
命令,结合 --prefix
和 --transition-tier
,可以将对象较旧的非当前版本迁移到不同的存储层级。
mc ilm add --prefix "doc/" --transition-days "90" --trasition-tier "MINIOTIER-1" \
--noncurrent-transition-days "45" --noncurrent-transition-tier "MINIOTIER-2" \
myminio/mybucket/
此命令查看 myminio
部署中 mybucket
存储桶中具有 doc/
前缀的内容。
前缀中超过 90 天的当前对象将移动到
MINIOTIER-1
存储层级。前缀中超过 45 天的非当前对象将移动到
MINIOTIER-2
存储层级。MINIOTIER-1
和MINIOTIER-2
都已使用mc admin tier add
创建。
使前缀下的所有对象过期,并使当前对象版本比非当前对象版本保留更长时间
使用 mc ilm add
命令,结合 --prefix
、--expire-days
和 --noncurrent-expire-days
,可以使对象的当前版本和非当前版本在不同时间过期。
mc ilm add --prefix "doc/" --expire-days "300" --noncurrent-expire-days "100" myminio/mybucket/
此命令查看 myminio
部署中 mybucket
存储桶中具有 doc/
前缀的内容。
当前对象在 300 天后过期。
非当前对象在 100 天后过期。
行为
生命周期管理对象扫描程序
MinIO 使用 扫描程序进程 来根据配置的生命周期管理规则检查对象。由于高 IO 工作负载或系统资源有限导致的扫描速度缓慢可能会延迟生命周期管理规则的应用。有关更多信息,请参阅 生命周期管理对象扫描程序。
过期与迁移
MinIO 支持在同一个存储桶或存储桶前缀中同时指定过期规则和迁移规则。无论对象的迁移状态如何,MinIO 都可以对对象执行过期规则。使用 mc ilm ls
可以查看当前为任何潜在的过期规则和迁移规则交互配置的对象生命周期管理规则。
S3 兼容性
mc 命令行工具构建时考虑了与 AWS S3 API 的兼容性,并且已在 MinIO 和 AWS S3 上进行了测试,以确保其功能和行为符合预期。
对于其他与 S3 兼容的服务,MinIO 不提供任何保证,因为它们的 S3 API 实现未知,因此不受支持。虽然 mc 命令可能按文档记录的方式工作,但任何此类用法均需自行承担风险。