中文文档

启用单向服务器端桶复制

这个页面的过程涉及创建一个新的存储桶复制规则,以便从一个MinIO存储桶向另一个MinIO存储桶进行单向对象同步。 这些存储桶可以在同一个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 --replicatemc replicate update --replicate 明确启用现有对象的复制,并包括 existing-objects 复制功能标志。 此过程包括启用现有对象复制所需的标志。

删除操作的复制

MinIO支持将S3 DELETE 操作复制到目标存储桶。 具体而言,MinIO可以复制版本控制中的 Delete Markers 和特定版本对象的删除:

  • 对于对象的删除操作,MinIO复制还会在目标存储桶上创建删除标记。

  • 对于对象版本的删除操作,MinIO复制还会在目标存储桶上删除这些版本。

MinIO需要明确启用删除操作的复制,使用 mc replicate add --replicatemc replicate update --replicate 命令。 该过程包括启用删除操作和删除标记的复制所需的标志。

MinIO 会复制由于应用 生命周期管理过期规则 而导致的删除操作。

请参阅 删除操作的复制minio-object-delete 获取更完整的文档。

Multi-站点复制

MinIO支持为每个存储桶或存储桶前缀配置多个远程目标。 例如,您可以配置一个存储桶将数据复制到两个或更多远程MinIO部署中,其中一个部署是1:1副本(包括删除的所有操作的复制),另一个则是完整的历史记录(仅非破坏性写入操作的复制)。

此过程记录了向单个远程MinIO部署的单向复制。 您可以重复执行此教程,将单个存储桶复制到多个远程目标。

操作步骤

使用命令行工具 mc 配置单向存储桶复制

此过程使用 aliases SOURCEREMOTE 来引用正在配置复制的每个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 命令来删除现有的复制规则。

Join Slack 商业支持购买咨询