将对象从 MinIO 迁移到 Azure
此页面上的步骤创建了一个新的对象生命周期管理规则,该规则将对象从 MinIO 存储桶迁移到 Azure 存储后端上的远程存储层。此过程支持将过时数据在一定时间段或日历日期后迁移到低成本公有云存储解决方案等用例。
要求
安装和配置 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"
}
]
}
所需的 Azure 权限
对象迁移生命周期管理规则需要对远程存储层有额外的权限。具体而言,MinIO 需要 Azure 凭据为远程存储帐户和容器提供读、写、列出和删除权限。
有关配置所需权限的更完整指南,请参阅 Azure RBAC 文档。
远程存储帐户和容器必须存在
在使用该资源作为目标配置生命周期管理层或规则之前,创建远程Azure 存储帐户和容器。在创建 Azure 存储帐户时,确保存储帐户对应于具有本地冗余存储 (LRS) 冗余选项的标准或高级 Blob 存储。MinIO 使用的 Azure Go SDK API 不支持任何其他冗余选项。
如果您设置了存储帐户的默认访问层,MinIO如果您在定义远程层时未指定storage class
,则会使用该默认层。确保您记录 Azure 存储帐户和 MinIO 分层配置的设置,以避免任何潜在的混淆、错误配置或其他意外结果。
有关 Azure 存储帐户的更多信息,请参阅存储帐户.
注意事项
对远程数据的独占访问
MinIO需要对远程存储层上过渡数据的独占访问权限。在“热”MinIO 源上的对象元数据与在“暖/冷”远程层上的对象数据紧密相关。MinIO 在没有访问远程数据的情况下无法检索对象数据,远程数据也无法用于恢复源上丢失的元数据。
对过渡对象的所有访问必须仅通过 MinIO 通过 S3 API 操作进行。手动修改过渡对象 - 无论是在“热”MinIO 层上的元数据还是在远程“暖/冷”层上的对象数据 - 都可能导致该对象数据丢失。
MinIO 会忽略远程存储桶或存储桶前缀中未明确由 MinIO 部署管理的任何对象。自动过渡和透明对象检索取决于以下假设
远程存储上没有外部对象变动、迁移或删除。
远程存储桶上没有生命周期管理规则(例如,过渡或过期)。
MinIO 将所有过渡对象存储在远程存储桶或资源中,位于每个部署的唯一前缀值下。该值并非旨在支持从后端识别源部署。MinIO 在配置远程目标时支持一个额外的可选人类可读前缀,这可能有助于与诊断、维护或灾难恢复相关的操作。
MinIO 建议为包含其他数据的远程存储层指定此可选前缀,包括来自其他 MinIO 部署的过渡对象。本教程包括设置此前缀所需的语法。
重要事项
MinIO不支持更改与 Azure 远程层关联的帐户名称。Azure 存储后端与帐户绑定,因此更改帐户将更改存储后端,并阻止访问过渡到原始帐户/后端的任何对象。
如果您需要围绕配置 Azure 远程层进行特定于情况的指导,请联系MinIO 支持.
远程数据的可用性
MinIO 分层行为取决于远程存储在请求时立即返回对象(毫秒到秒)。因此,MinIO无法支持需要重新水合、等待时间或人工干预的远程存储。
MinIO 为每个过渡对象创建元数据,以标识其在远程存储上的位置。应用程序无法独立于 MinIO 轻易识别和访问过渡对象。因此,过渡数据的可用性取决于与擦除编码和分布式部署拓扑对 MinIO 部署上的所有对象提供的相同核心保护。使用对象过渡不会提供任何额外的业务连续性或灾难恢复优势。
需要BC/DR保护的工作负载应实现 MinIO 服务器端复制。复制确保对象保留在远程复制站点上,以便您可以在部分或全部数据丢失的情况下从远程站点重新同步。有关使用复制在部分或全部数据丢失后恢复的更完整文档,请参阅重新同步(灾难恢复).
过程
1) 为生命周期管理配置用户帐户和策略
此步骤在 MinIO 部署上创建用户和策略,以支持生命周期管理操作。如果部署已经拥有具有必要的权限的用户,则可以跳过此步骤。
以下示例使用Alpha
作为 MinIO 部署的占位符alias
。用 MinIO 部署的适当别名替换此值,您将在其中配置生命周期管理规则。用一个长、随机且安全的密钥替换密码LongRandomSecretKey
,该密钥符合您的组织关于密码生成的最佳实践。
wget -O - http://min-io.cn/docs/minio/linux/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
命令添加一个新的远程存储层
mc ilm tier add azure TARGET TIER_NAME \
--account-name ACCOUNT \
--account-key KEY \
--bucket CONTAINER \
--endpoint ENDPOINT \
--prefix PREFIX \
--storage-class STORAGE_CLASS
上面的示例使用以下参数
参数 |
描述 |
---|---|
要配置远程层的 MinIO 部署的 |
|
与新的Azure Blob 远程存储层关联的名称。以全大写字母指定名称,例如 |
|
用作远程存储资源的存储帐户。 您无法在创建层后更改此帐户名称。 |
|
为指定的 帐户密钥必须具有分配的 Azure 策略,该策略具有必需的权限。 有关更多信息,请参阅管理存储帐户访问密钥。 |
|
在Azure 存储后端上 MinIO 将对象过渡到的容器的名称。 |
|
(可选)MinIO 将对象过渡到的 Azure Blob 存储后端的完整 URL。如果未指定,则默认为 |
|
MinIO 将对象过渡到的容器内的可选前缀。 MinIO 将所有过渡对象存储在指定的 MinIO 建议为包含其他数据的远程存储层指定此可选前缀,包括来自其他 MinIO 部署的过渡对象。此前缀应提供清晰的引用回到源 MinIO 部署,以方便与诊断、维护或灾难恢复相关的操作。 |
|
MinIO 应用于过渡到 Azure 容器的对象的 Azure 访问层。 MinIO 分层行为取决于远程存储在请求时立即返回对象(毫秒到秒)。因此,MinIO无法支持需要重新水合、等待时间或人工干预的远程存储。 以下 Azure 访问层符合 MinIO 作为远程层的需求
有关更多信息,请参阅Blob 数据的热、冷和归档访问层. |
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
上面的示例指定了以下参数
参数 |
描述 |
---|---|
指定您要为其创建生命周期管理规则的 MinIO 部署的 |
|
指定您要为其创建生命周期管理规则的存储桶的完整路径。 |
|
MinIO 将对象过渡到的远程存储层。指定在先前步骤中创建的远程存储层名称。 如果您希望将非当前对象版本过渡到一个不同的远程层,请为 |
|
MinIO 将对象标记为可过渡的日历天数。将天数指定为整数,例如, |
|
MinIO 将非当前对象版本标记为可过渡的日历天数。MinIO 特别是测量对象变为非当前状态的时间,而不是对象创建时间。将天数指定为整数,例如, 省略此值以忽略非当前对象版本。 此选项对非版本化存储桶没有影响。 |
4) 验证过渡规则
使用 mc ilm rule ls
命令查看已配置的过渡规则
mc ilm rule ls ALIAS/PATH --transition