中文文档

mc ilm rule add

在 RELEASE.2022-12-24T15-21-38Z 版本发生变更: mc ilm rule rm 取代了 mc ilm add .

语法

mc ilm rule add 命令将一个对象生命周期管理规则添加到存储桶中。

该命令支持同时添加 Transition (Tiering)Expiration 生命周期管理规则。

以下命令向 myminio 部署上的 mydata 存储桶添加新的生命周期管理规则:

mc ilm rule add --expire-days 90 --noncurrent-expire-days 30  myminio/mydata

mc ilm rule add --expire-delete-marker myminio/mydata

mc ilm rule add --transition-days 30 --transition-tier "COLDTIER" myminio/mydata

mc ilm rule add --noncurrent-transition-days 7 --noncurrent-transition-tier "COLDTIER"

配置的规则具有以下效果:

  • 删除超过90天的对象

  • 在对象不再当前后30天删除对象

  • 如果该对象没有剩余的其他版本,则删除 DeleteMarker 逻辑删除。

  • 将超过 30 天的对象过渡到 COLDTIER 远程层。

  • 在对象不再当前后7天将对象过渡到 COLDTIER 远程层。

该命令具有以下语法:

mc [GLOBALFLAGS] ilm rule add                               \
                 [--prefix string]                          \
                 [--tags string]                            \
                 [--expire-days "integer"]                  \
                 [--expire-all-object-versions]             \
                 [--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"]    \
                 [--site-gt "string"]                       \
                 [--size-lt "string"]                       \
                 ALIAS
  • 方括号 [] 表示可选参数。

  • 参数在同一行表示它们是相互依赖的。

  • 使用管道 | 运算符分隔的参数是相互排斥的。

在终端/壳中运行命令之前,将示例复制到文本编辑器中并按需进行修改。

参数

ALIAS
Required

在MinIO部署上添加对象生命周期管理规则的 alias 和存储桶。

例如:

mc ilm rule add myminio/mydata
--prefix
Optional

将管理规则限制在特定的对象前缀。

例如:

mc ilm rule add --prefix "meetingnotes/" myminio/mydata --expire-days "90"

该命令创建了一个规则,它将在90天后过期具有 meetingnotes/ 前缀的任何对象,这些对象位于 myminio 别名的 mydata 存储桶中。

--tags
Optional

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

此选项与以下选项互斥:

--expire-all-object-versions
Optional

在 mc 版本加入: RELEASE.2024-02-24T01-33-20Z

删除对象的所有当前 非当前版本。 使用 mc ilm rule add --expire-days 选项来指定扫描进程应在多少天后删除对象的所有版本。

scanner 程序处理此命令之后,对象在部署上的所有版本都将被删除。

在 MinIO 版本发生变更: RELEASE.2024-05-01T01-11-10Z

该标记 适用于 没有 删除标记作为最新版本的对象。

--expire-days
Optional

创建后保留对象的天数。 在指定的天数过去后, MinIO会将对象标记为待删除。 将天数指定为一个整数,例如使用 30 表示30天。

对于版本化的存储桶,过期规则只适用于 当前 对象版本。 使用 --noncurrent-expire-days 标志或 --expire-all-object-versions 标志将过期行为应用于非当前对象版本。

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

与以下选项互斥:

有关对象过期的更完整文档,请参阅 对象过期

--expire-delete-marker
Optional

指定此选项,以指示MinIO删除没有剩余对象版本的对象的删除标记。 具体来说,删除标记是给定对象的 唯一 剩余 “版本” 。

此选项与以下选项互斥:

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

有关对象过期的更完整文档,请参阅 对象过期.

--transition-days
Optional

从对象创建之日起,MinIO将对象标记为符合转换条件的日历天数。 MinIO 将对象转换到配置的远程层,具体指定为 --transition-tier 。 将天数指定为一个整数,例如,使用 30 表示30天。 如果远程层是另一个 MinIO 部署,则可将该值设置为 0 ,以标记新对象可立即过渡到远程层。

对于版本化的存储桶,转换规则仅适用于 当前 对象版本。 使用 --noncurrent-transition-days 选项将转换行为应用于非当前对象版本。

需要指定 --transition-tier.

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

有关对象转换的更完整文档,请参阅 对象转换(分层).

--transition-tier
Optional

MinIO 会将 对象过渡 到的远程层。 指定由 mc ilm tier add 创建的现有远程层。

如果指定,则为必填项 --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将 非当前对象版本转换 到的远程层。 Specify a remote tier created by mc ilm tier add.指定一个由 mc ilm tier add 创建的远程层。

--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 工作负载或有限的系统资源,可能会导致扫描速度变慢,从而延迟生命周期管理规则的执行。 请参阅 生命周期管理对象扫描器 以获取更多信息。

--size-gt
Optional

在 mc 版本加入: RELEASE.2023-12-02T02-03-28Z

选择大于指定值的对象。 输入一个数值和一个单位,例如 5GiB 表示 5 gibibytes。

有效单位包括:

Suffix

Unit Size

k

KB (Kilobyte, 1000 Bytes)

m

MB (Megabyte, 1000 Kilobytes)

g

GB (Gigabyte, 1000 Megabytes)

t

TB (Terrabyte, 1000 Gigabytes)

ki

KiB (Kibibyte, 1024 Bites)

mi

MiB (Mebibyte, 1024 Kibibytes)

gi

GiB (Gibibyte, 1024 Mebibytes)

ti

TiB (Tebibyte, 1024 Gibibytes)

--size-lt
Optional

在 mc 版本加入: RELEASE.2023-12-02T02-03-28Z

选择小于指定值的对象。 请以数字和单位的形式输入值,例如 1M 表示 1 megabyte 。

有效单位包括:

Suffix

Unit Size

k

KB (Kilobyte, 1000 Bytes)

m

MB (Megabyte, 1000 Kilobytes)

g

GB (Gigabyte, 1000 Megabytes)

t

TB (Terrabyte, 1000 Gigabytes)

ki

KiB (Kibibyte, 1024 Bites)

mi

MiB (Mebibyte, 1024 Kibibytes)

gi

GiB (Gibibyte, 1024 Mebibytes)

ti

TiB (Tebibyte, 1024 Gibibytes)

全局标记

此命令支持任何 全局标志

示例

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

使用 mc ilm rule add--expire-all-object-versions--expire-days 标志,标记所有当前和非当前桶内容在对象创建若干天后失效。

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

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

  • DAYS 替换为每个对象的过期天数。 例如,指定 30 使对象在创建 30 天后过期。

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

使用 mc ilm rule add 命令配合 --prefix--transition-tier 选项来将对象的较旧的非当前版本过渡到不同的存储层级。

mc ilm rule add --prefix "doc/" --transition-days "90" --transition-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 rule add 命令,配合 --prefix--expire-days--noncurrent-expire-days 选项,可以在不同的时间过期对象的当前版本和非当前版本。

mc ilm rule add --prefix "doc/" --expire-days "300" --noncurrent-expire-days "100" myminio/mybucket

该命令查看具有 doc/ 前缀的内容,这些内容位于 mybucket 存储桶中的 myminio 部署中。

  • 当前对象在300天后过期。

  • 非当前对象在100天后过期。

转换前缀 /doc 中大小大于 1MiB 的非当前版本

使用 mc ilm rule add 命令,配合 --prefix--size-gt--noncurrent-expire-days 选项,可以在不同的时间过期对象的当前版本和非当前版本。

mc ilm rule add --prefix "doc/" --size-gt 1MiB --transition-days "90" --transition-tier "MINIOTIER-1" \
      --noncurrent-transition-days "45" --noncurrent-transition-tier "MINIOTIER-1" \
      myminio/mybucket/

该命令查看具有 doc/ 前缀的内容,这些内容位于 mybucket 存储桶中的 myminio 部署中。

该命令选择以下对象:

  • 当前版本中超过90天且大于1MiB(1,048,576字节)的对象。

  • 非当前版本中超过45天且大于1MiB(1,048,576字节)的对象。

Selected objects transition to MINIOTIER-1 .选中的对象将转换到 MINIOTIER-1

删除标记

下面的命令将删除对象的删除标记,因为删除标记是对象的唯一保留版本。

mc ilm rule add ALIAS/PATH --expire-delete-marker
  • ALIAS 替换为 S3 兼容主机的 alias

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

备注

要删除带有删除标记的对象的所有版本作为其最新版本, including the delete marker ,请考虑使用 batch expiration

所需权限

有关添加规则所需的权限,请参考父命令的 所需权限

行为

生命周期管理对象扫描器

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

到期与过渡

MinIO支持在同一个桶或桶前缀中指定过期和转换规则。 MinIO可以在不管对象转换状态的情况下对对象执行过期规则。 使用 mc ilm rule ls 命令来查看任何可能的 过期和转换规则之间的当前配置对象 生命周期管理规则的潜在 交互。

S3兼容性

mc 命令行工具是为了与 AWS S3 API 兼容而构建的,并且已经过测试, 以确保在与 MinIO 和 AWS S3 配合使用时,功能和行为符合预期。

MinIO 不对其他 S3 兼容服务提供任何保证,因为它们的 S3 API 实现是 未知的,因此不受支持。尽管 mc 命令 可能 如文档中所 述工作,但任何此类使用都是您自己的风险。

Join Slack 商业支持购买咨询