文档

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

此页面上的过程将创建一个新的存储桶复制规则,用于在 MinIO 存储桶之间进行双向“活动-活动”对象同步。

Active-Active Replication synchronizes data between two remote clusters.

本教程介绍了如何在两个 MinIO 集群之间配置活动-活动复制。有关在三个或更多 MinIO 集群之间进行多站点复制的教程,请参见 启用多站点服务器端存储桶复制.

要求

您必须满足在 存储桶复制要求 中描述的所有存储桶复制基本要求。

此外,要设置活动-活动存储桶复制,您必须满足以下附加要求

访问两个集群

您必须拥有网络访问权限和具有所需权限的登录凭据才能访问两个部署,以设置活动-活动存储桶复制。

您可以通过登录到每个部署的 MinIO 控制台 或安装 mc 并使用命令行来访问部署。

如果使用命令行,请使用 mc alias set 命令为两个 MinIO 部署创建别名。别名创建需要指定部署上用户的访问密钥。此用户**必须**具有在部署上创建和管理用户和策略的权限。

具体来说,请确保用户至少具有以下权限

注意事项

使用一致的复制设置

MinIO 支持自定义复制配置以启用或禁用以下复制行为

  • 复制 删除操作

  • 复制删除标记

  • 复制现有对象

  • 复制仅元数据更改

在为存储桶配置复制规则时,请确保参与主动-主动复制的两个 MinIO 部署使用*相同*的复制行为,以确保对象的一致且可预测的同步。

复制现有对象

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

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

复制删除操作

MinIO 支持将删除操作复制到目标存储桶。具体而言,MinIO 可以复制版本化的 删除标记 和特定版本化对象的删除

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

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

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

MinIO *不会* 复制由于应用 生命周期管理过期规则 而导致的删除操作。在源存储桶和目标存储桶上配置匹配的过期规则,以确保对象过期的一致应用。

有关更完整的文档,请参阅 复制删除操作对象删除

多站点复制

MinIO 支持为每个存储桶或存储桶前缀配置多个远程目标。这使得在 MinIO 部署之间配置多站点主动-主动复制成为可能。

此过程涵盖了*两个* MinIO 站点之间的主动-主动复制。您可以针对复制网格中的每个 MinIO 部署“对”重复此过程。有关专用教程,请参阅 启用多站点服务器端存储桶复制

步骤

使用 MinIO 控制台配置双向存储桶复制

1) 在每个部署上创建一个新的存储桶复制规则

  1. 登录到要复制的部署的 MinIO 控制台

  2. 选择要复制的存储桶的 管理按钮

    After a successful log in, the MinIO Console shows a list of buckets with options to manage or explore each bucket.
  3. 选择 复制部分

    After selecting a bucket to manage, MinIO shows summary information about the bucket as well as a navigation list of pages for adjusting the bucket configuration.
  4. 选择 添加复制规则 +

  5. 完成所需的信息

    字段

    描述

    优先级

    输入一个数字值来指示处理存储桶复制规则的顺序。1表示最高重要性。

    目标 URL

    要将数据复制到的部署的 URL。

    使用 TLS

    如果目标部署使用 TLS,请将切换按钮保持在 位置。否则,将切换按钮移至 位置。

    访问密钥

    要在目标部署上使用的用户名。用户必须对要复制到的存储桶具有写入权限。

    密钥

    提供的 **访问密钥** 的密码。

    目标存储桶

    要在目标上写入数据的存储桶。目标存储桶可以与源存储桶具有相同的名称,具体取决于目标存储桶的位置。

    区域

    目标部署的 AWS 资源区域位置。

    复制模式

    保留默认选择的 **异步**,以便 MinIO 可以在源操作完成写入后复制数据。选择 **同步** 以尝试在写入操作期间完成对象的复制。

    虽然同步复制可能会导致源存储桶和目标存储桶之间更可靠的同步,但它也可能会增加每次写入操作的时间。

    带宽

    指定复制过程在复制数据时可以使用的最大带宽量。输入一个数字并选择一个数据单位。

    健康检查持续时间

    MinIO 应花费在验证目标存储桶上复制数据的完整性上的最大时间(以秒为单位)。

    存储类别

    在目标部署上用于复制数据的存储类别。有效值为 STANDARDREDUCED_REDUNDANCY

    对象过滤器

    通过 前缀 或 **标签** 来限制要从存储桶中复制的对象。如果您输入多个标签,则对象必须匹配所有标签值。

    元数据同步

    保持选中状态以同时复制对象的元数据文件。否则,将切换按钮移至 位置。

    删除标记

    保持选中状态以同时复制 MinIO 的指示,即对象已被删除,也应在操作存储桶中标记为已删除。否则,将切换按钮移至 位置以防止在目标存储桶中将对象标记为已删除。

    删除

    保持选中状态以允许复制对象版本的删除。否则,将切换按钮移至 位置以不复制对象版本的删除。

  6. 选择 保存 以完成添加复制规则

重复上述步骤以在另一个方向创建规则。

  1. 转到上面使用的目标部署的控制台。

  2. 从第二个部署创建一个复制规则,返回到第一个部署。第一个部署成为第二个部署上规则的目标部署。

2) 验证复制配置

  1. 转到 MinIO 控制台的 存储桶 部分

    The default screen when logging into the MinIO Console. The screen shows a list of the buckets available in the Deployment with options to Manage or Browse the bucket contents.
  2. 选择您添加复制的存储桶的 浏览 按钮

    The contents of a bucket display after selecting to Browse the MinIO bucket. Options including to Rewind, Refresh, or Upload contents.
  3. 选择 上传 按钮以将新对象添加到存储桶

  4. 选择 上传文件

  5. 使用界面将新对象添加到存储桶

  6. 转到另一个部署的控制台,并选择复制中定义的目标存储桶

使用命令行 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 以指定将 ALIAS/BUCKET 复制到的远程 MinIO 部署和存储桶。

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

    HOSTNAME:PORT 必须解析为远程部署上的一个可访问的 MinIO 实例。该 BUCKET 必须存在,并且必须满足所有其他 复制要求

  • --replicate "delete,delete-marker,existing-objects" 标志启用以下复制功能

    请参阅 mc replicate add --replicate 以获取更完整的文档。省略任何字段以禁用该组件的复制。

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

在其他 MinIO 部署上重复此步骤。更改 ALIAS--remote-bucket 值以对应于第一个部署。

在完成此步骤后,您应该已配置了两个复制规则 - 一个在每个部署上创建,指向另一个部署上的存储桶。使用 mc replicate ls 命令验证已创建的复制规则。

2) 验证复制配置

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

mc cp ~/foo.txt ALIAS/BUCKET

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

mc ls ALIAS/BUCKET

通过将另一个对象复制到第二个部署并验证该对象是否复制到第一个部署来重复此测试。

一旦这两个对象都存在于这两个部署中,您就已成功在 MinIO 存储桶之间建立双向主动-主动复制。

另请参阅