文档

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

此页面上的步骤创建了一个新的存储桶复制规则,用于将对象从一个 MinIO 存储桶单向同步到另一个 MinIO 存储桶。存储桶可以在同一个 MinIO 部署中,也可以在单独的 MinIO 部署中。

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

注意

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

要求

复制要求所有参与的集群满足 以下要求。本步骤假设您已查看并验证了这些要求。

有关更多详细信息,请参阅 存储桶复制要求 页面。

注意事项

单击展开以下任何内容

现有对象的复制

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

MinIO 要求使用 mc replicate add --replicatemc replicate update --replicate 显式启用现有对象的复制,并包含 existing-objects 复制功能标志。本步骤包括启用现有对象复制所需的标志。

删除操作的复制

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

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

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

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

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

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

多站点复制

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

此过程记录到单个远程 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. 选择 保存 以完成添加复制规则

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 配置单向存储桶复制

此过程使用 别名 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 以指定 ALIAS/BUCKET 复制到的远程 MinIO 部署和存储桶。

    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

另请参见