文档

mc ilm tier add

Changed in version RELEASE.2022-12-24T15-21-38Z: mc ilm tier add 替代了 mc admin tier add

描述

mc ilm tier add 命令在受支持的存储服务上创建一个新的远程存储层。

完整列表请参见 对象转换

支持的 S3 服务

mc ilm tier add *仅*支持以下 S3 兼容服务作为对象分层的远程目标:

  • MinIO

  • Amazon S3

  • Google Cloud Storage

  • Azure Blob Storage

权限

在为对象转换生命周期管理规则创建远程层的集群上,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"
      }
   ]
}

语法

以下示例在 myminio 部署上创建一个名为 WARM-MINIO-TIER 的新远程层。 该命令为位于主机名 https://warm-minio.com 的远程 MinIO 部署创建一个层。

 mc ilm tier add minio myminio WARM-MINIO-TIER                     \
                               --endpoint https://warm-minio.com   \
                               --access-key ACCESSKEY              \
                               --secret-key SECRETKEY              \
                               --bucket mybucket                   \
                               --prefix myprefix/

myminio 部署上的生命周期管理规则可以使用该新层,将对象转换到远程位置 mybucket 存储桶中的 myprefix/ 前缀下。

命令语法如下:

mc ilm tier add TIER_TYPE                    \
                TARGET                       \
                TIER_NAME                    \
                --bucket value               \
                [--endpoint string]          \
                [--region string]            \
                [--access-key value^]        \
                [--secret-key value^]        \
                [--use-aws-role^]            \
                [--aws-role-arn^]            \
                [--aws-web-identity-file^]   \
                [--azure-sp-tenant-id^]      \
                [--azure-sp-client-id^]      \
                [--azure-sp-client-secret^]  \
                [--account-name value^]      \
                [--account-key value^]       \
                [--credentials-file value^]  \
                [--prefix value]             \
                [--storage-class value]

**^注意:**每个受支持的存储供应商使用不同的认证方式。 用于认证的标志因存储供应商而异。 详见下方 TIER_TYPE

  • 方括号 [] 表示可选参数。

  • 同一行中的参数彼此相互依赖。

  • 使用管道符 | 分隔的参数彼此互斥。

请先将示例复制到文本编辑器中并按需修改,再在终端 / shell 中运行命令。

参数

该命令接受以下参数:

TIER_TYPE
Required

MinIO 将对象转换到的云服务提供商存储后端(”Tier”)。 指定以下受支持值之一:

minio

使用远程 MinIO 部署作为新 Tier 的存储后端。

还需要指定以下参数:

s3

使用 AWS S3 作为新 Tier 的存储后端。

还需要指定以下参数:

azure

使用 Azure Blob Storage 作为新 Tier 的存储后端。

还需要指定以下参数:

gcs

使用 GCP Cloud Storage 作为新 Tier 的存储后端。

还需要指定以下参数:

TARGET
Required

命令在该已配置 MinIO 部署的 alias 上创建新的远程层。 随后你可以使用 mc ilm rule add 并指定该新远程层来创建新规则。

TIER_NAME
Required

与新远程层关联的名称。 该名称**必须**在 MinIO 集群所有已配置层中唯一。

你**必须**使用全大写指定 tier,例如 WARM_TIER

--endpoint
Optional

S3 或 MinIO 存储的 URL endpoint。 URL endpoint **必须**解析到 TIER_TYPE 指定的提供方。

s3minio tier 类型为必需,对 azure 为可选。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--access-key
Optional

远程 S3minio tier 类型中某个用户的 access key。 该用户必须具有对远程存储桶或存储桶前缀执行 read/write/list/delete 操作的权限。

TIER_TYPEs3minio 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--secret-key
Optional

远程 s3minio tier 类型中某个用户的 secret key。

TIER_TYPEs3minio 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--account-name
Optional

用作远程存储资源的 Storage Account

TIER_TYPEazure 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

MinIO *不*支持更改与 Azure 远程 tier 关联的存储账户名。 Azure 存储后端绑定到存储账户,因此更改该值会更换存储后端,并导致无法访问已转换到原账户/后端的任何对象。

--account-key
Optional

与远程 Azure tier 关联的 --account-name 对应的共享 account key。

该 account key 必须绑定具备所需 权限 的 Azure 策略。

TIER_TYPEazure 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--credentials-file
Optional

远程 Google Cloud Storage tier 中用户使用的 credential file。 该用户必须具有对远程存储桶或存储桶前缀执行 read/write/list/delete 操作的权限。

TIER_TYPEgcs 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--bucket
Required

MinIO 将对象转换到的远程 tier 存储桶。

对于 azure 远程 tier,该值对应 Container name

--prefix
Optional

MinIO 将对象转换到指定 --bucket 的前缀路径。

省略此字段可将对象转换到存储桶根路径。

--storage-class
Optional

MinIO 应用于转换到远程存储桶对象的 storage class(在 Microsoft Azure 中称为 “access tier”)。

应用于 MinIO 转换到远程存储桶对象的 storage class。 MinIO 分层行为依赖远程存储在请求后立即返回对象(毫秒到秒级)。 因此 MinIO *无法*支持需要 rehydration、等待周期或手动干预的远程存储。

选择与 TIER_TYPE 对应的选项卡,查看各层支持的值:

  • STANDARD 推荐

  • REDUCED

更多信息请参见 纠删码存储类

  • STANDARD

  • STANDARD-IA

  • ONEZONE-IA

更多信息请参见 使用 Amazon S3 存储类

  • STANDARD

  • NEARLINE

  • COLDLINE

更多信息请参见 GCS 存储类

  • Hot

  • Cool

更多信息请参见 Blob 数据的 Hot、Cool 和 Archive 访问层

若省略,对象将使用远程存储桶定义的默认存储类。

--region
Optional

指定 TIER_TYPE 的 S3 后端区域,例如 us-west-1

该选项仅在 TIER_TYPEs3minio 时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--use-aws-role
Optional

使用本地配置的 AWS Role 的访问权限。

该选项仅在 TIER_TYPEs3minio 时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--aws-role-arn
Optional

转换对象时要使用的 AWS S3 角色名称。

该选项仅在 TIER_TYPEs3 **且**源端是 Amazon EKS 上的 MinIO pod 时生效。

--aws-web-identity-file
Optional

指定转换对象时使用的 web identity token 文件。

该选项仅在 TIER_TYPEs3 **且**源端是 Amazon EKS 上的 MinIO pod 时生效。

--azure-sp-tenant-id
Optional

用于登录 Azure 存储的 service principal account 的 Tenant ID。

该选项仅在 TIER_TYPEazure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--azure-sp-client-id
Optional

用于登录 Azure 存储的 service principal account 的 Client ID。

该选项仅在 TIER_TYPEazure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

--azure-sp-client-secret
Optional

用于登录 Azure 存储的 service principal account 的 client secret。

该选项仅在 TIER_TYPEazure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。

全局标志

此命令支持 全局标志 中的任意选项。

示例

配置一个 Tier 以将对象转换到 MinIO 部署

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到独立的远程 MinIO 部署。

mc ilm tier add minio myminio WARM-MINIO-TIER --endpoint https://warm-minio.com \
     --access-key ACCESSKEY --secret-key SECRETKEY --bucket mybucket --prefix myprefix/

该命令在 myminio 部署上为 minio 类型远程存储创建一个名为 WARM-MINIO-TIER 的新层。

  • 远程 MinIO 存储位于 https://warm-minio.com

  • 命令中包含了一个对该存储桶及前缀具备 read、write、list 和 delete 权限用户的凭据。

  • 该层会将对象转换到远程 MinIO 存储上的 mybucket 存储桶与 myprefix 前缀。

配置一个 Tier 以将对象转换到 Azure Blob Storage 位置

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到 Azure Blob Storage。

mc ilm tier add azure myminio AZTIER --account-name ACCOUNT-NAME --account-key ACCOUNT-KEY \
     --bucket myazurebucket --prefix myazureprefix/

该命令在 myminio 部署上为 azure 类型远程存储创建一个名为 AZTIER 的新层。

  • 使用提供的 account name 和 key 访问远程 Azure 存储。

  • 该层会将对象转换到 Azure 存储上的 myazurebucket 存储桶与 myazureprefix 前缀。

配置一个 Tier 以将对象转换到 Google Cloud Storage

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到 Google Cloud Storage。

 mc ilm tier add gcs myminio GCSTIER --credentials-file /path/to/credentials.json \
     --bucket mygcsbucket  --prefix mygcsprefix/

该命令在 myminio 部署上为 gcs 类型远程存储创建一个名为 GCSTIER 的新层。

  • 使用提供的 credentials file 访问远程 GCS 存储。

  • 该层会将对象转换到 GCS 存储上的 mygcsbucket 存储桶与 mygcsprefix 前缀。

配置一个 Tier 以将对象转换到 Amazon Simple Storage Service (S3)

以下示例在本地部署上创建一个新层,已配置规则可使用该层将对象转换到 S3 上的 STANDARD 存储。

 mc ilm tier add s3 myminio S3TIER --endpoint https://s3.amazonaws.com \
     --access-key ACCESSKEY --secret-key SECRETKEY --bucket mys3bucket --prefix mys3prefix/ \
     --storage-class "STANDARD" --region us-west-2

该命令在 myminio 部署上为 s3 类型远程存储创建一个名为 S3TIER 的新层。

  • S3 存储位于提供的 endpoint。

  • 使用提供的 access key 和 secret key 访问远程 S3 存储。

  • 该层会将对象转换到 GCS 存储上的 mys3bucket 存储桶与 mys3prefix 前缀。

  • 该层使用位于 us-west-2 S3 区域的 S3 STANDARD 存储类。

S3 兼容性

mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。

对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。

所需权限

有关添加 tier 所需的权限,请参见父命令中的 required permissions