启用单向服务器端存储桶复制
此页面上的步骤为一个 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,则保留切换在 ON 位置。否则,将切换移至 OFF 位置。
访问密钥
要在目标部署上使用的用户名。该用户必须对要复制到的存储桶具有写入权限。
密钥
提供的 **访问密钥** 的密码。
目标存储桶
要在目标位置写入数据的存储桶。目标存储桶的名称可能与源存储桶的名称相同,具体取决于目标存储桶的位置。
区域
目标部署的 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
命令删除现有的复制规则。