mc ilm tier add
变更: 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
mc-cmd
Required
MinIO 将对象转换到的云服务提供商存储后端(”Tier”)。 指定以下受支持值之一:
| 使用远程 MinIO 部署作为新 Tier 的存储后端。 还需要指定以下参数: |
| 使用 AWS S3 作为新 Tier 的存储后端。 还需要指定以下参数: |
| 使用 Azure Blob Storage 作为新 Tier 的存储后端。 还需要指定以下参数: |
| 使用 GCP Cloud Storage 作为新 Tier 的存储后端。 还需要指定以下参数: |
TARGET
mc-cmd
Required
命令在该已配置 MinIO 部署的 alias 上创建新的远程层。 随后你可以使用 mc ilm rule add 并指定该新远程层来创建新规则。
TIER_NAME
mc-cmd
Required
与新远程层关联的名称。 该名称必须在 MinIO 集群所有已配置层中唯一。
你必须使用全大写指定 tier,例如 WARM_TIER。
--endpoint
mc-cmd
Optional
S3 或 MinIO 存储的 URL endpoint。 URL endpoint 必须解析到 TIER_TYPE 指定的提供方。
对 s3 或 minio tier 类型为必需,对 azure 为可选。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--access-key
mc-cmd
Optional
远程 S3 或 minio tier 类型中某个用户的 access key。 该用户必须具有对远程存储桶或存储桶前缀执行 read/write/list/delete 操作的权限。
当 TIER_TYPE 为 s3 或 minio 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--secret-key
mc-cmd
Optional
远程 s3 或 minio tier 类型中某个用户的 secret key。
当 TIER_TYPE 为 s3 或 minio 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--account-name
mc-cmd
Optional
用作远程存储资源的 Storage Account。
当 TIER_TYPE 为 azure 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。
MinIO 不支持更改与 Azure 远程 tier 关联的存储账户名。 Azure 存储后端绑定到存储账户,因此更改该值会更换存储后端,并导致无法访问已转换到原账户/后端的任何对象。
--account-key
mc-cmd
Optional
与远程 Azure tier 关联的 --account-name 对应的共享 account key。
该 account key 必须绑定具备所需 权限 的 Azure 策略。
当 TIER_TYPE 为 azure 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--credentials-file
mc-cmd
Optional
远程 Google Cloud Storage tier 中用户使用的 credential file。 该用户必须具有对远程存储桶或存储桶前缀执行 read/write/list/delete 操作的权限。
当 TIER_TYPE 为 gcs 时必需。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--bucket
mc-cmd
Required
MinIO 将对象转换到的远程 tier 存储桶。
对于 azure 远程 tier,该值对应 Container name
--prefix
mc-cmd
Optional
MinIO 将对象转换到指定 --bucket 的前缀路径。
省略此字段可将对象转换到存储桶根路径。
--storage-class
mc-cmd
Optional
MinIO 应用于转换到远程存储桶对象的 storage class(在 Microsoft Azure 中称为 “access tier”)。
应用于 MinIO 转换到远程存储桶对象的 storage class。 MinIO 分层行为依赖远程存储在请求后立即返回对象(毫秒到秒级)。 因此 MinIO 无法支持需要 rehydration、等待周期或手动干预的远程存储。
选择与 TIER_TYPE 对应的选项卡,查看各层支持的值:
STANDARD推荐REDUCED
更多信息请参见 纠删码存储类。
STANDARDSTANDARD-IAONEZONE-IA
更多信息请参见 使用 Amazon S3 存储类。
STANDARDNEARLINECOLDLINE
更多信息请参见 GCS 存储类。
HotCool
更多信息请参见 Blob 数据的 Hot、Cool 和 Archive 访问层。
若省略,对象将使用远程存储桶定义的默认存储类。
--region
mc-cmd
Optional
指定 TIER_TYPE 的 S3 后端区域,例如 us-west-1。
该选项仅在 TIER_TYPE 为 s3 或 minio 时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--use-aws-role
mc-cmd
Optional
使用本地配置的 AWS Role 的访问权限。
该选项仅在 TIER_TYPE 为 s3 或 minio 时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--aws-role-arn
mc-cmd
Optional
转换对象时要使用的 AWS S3 角色名称。
该选项仅在 TIER_TYPE 为 s3 且源端是 Amazon EKS 上的 MinIO pod 时生效。
--aws-web-identity-file
mc-cmd
Optional
指定转换对象时使用的 web identity token 文件。
该选项仅在 TIER_TYPE 为 s3 且源端是 Amazon EKS 上的 MinIO pod 时生效。
--azure-sp-tenant-id
mc-cmd
Optional
用于登录 Azure 存储的 service principal account 的 Tenant ID。
该选项仅在 TIER_TYPE 为 azure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--azure-sp-client-id
mc-cmd
Optional
用于登录 Azure 存储的 service principal account 的 Client ID。
该选项仅在 TIER_TYPE 为 azure 且使用 service principal 身份登录时生效。 对 TIER_TYPE 的任何其他取值,该选项均无效。
--azure-sp-client-secret
mc-cmd
Optional
用于登录 Azure 存储的 service principal account 的 client secret。
该选项仅在 TIER_TYPE 为 azure 且使用 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-2S3 区域的 S3STANDARD存储类。
S3 兼容性
mc 命令行工具以兼容 AWS S3 API 为目标构建,并针对 MinIO 和 AWS S3 进行了测试,以验证预期的功能与行为。
对于其他 S3 兼容服务,MinIO 不提供任何保证,因为这些服务的 S3 API 实现未知, 因此不在支持范围内。虽然 mc 命令 可能 仍能按文档说明工作,但此类 用法需要你自行承担风险。
所需权限
有关添加 tier 所需的权限,请参见父命令中的 required permissions。
本页部分内容改编自 MinIO 对象存储文档,© 2020–至今 MinIO, Inc.,依据 CC BY 4.0 授权,由 Silo 项目转换与维护。归属与署名
本页为非官方中文翻译。如与英文原文有出入,以英文原文为准。