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

MinIO Documentation

将对象迁移到远程 MinIO 部署

本页面的过程创建了一个新的对象生命周期管理规则,该规则将对象从主MinIO部署中的存储桶转换到远程MinIO部署中的存储桶。 此过程支持成本管理策略,例如将对象从使用NVMe存储的"热"MinIO部署分层到使用SSD的"温"MinIO部署。

需求

安装和配置mc

此过程使用mc用于在 MinIO 集群上执行操作。 安装mc在能够同时访问源集群和目标集群网络的机器上。请参阅mc 安装快速入门有关下载和安装的说明mc.

使用mc alias set创建源 MinIO 集群别名的命令。 别名创建需要为源集群和目标集群上的用户指定访问密钥。 指定用户必须具有权限用于配置和应用过渡操作。

所需源 MinIO 权限

MinIO 需要以下权限,这些权限应限定在您正在创建生命周期管理规则的一个或多个存储桶范围内。

MinIO 在您为对象转换生命周期管理规则创建远程层时,还需要集群上的以下管理权限:

例如,以下策略提供了在集群中任何存储桶上配置对象转换生命周期管理规则的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetTier",
               "admin:ListTier"
            ],
            "Effect": "Allow",
            "Sid": "EnableRemoteTierManagement"
      },
      {
            "Action": [
               "s3:PutLifecycleConfiguration",
               "s3:GetLifecycleConfiguration"
            ],
            "Resource": [
                        "arn:aws:s3:::*"
            ],
            "Effect": "Allow",
            "Sid": "EnableLifecycleManagementRules"
      }
   ]
}

Required Remote MinIO Permissions

对象转换生命周期管理规则需要在远程存储层上具备额外的权限。具体来说,MinIO要求远程存储层的凭据为远程存储桶提供读取、写入、列出和删除权限。

例如,以下策略在远程 MinIO 部署上提供了将对象移入和移出远程层所需的权限:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket"
            ],
            "Sid": ""
      },
      {
            "Action": [
               "s3:GetObject",
               "s3:PutObject",
               "s3:DeleteObject"
            ],
            "Effect": "Allow",
            "Resource": [
               "arn:aws:s3:::MyDestinationBucket/*"
            ],
            "Sid": ""
      }
   ]
}

修改Resource用于 MinIO 分层存储对象的存储桶。

参考访问管理有关配置所需权限的更完整指南,请参阅文档。

远程存储桶必须存在

创建远程存储桶之前配置生命周期管理层级或使用该存储桶作为目标的规则。

如果远程存储桶包含现有数据,请使用prefix将过渡对象与该存储桶中任何其他对象隔离的功能。

注意事项

生命周期管理对象扫描器

MinIO 使用一个扫描器进程检查对象是否符合所有已配置的生命周期管理规则。由于高IO工作负载或有限的系统资源导致的扫描缓慢可能会延迟生命周期管理规则的应用。

远程数据的独占访问

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

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

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

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

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

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

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

远程数据的可用性

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

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

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

过程

1) 为生命周期管理配置用户账户和策略

此步骤在 MinIO 部署上创建用户和策略以支持 生命周期管理操作。如果部署中已存在具备必要权限的用户, 可以跳过此步骤权限.

以下示例使用Alpha作为占位符aliasfor the MinIO deployment. Replace this value with the appropriate alias for the MinIO deployment on which you are configuring lifecycle management rules. Replace the passwordLongRandomSecretKey使用一个长、随机且安全的密钥,遵循贵组织密码生成的最佳实践。

wget -O - https://docs.min.io/community/minio-object-store/examples/LifecycleManagementAdmin.json | \
mc admin policy create Alpha LifecycleAdminPolicy /dev/stdin
mc admin user add Alpha alphaLifecycleAdmin LongRandomSecretKey
mc admin policy attach Alpha LifecycleAdminPolicy --user=alphaLifecycleAdmin

这个示例假设指定的别名具有在部署上创建策略和用户所需的必要权限。请参阅用户管理MinIO 基于策略的访问控制有关 MinIO 用户和策略的更完整文档,请分别参阅。

2) 配置远程存储层

使用mc ilm tier add将远程 MinIO 部署添加为新远程存储层的命令:

mc ilm tier add minio TARGET TIER_NAME  \
   --endpoint https://HOSTNAME       \
   --access-key ACCESS_KEY           \
   --secret-key SECRET_KEY           \
   --bucket BUCKET                   \
   --prefix PREFIX                   \
   --storage-class STORAGE_CLASS     \
   --region REGION

上面的示例使用了以下参数:

论点

描述

ALIAS

Thealias要在其上配置 MinIO 远程层的 MinIO 部署。

TIER_NAME

要与新的 MinIO 远程存储层关联的名称。请使用全大写字母指定名称,例如MINIO_WARM_TIER这个值在下一步中是必需的。

HOSTNAME

MinIO 存储后端的 URL 端点。

ACCESS_KEY

MinIO用于访问存储桶的访问密钥。该 访问密钥必须对应具有所需权限的IAM用户权限.

SECRET_KEY

指定密钥对应的私钥ACCESS_KEY.

BUCKET

远程 MinIO 部署上的存储桶名称,用于SOURCE过渡对象。

PREFIX

MinIO 在其中转换对象的可选存储桶前缀。

MinIO将所有转换后的对象存储在指定的BUCKET在 每个部署的唯一前缀值下。省略此参数,仅使用该值在远程存储中隔离和组织数据。

MinIO建议为包含其他数据的远程存储层指定此可选前缀, 包括来自其他MinIO部署的过渡对象。该前缀应能清晰指向源MinIO部署, 以便于执行与诊断、维护或灾难恢复相关的运维操作。

STORAGE_CLASS

TheErasure Coding 存储类MinIO 适用于将对象转换到远程 MinIO 存储桶的场景。 请指定以下支持的存储类别之一:

  • STANDARD 推荐

  • REDUCED

REGION

指定存储桶的 MinIO 区域BUCKET.

MinIO 部署通常不需要在设置过程中配置区域。 只有在明确设置时才需要包含此选项。MINIO_SITE_REGION部署的配置设置。

3) 创建并应用过渡规则

使用mc ilm rule add创建新转换规则的命令 用于存储桶。以下示例配置在指定 日历天数后的转换:

mc ilm rule add ALIAS/BUCKET \
--transition-tier TIERNAME \
--transition-days DAYS \
--noncurrent-transition-days NONCURRENT_DAYS
--noncurrent-transition-tier TIERNAME

上面的示例指定了以下参数:

论点

描述

ALIAS

指定alias您正在为其创建生命周期管理规则的 MinIO 部署。

BUCKET

指定要为其创建生命周期管理规则的存储桶的完整路径。

TIERNAME

MinIO 将对象转换到的远程存储层级。 请指定在上一步中创建的远程存储层级名称。

如果您想要将非当前对象版本转移到不同的远程层级,请为--noncurrent-transition-tier.

DAYS

对象在多少个日历天后,MinIO 会将其标记为符合转换条件。请以整数形式指定天数,例如:3030 天。

NONCURRENT_DAYS

MinIO 将非当前对象版本标记为符合转换条件的日历天数。MinIO 专门测量自对象成为非当前时间而非对象 创建时间。将天数指定为整数, 例如,9090 天。

省略此值可忽略非当前对象版本。

此选项对非版本化存储桶没有影响。

4) 验证转换规则

使用mc ilm rule ls查看已配置转换规则的命令:

mc ilm rule ls ALIAS/PATH --transition
  • 替换ALIAS随着aliasMinIO 部署的。

  • 替换PATH用于检索已配置生命周期管理规则的存储桶名称。