欢迎来到即将发布的 MinIO 文档版本! 此页面上的内容正在积极开发中 可能随时更改。 如果找不到您要找的内容,请查看我们的 历史文档。 感谢您的耐心等待。 我们期待您贡献自己强大的力量,帮助更多的中国技术开发者![翻译]

将对象从 MinIO 过渡到 S3

此页面上的过程创建了一个新的对象生命周期管理规则 将对象从 MinIO 存储转换到 Amazon 上的远程存储层 Web 服务 S3 存储后端 * or * 与 S3 兼容的服务。 这个程序 支持用例,例如将对象分层到低成本或归档存储 某个时间段或日历日期。

要求

安装和配置 mc

此过程使用 mc 用于在 MinIO 集群上执行操作。 安装 mc 在具有对源和目标的网络访问权限的机器上 集群。 见 “mc” Installation Quickstart 为了 有关下载和安装 “mc” 的说明。

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

所需的 MinIO 权限

MinIO 需要以下权限范围为一个或多个存储 您正在为其创建生命周期管理规则。

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

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

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

所需的 S3 权限

对象转换生命周期管理规则需要额外的权限 在远程存储层。 具体来说,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": ""
      }
   ]
}

修改 MinIO 将对象分层到其中的存储的 “Resource”。

参考 Amazon S3 Permissions 有关配置所需的更完整指南的文档权限。

注意事项

生命周期管理对象扫描器

MinIO 使用扫描器进程根据所有已配置的对象检查对象 生命周期管理规则。 由于高 IO 工作负载或 有限的系统资源可能会延迟生命周期管理的应用 规则。 看 生命周期管理对象扫描器 想要查询更多的信息。

独家存储访问

MinIO 保留了所需的最少对象元数据 支持检索转移到远程层的对象。 MinIO 因此 requires 独占访问远程存储层上的数据。 目的 检索假设存储的数据没有外部突变、迁移或删除对象。

MinIO 还会忽略远程存储桶或存储前缀中的任何对象 由 MinIO 明确管理。

程序

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

此步骤在 MinIO 部署上创建用户和策略以支持 生命周期管理操作。 如果部署,您可以跳过此步骤 已经拥有必要的用户 permissions.

以下示例使用“Alpha”作为占位符 alias 为了 MinIO 部署。 将此值替换为适当的别名 您在其上配置生命周期管理规则的 MinIO 部署。 将密码 “LongRandomSecretKey” 替换为一个长的、随机的、安全的 根据您组织的密码生成最佳实践的密钥。

wget -O - http://docs.minio.org.cn/minio/baremetal/examples/LifecycleManagementAdmin.json | \
mc admin policy add Alpha LifecycleAdminPolicy /dev/stdin
mc admin user add Alpha alphaLifecycleAdmin LongRandomSecretKey
mc admin policy set Alpha LifecycleAdminPolicy user=alphaLifecycleAdmin

此示例假定指定的 别名具有创建策略和用户的必要权限 在部署上。 看 User Management and MinIO Policy Based Access Control 更多 分别关于 MinIO 用户和策略的完整文档。

2) 配置远程存储层

使用 mc admin tier add 命令添加一个 Amazon S3 服务作为 新的远程存储层:

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

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

Argument

Description

TARGET

The alias 要在其上配置的 MinIO 部署 S3 远程层。

TIER_NAME

与新的 S3 远程存储层关联的名称。 这个值 下一步需要。

HOSTNAME

S3 存储后端的 URL 端点。

BUCKET

MinIO 到的 S3 存储后端上的存储的名称 过渡对象。

PREFIX

MinIO 在其中转换对象的可选前缀。 省略此参数以将对象转换为根。

ACCESS_KEY

MinIO 用于访问存储桶的 S3 访问密钥。 这 访问密钥 must 对应于具有 必需的 permissions.

SECRET_KEY

指定的 “ACCESS_KEY” 的相应密钥。

REGION

指定 BUCKET 的 AWS S3 区域。 你可以放心地省略这个 如果 HOSTNAME 包含区域,则为选项。

STORAGE_CLASS

MinIO 将对象转换到的 S3 存储类。 指定 以下支持的存储类之一:

  • STANDARD

  • REDUCED

3) 创建并应用转换规则

使用 mc ilm add 命令创建一个新的转换规则 为桶。 以下选项卡包含转换示例 在日历日期 * or * 数个日历日之后的对象。

mc ilm add ALIAS/BUCKET \
--storage-class TIERNAME \
--transition-date DATE \
--noncurrentversion-transition-date NONCURRENT_DAYS
mc ilm add ALIAS/BUCKET \
--storage-class TIERNAME \
--transition-days DAYS \
--noncurrentversion-transition-days NONCURRENT_DAYS

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

Argument

Description

ALIAS

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

BUCKET

指定您所在存储桶的完整路径 创建生命周期管理规则。

TIERNAME

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

DAYS

MinIO 将对象标记为的日历天数 符合过渡条件。

DATE

ISO-8601 格式的日历日期,MinIO 在此日期之后标记对象 作为过渡的资格。

NONCURRENT_DAYS

MinIO 标记为非当前的日历天数 对象版本符合转换条件。 省略这个值 忽略非当前对象版本。

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

3) 验证转换规则

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

mc ilm list ALIAS/PATH --transition
  • 代替 ALIAS with the alias MinIO 部署。

  • 代替 PATH 带有存储的名称 检索配置的生命周期管理规则。