文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

对象生命周期管理

使用 MinIO 对象生命周期管理来创建基于时间或日期的对象自动转移或过期规则。 对于对象转移,MinIO 会自动将对象移动到配置的远程存储层。 对于对象过期,MinIO 会自动删除对象。

MinIO 的行为和语法源自S3 生命周期为了在从 S3 迁移工作负载和生命周期规则到 MinIO 时保持兼容性, 例如,您可以导出 S3 生命周期管理规则并将其导入到 MinIO,反之亦然。 MinIO 使用 JSON 来描述生命周期管理规则,在导入 S3 生命周期规则时可能需要与 XML 进行相互转换。

对象转换("分层")

MinIO 支持创建对象转换生命周期管理规则,其中 MinIO 可以自动将对象移动到远程存储“层级”。 MinIO 支持以下任意远程层级目标:

MinIO 对象转换支持将老化数据从私有或公有云基础设施中的 MinIO 集群迁移到低成本的私有或公有云存储解决方案等使用场景。 目录对象是指大小为 0 字节且名称以/, 做层。 MinIO 实时管理分层对象的检索,无需任何额外的应用端逻辑。

使用mc ilm tier add创建远程分层数据目标的命令。 然后您可以使用mc ilm rule add --transition-days在指定日历天数后将对象转换到该层的命令。

版本 RELEASE.2022-11-10T18-20-21Z 中的新增功能。

您可以使用以下方法验证对象的分层状态mc ls针对存储桶或存储桶前缀。 输出包含每个对象的存储层级:

$ mc ls play/mybucket
[2022-11-08 11:30:24 PST]    52MB  STANDARD log-data.csv
[2022-11-09 12:20:18 PST]    120MB WARM event-2022-11-09.mp4
  • STANDARD标记存储在 MinIO 部署中的对象。

  • WARM标记远程层级上具有匹配名称的存储对象。

重要

MinIO对象转换支持将较旧或老化的数据迁移到成本优化的远程存储层(如云存储或高密度HDD存储)的成本节约策略。

MinIO 对象转换功能提供备份和恢复功能。 在MinIO发生数据丢失的情况下,您不能使用远程层作为恢复源。

使用其中一种站点复制 or 存储桶复制以支持备份/恢复或业务连续性/灾难恢复要求。

远程数据的独占访问

MinIO需要对远程存储层中已转移数据的独占访问。 “热”MinIO 源上的对象元数据与“温/冷”远程层上的对象数据紧密关联。 若无法访问远程存储,MinIO 将无法检索对象数据;同样地,远程存储也无法用于恢复源上丢失的元数据。

对所有已转换对象的访问必须仅通过 S3 API 操作经由 MinIO 进行。 手动修改已转换的对象——无论是在“热”MinIO 层上的元数据or远程“温/冷”层上的对象数据 - 可能导致该对象数据丢失。

MinIO 忽略远程存储桶或存储桶前缀中未被 MinIO 部署明确管理的任何对象。 自动分层和透明对象检索依赖于以下假设:

  • 远程存储上的对象没有外部变更、迁移或删除。

  • 远程存储桶上没有生命周期管理规则(例如转换或过期)。

MinIO将所有转换后的对象存储在远程存储桶或资源中,并使用每个部署特有的前缀值。 该值不用于支持从后端识别源部署。 MinIO在配置远程目标时支持额外可选的人工可读前缀,这可能有助于与诊断、维护或灾难恢复相关的操作。

MinIO 建议为包含其他数据(包括来自其他 MinIO 部署的转换对象)的远程存储层指定此可选前缀。 本教程包含设置此前缀的必要语法。

远程数据的可用性

MinIO 分层行为依赖于远程存储能够在请求时立即(毫秒到秒级)返回对象。 因此 MinIO无法支持需要重新水合、等待期或手动干预的远程存储。

MinIO 会为每个已转移的对象创建元数据,用于标识其在远程存储上的位置。 应用程序无法在脱离 MinIO 的情况下直接识别和访问已转移的对象。 因此,已转移数据的可用性取决于相同的核心保护措施。纠删码和分布式 部署拓扑为 MinIO 部署上的所有对象提供支持。使用 对象转换不会提供任何额外的业务连续性或 灾难恢复优势。

需要工作负载业务连续性/灾难恢复protections 应该实现 MinIO服务器端复制. 复制可确保对象在远程复制站点上保持完好,以便在发生部分或全部数据丢失时,您可以从远程站点重新同步。参见重新同步(灾难恢复)有关使用复制在部分或完全数据丢失后进行恢复的更完整文档。

版本化存储桶

MinIO 采用S3 行为关于过渡规则版本化存储桶具体来说,MinIO 默认将转换操作应用于当前对象版本。

要转换非当前对象版本,请指定--noncurrent-transition-days--noncurrent-transition-tier创建过渡规则时的选项。

对象过期

MinIO 生命周期管理支持对存储桶中的对象设置过期策略。 对象"过期"涉及执行DELETE对对象的操作。 例如,您可以创建生命周期管理规则,使超过365天的任何对象过期。

使用mc ilm rule add --expire-days在指定的日历天数后使对象过期。

对于具有复制配置后,MinIO 不会复制因生命周期管理过期规则而删除的对象。 参见删除操作的复制欲了解更多信息。

版本化存储桶

MinIO 采用S3 行为关于过期规则版本化存储桶MinIO 为启用了版本控制的存储桶设置了以下默认行为:

  • MinIO 仅将过期选项应用于当前通过创建对象版本来DeleteMarker与版本化删除的情况一样。

    要使非当前对象版本过期,请指定--noncurrent-expire-days创建过期规则时的选项。

  • MinIO 不会过期DeleteMarkers 即使该对象的其他版本不存在。

    要使删除标记在对象没有剩余版本时过期,请指定--expire-delete-marker创建过期规则时的选项。

  • 使过期全部不存在的对象版本在指定天数后具有删除标记,请使用--expire-all-object-versions带有旗帜的--expire-daysflag. 这允许在指定天数过后永久删除该对象。

    MinIO 版本变更说明:RELEASE.2024-05-01T01-11-10Z

    此标志仅适用于不满足特定条件的对象。有一个删除标记。

生命周期管理对象扫描器

MinIO 使用内置的扫描仪主动根据所有已配置的生命周期管理规则检查对象。

扫描器是一个低优先级进程,会为高优先级进程让路I/O工作负载,以防止由规则计时触发的性能峰值。 因此,扫描程序可能无法检测到对象符合配置的转换或过期生命周期规则的资格,直到之后生命周期规则期限已过。