中文文档

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 存储桶中。

--tags
Optional

一个或多个由 & 分隔的关键字值对,用于描述用于过滤适用于生命周期配置规则的对象的对象标签。

此选项与以下选项互斥:

--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将标记 v4v3v2 作为要保留的三个非当前版本。

v1 是第四个非当前版本,它超出了要保留的非当前版本的数量限制,因此MinIO将 v1 标记为可过期。

更新此标志的数字只会影响对象的未标记版本。 如果增加要保留的版本数量,已经被标记为过期的版本不会改变。

MinIO 使用一个 扫描器进程 来检查对象是否符合所有配置的生命周期管理规则。 由于高 I/O 工作负载或有限的系统资源,可能会导致扫描速度变慢,从而延迟生命周期管理规则的执行。 请参阅 生命周期管理对象扫描器 以获取更多信息。

全局标记

此命令支持任何 全局标志

示例

天数后使所有存储桶内容过期

使用 mc ilm add 命令和 --expire-days 选项,可以标记存储桶内容在对象创建后经过特定天数后进行过期处理。

mc ilm add ALIAS/PATH --expire-days "DAYS"
  • ALIAS 替换为 S3 兼容主机的 alias

  • PATH 替换为 S3 兼容主机上存储桶的路径。

  • DATE 替换为对象到期的时间(以天为单位)。 例如,指定 30 来在对象创建后的 30 天内过期。

将前缀处的非当前对象版本转换到不同层

使用 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-1MINIOTIER-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 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。

Join Slack 商业支持购买咨询