启用单向服务器端存储桶复制
此页面上的步骤创建了一个新的存储桶复制规则,用于将对象从一个 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
命令删除现有的复制规则。