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