启用单向服务器端存储桶复制
此页面上的步骤将创建一个新的存储桶复制规则,用于将对象从一个 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
命令修改现有的复制规则。使用带有
--state "disable"
标志的mc replicate update
命令禁用现有复制规则。使用
mc replicate rm
命令删除现有复制规则。