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
- OptionalMinIO 会将 对象过渡 到的远程层。 指定由 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
- OptionalMinIO将 非当前对象版本转换 到的远程层。 指定由 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 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。
