启用单向服务器端桶复制
这个页面的过程涉及创建一个新的存储桶复制规则,以便从一个MinIO存储桶向另一个MinIO存储桶进行单向对象同步。 这些存储桶可以在同一个MinIO部署中,也可以在不同的MinIO部署中。
如需在MinIO存储桶之间配置双向 “active-active” 复制,请参阅:ref:minio-bucket-replication-serverside-twoway。
如需在MinIO部署之间配置多站点 “active-active” 复制,请参阅 启用多站点服务器端桶复制。
备注
如需在任意S3兼容服务之间配置复制(不一定是MinIO),请使用 mc mirror
。
要求
复制需要所有参与的集群符合:ref:以下要求<minio-bucket-replication-requirements>。 本过程假定您已经审查并验证了这些要求。
有关更多详情,请参阅 Bucket Replication Requirements 页面。
考虑因素
请单击以展开以下任何内容:
现有对象的复制
MinIO支持自动复制存储在存储桶中的现有对象。
MinIO要求使用 mc replicate add --replicate
或 mc replicate update --replicate
明确启用现有对象的复制,并包括 existing-objects
复制功能标志。
此过程包括启用现有对象复制所需的标志。
删除操作的复制
MinIO支持将S3 DELETE
操作复制到目标存储桶。
具体而言,MinIO可以复制版本控制中的 Delete Markers 和特定版本对象的删除:
对于对象的删除操作,MinIO复制还会在目标存储桶上创建删除标记。
对于对象版本的删除操作,MinIO复制还会在目标存储桶上删除这些版本。
MinIO需要明确启用删除操作的复制,使用 mc replicate add --replicate
或 mc replicate update --replicate
命令。
该过程包括启用删除操作和删除标记的复制所需的标志。
MinIO 不 会复制由于应用 生命周期管理过期规则 而导致的删除操作。
请参阅 删除操作的复制 和 minio-object-delete 获取更完整的文档。
Multi-站点复制
MinIO支持为每个存储桶或存储桶前缀配置多个远程目标。 例如,您可以配置一个存储桶将数据复制到两个或更多远程MinIO部署中,其中一个部署是1:1副本(包括删除的所有操作的复制),另一个则是完整的历史记录(仅非破坏性写入操作的复制)。
此过程记录了向单个远程MinIO部署的单向复制。 您可以重复执行此教程,将单个存储桶复制到多个远程目标。
操作步骤
使用命令行工具 mc
配置单向存储桶复制
此过程使用 aliases SOURCE
和 REMOTE
来引用正在配置复制的每个MinIO部署。
用目标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
复制到该远程部署和存储桶。USER:PASSWORD
必须与远程部署上的一个用户相对应,该用户具有 必要的复制权限。HOSTNAME:PORT
必须解析为一个在远程部署上可访问的 MinIO 实例。BUCKET
必须存在,并且必须满足所有的 复制要求。--replicate delete,delete-marker,existing-objects
标志启用了以下复制功能:请参阅
mc replicate add --replicate
以获取更完整的文档。 省略任何字段以禁用该组件的复制。
指定任何其他支持的可选参数用于 mc replicate add
。
2) 验证存储桶复制配置
使用 mc cp
将新对象复制到部署中的复制桶。
mc cp ~/foo.txt ALIAS/BUCKET
使用 mc ls
来验证目标存储桶上是否存在该对象:
mc ls ALIAS/BUCKET
参见
使用
mc replicate update
命令修改现有的复制规则。使用
mc replicate update
命令,加上--state "disable"
参数来禁用现有的复制规则。使用
mc replicate rm
命令来删除现有的复制规则。