启用单向服务器端存储桶复制
本页面的步骤为一个 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"
用源 MinIO 部署的 别名 替换
ALIAS
。名称必须与在先前步骤中创建远程目标时指定的存储桶匹配。用要从源部署中复制的存储桶的名称替换
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
另请参阅
使用
mc replicate update
命令修改现有的复制规则。使用
mc replicate update
命令以及--state "disable"
标志禁用现有的复制规则。使用
mc replicate rm
命令删除现有的复制规则。