文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

MinIO Documentation

启用单向服务器端存储桶复制

本页面的操作为从一个 MinIO 存储桶到另一个 MinIO 存储桶的单向对象同步创建新的存储桶复制规则。 这些存储桶可以位于同一 MinIO 部署中,也可以位于不同的 MinIO 部署中。

Active-Passive Replication synchronizes data from a source MinIO deployment to a remote MinIO deployment.

Note

要配置任意 S3 兼容服务(不一定是 MinIO)之间的复制,请使用mc mirror.

需求

复制要求所有参与的集群满足以下要求此过程假定您已审查并验证了这些要求。

更多详细信息,请参阅Bucket Replication Requirements页面。

注意事项

点击展开以下任意内容:

现有对象的复制

MinIO 支持自动复制存储桶中的现有对象。

MinIO 需要明确启用现有对象的复制功能,使用mc replicate add --replicate or mc replicate update --replicate并包括existing-objects复制功能标志。 此过程包括启用现有对象复制所需的标志。

删除操作的复制

MinIO 支持复制 S3DELETE到目标存储桶的操作。 具体来说,MinIO 可以复制版本控制删除标记以及特定版本化对象的删除:

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

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

MinIO 需要明确启用删除操作的复制功能,通过mc replicate add --replicate or mc replicate update --replicate此过程包含启用删除操作和删除标记复制所需的标志。

MinIO 确实由应用程序执行导致的复制删除操作生命周期管理过期规则.

删除操作的复制对象删除获取更完整的文档。

多站点复制

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

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

过程

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

这个过程使用别名 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副本。

    TheUSER:PASSWORD必须对应于远程部署上的一个用户,该用户具有必要的复制权限.

    TheHOSTNAME:PORT必须解析为远程部署中可访问的 MinIO 实例。BUCKET必须存在且满足所有其他要求复制要求.

  • The--replicate "delete,delete-marker,existing-objects"flag 启用以下复制功能:

    mc replicate add --replicate有关更完整的文档。 省略任何字段以禁用该组件的复制。

指定任何其他支持的可选参数mc replicate add.

2) 验证复制配置

使用mc cp将新对象复制到其中一个部署中的复制存储桶。

mc cp ~/foo.txt ALIAS/BUCKET

使用mc ls要验证对象是否存在于目标存储桶中:

mc ls ALIAS/BUCKET

另请参阅