启用单向服务器端存储桶复制
此页面上的步骤为一个 MinIO 存储桶到另一个 MinIO 存储桶的对象单向同步创建一个新的存储桶复制规则。这些存储桶可以在同一个 MinIO 部署中,也可以在单独的 MinIO 部署中。
要配置 MinIO 存储桶之间的双向“主动-主动”复制,请参见 启用双向服务器端存储桶复制.
要配置 MinIO 部署之间的多站点“主动-主动”复制,请参见 启用多站点服务器端存储桶复制
注意
要配置任意 S3 兼容服务(不一定是非 MinIO)之间的复制,请使用 mc mirror
.
要求
复制要求所有参与的集群都满足 以下要求。此步骤假设您已查看并验证了这些要求。
有关更多详细信息,请参见 存储桶复制要求 页面。
注意事项
单击展开以下任一内容
现有对象的复制
MinIO 支持自动复制存储桶中的现有对象。
MinIO 需要使用 mc replicate add --replicate
或 mc replicate update --replicate
并包含 existing-objects
复制功能标志,明确启用现有对象的复制。此过程包括启用现有对象复制所需的标志。
删除操作的复制
MinIO 支持将 S3 DELETE
操作复制到目标存储桶。具体来说,MinIO 可以复制版本化的 删除标记 以及特定版本化对象的删除。
对于对对象的删除操作,MinIO 复制也会在目标存储桶上创建删除标记。
对于对对象版本的删除操作,MinIO 复制也会在目标存储桶上删除这些版本。
MinIO 需要使用 mc replicate add --replicate
或 mc replicate update --replicate
明确启用删除操作和删除标记的复制。此过程包括启用删除操作和删除标记复制所需的标志。
MinIO *不会* 复制由应用 生命周期管理过期规则 引起的删除操作。
多站点复制
MinIO 支持为每个存储桶或存储桶前缀配置多个远程目标。例如,您可以配置一个存储桶将数据复制到两个或多个远程 MinIO 部署,其中一个部署是 1:1 复制(所有操作的复制,包括删除),而另一个部署是完整的历史记录(仅复制非破坏性写入操作)。
此过程记录了到单个远程 MinIO 部署的单向复制。您可以重复本教程以将单个存储桶复制到多个远程目标。
步骤
使用 MinIO 控制台配置单向存储桶复制
1) 创建新的存储桶复制规则
登录到要复制的部署的 MinIO 控制台
选择要复制的存储桶的 管理 按钮
选择 复制 部分
选择 添加复制规则 +
填写所需信息
字段
描述
优先级
输入一个数字值以指示处理存储桶复制规则的顺序。1 表示最高重要性。
目标 URL
要复制数据的部署的 URL。
使用 TLS
如果目标部署使用 TLS,请将切换开关保持在 打开 位置。否则,将切换开关移到 关闭 位置。
访问密钥
要在目标部署上使用的用户名。用户必须具有对要复制到的存储桶的写入权限。
密钥
提供的 **访问密钥** 的密码。
目标存储桶
在目标位置写入数据的存储桶。目标存储桶的名称可能与源存储桶相同,具体取决于目标存储桶的位置。
区域
目标部署的 AWS 资源区域位置。
复制模式
保留默认选择 **异步**,以允许 MinIO 在源管理完成写入操作后复制数据。选择 **同步** 以尝试在写入操作期间完成对象的复制。
虽然同步复制可能会导致源存储桶和目标存储桶之间更可靠的同步,但它也可能会增加每次写入操作的时间。
带宽
指定复制过程在复制数据时可以使用带宽的最大数量。输入一个数字并选择数据单位。
健康检查持续时间
MinIO 在验证目标存储桶上复制数据的健康状况时应花费的最大秒数。
存储类别
在目标部署上用于复制数据的存储类别。有效值为
STANDARD
或REDUCED_REDUNDANCY
。对象过滤器
通过 前缀 或 **标签** 来限制要从存储桶中复制的对象。如果输入多个标签,则对象必须匹配所有标签值。
元数据同步
保留选中状态以复制对象的元数据文件。否则,将切换开关移到 关闭 位置。
删除标记
保留选中状态以复制 MinIO 的指示,即一个对象已被删除,也应在操作存储桶中标记为已删除。否则,将切换开关移到 关闭 位置以防止在目标存储桶中标记对象已删除。
删除
保留选中状态以允许复制对象版本的删除。否则,将切换开关移到 关闭 位置以不复制对象版本的删除。
选择 保存 以完成添加复制规则
2) 验证复制配置
使用命令行 mc
配置单向存储桶复制
此过程使用 别名 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
以指定ALIAS/BUCKET
复制到的远程 MinIO 部署和存储桶。The
USER:PASSWORD
必须对应于远程部署上的一个用户,该用户具有 必要的复制权限。The
HOSTNAME:PORT
必须解析为远程部署上可访问的 MinIO 实例。TheBUCKET
必须存在,并且满足所有其他 复制要求。The
--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
命令删除现有的复制规则。