启用单向服务器端存储桶复制
此页面上的过程为将对象从一个 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 部署和存储桶。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
命令删除现有的复制规则。