启用双向服务器端存储桶复制
本页面的操作为 MinIO 存储桶之间的双向"主动-主动"对象同步创建新的存储桶复制规则。
要配置任意 S3 兼容服务之间的复制,请使用
mc mirror.要配置 MinIO 集群之间的单向“主动-被动”复制,请参阅启用单向服务器端存储桶复制.
要配置 MinIO 集群之间的多站点“主动-主动”复制,请参阅启用多站点服务器端存储桶复制.
本教程介绍如何配置两个MinIO集群之间的主动-主动复制。有关三个或更多MinIO集群之间多站点复制的教程,请参阅启用多站点服务器端存储桶复制.
需求
您必须满足存储桶复制的基本要求中所述的所有条件Bucket Replication Requirements.
此外,要设置双活存储桶复制,您还必须满足以下额外要求:
访问两个集群
您必须具备网络访问权限以及拥有所需权限的登录凭据,才能在两个部署之间设置主动-主动存储桶复制。
您可以通过安装来访问部署mc以及使用命令行。
使用mc alias set为两个 MinIO 部署创建别名的命令。
别名创建需要为部署上的用户指定访问密钥。 该用户必须拥有在部署中创建和管理用户及策略的权限。
具体来说,确保用户拥有至少:
注意事项
使用一致的复制设置
MinIO支持自定义复制配置,以启用或禁用以下复制行为:
Replication of删除操作
删除标记的复制
现有对象的复制
仅元数据更改的复制
当配置存储桶的复制规则时,请确保参与主动-主动复制的两个MinIO部署都使用相同复制行为,以确保对象的一致性和可预测的同步。
现有对象的复制
MinIO 支持自动复制存储桶中的现有对象。
MinIO 需要明确启用现有对象的复制功能,使用mc replicate add --replicate or mc replicate update --replicate并包括existing-objects复制功能标志。
此过程包括启用现有对象复制所需的标志。
删除操作的复制
MinIO 支持将删除操作复制到目标存储桶。 具体来说,MinIO 可以复制版本控制删除标记以及特定版本化对象的删除:
对于对象的删除操作,MinIO复制也会在目标存储桶上创建删除标记。
对于对象版本的删除操作,MinIO 复制也会删除目标存储桶中的这些版本。
MinIO 需要明确启用删除操作的复制功能,通过mc replicate add --replicate or mc replicate update --replicate此过程包含启用删除操作和删除标记复制所需的标志。
MinIO 确实不由应用程序执行导致的复制删除操作生命周期管理过期规则在源存储桶和目标存储桶上配置匹配的过期规则,以确保对象过期策略的一致应用。
多站点复制
MinIO 支持为每个存储桶或存储桶前缀配置多个远程目标。 这使得在 MinIO 部署之间配置多站点主动-主动复制成为可能。
此过程涵盖主动-主动复制二MinIO 站点。 您可以为复制网格中的每个 MinIO 部署"对"重复此过程。有关专门教程,请参阅启用多站点服务器端存储桶复制.
过程
使用命令行配置双向存储桶复制mc
此过程在两个 MinIO 部署之间创建双向、主动-主动复制。
此过程假设您已经为每个部署定义了一个别名作为具有相应权限的用户。必要的复制权限.
在版本 RELEASE.2022-12-24T15-21-38Z 中的变更:mc replicate add自动创建必要的复制目标,无需使用已弃用的mc admin remote bucket add命令。
此过程仅记录截至该版本的过程。
1) 在每个部署上创建新的存储桶复制规则
使用mc replicate add为每个 MinIO 部署添加新复制规则的命令。
mc replicate add ALIAS/BUCKET \
--remote-bucket 'https://USER:PASSWORD@HOSTNAME:PORT/BUCKET' \
--replicate "delete,delete-marker,existing-objects"
替换
ALIAS随着别名原始 MinIO 部署的名称必须匹配上一步创建远程目标时指定的存储桶。替换
BUCKET源部署中要复制的存储桶名称。替换
--remote-bucket指定远程 MinIO 部署和存储桶ALIAS/BUCKET副本。The
USER:PASSWORD必须对应于远程部署上的一个用户,该用户具有必要的复制权限.The
HOSTNAME:PORT必须解析为远程部署中可访问的 MinIO 实例。BUCKET必须存在且满足所有其他要求复制要求.The
--replicate "delete,delete-marker,existing-objects"flag 启用以下复制功能:看
mc replicate add --replicate有关更完整的文档。 省略任何字段以禁用该组件的复制。
指定任何其他支持的mc replicate add.
在其他 MinIO 部署上重复此步骤。
更改ALIAS和--remote-bucket值对应第一个部署。
You should have two replication rules configured at the conclusion of this step - one created on each deployment that points to the bucket on the other deployment.
Use the在此步骤结束时,您应该配置两条复制规则 - 在每个部署上创建一条规则,指向另一个部署上的存储桶。
使用mc replicate ls验证已创建的复制规则的命令。
2) 验证复制配置
使用mc cp将新对象复制到其中一个部署中的复制存储桶。
mc cp ~/foo.txt ALIAS/BUCKET
使用mc ls要验证对象是否存在于目标存储桶中:
mc ls ALIAS/BUCKET
通过将另一个对象复制到第二个部署并验证该对象是否复制到第一个部署来重复此测试。
一旦两个对象同时存在于两个部署中,您就成功地在MinIO存储桶之间建立了双向主动-主动复制。
另请参阅
使用
mc replicate update修改现有复制规则的命令。使用
mc replicate update带有命令的--state "disable"禁用现有复制规则的标志。使用
mc replicate rm删除现有复制规则的命令。