mc replicate add
在版本 RELEASE.2022-12-24T15-21-38Z 中的变更:mc replicate add替换mc admin bucket remote add命令。
MinIO 会根据给定的文件路径或资源位置(例如 IP 或 DNS 地址)自动创建远程目标。 用户在定义远程目标时不再需要确定远程存储桶的 ARN。
语法
Themc replicate add命令创建一个新的服务器端复制MinIO 部署中存储桶的规则。
远程存储桶必须位于运行与本地部署相同版本 MinIO 的 MinIO 部署上。
Note
哪里mc mirror仅同步对象的当前版本,mc replicate同步所有对象的版本、版本信息和元数据。
MinIO 部署在创建规则后会自动开始将新对象同步到远程 MinIO 部署。 您可以选择性地配置现有对象、删除操作和完全删除对象的同步。
以下命令为添加新的复制规则mydata桶上的myminioMinIO 部署:
mc replicate add \
--remote-bucket https://user:secret@minio.mysite.tld:9001/bucket \
--replicate "delete,delete-marker,existing-objects" \
myminio/mydata
复制规则将版本化删除操作、删除标记和现有对象同步到远程 MinIO 部署。
在版本 mc 中更改:RELEASE.2024-03-03T00-13-08Z
您可以使用已配置的 ALIAS 来--remote-bucketflag.
该命令具有以下语法:
mc [GLOBALFLAGS] replicate add \
--remote-bucket string \
[--bandwidth "string"] \
[--disable] \
[--disable-proxy] \
[--healthcheck-seconds integer] \
[--id "string"] \
[--limit-upload "string"] \
[--limit-download "string"] \
[--path "string"] \
[--region "string"] \
[--replicate "string"] \
[--storage-class "string"] \
[--sync] \
[--tags "string"] \
[--priority int] \
ALIAS
Brackets
[]表示可选参数。共享同一行的参数是相互依赖的。
使用竖线分隔的参数
|操作符是互斥的。
将示例复制到文本编辑器中,根据需要修改,然后在终端/Shell中运行命令。
参数
- ALIAS
- 必需
The别名MinIO 部署的完整路径以及要在其上创建复制规则的存储桶或存储桶前缀的完整路径。 例如:
mc replicate add --remote-bucket https://user:secret@myminio.cloudprovider.tld:9001/bucket play/mybucket
- --remote-bucket
- 必需
在版本 mc 中更改:RELEASE.2024-03-03T00-13-08Z
The
--remote-bucket支持指定现有的别名.指定远程位置的凭据、目标部署和存储桶。 值可以是 IP 地址、URL 或别名/bucket.
例如,一个基于 URL 的目标可能如下所示:
https://user:secret@myminio.cloudprovider.tld:9001/bucket
基于别名的目标可能如下所示:
--remote-bucket minio-target/my-bucket
- --bandwidth
- 可选
将带宽速率限制在不超过指定的 KiB/s、MiB/s 或 GiB/s 速率范围内。 有效单位包括:
B对于字节K对于千字节G用于千兆字节T对于太字节Ki对于千位字节Gi对于吉比字节Ti对于太字节
例如,要将带宽速率限制在不超过 1 GiB/s,请使用以下命令:
--limit-upload 1Gi
如果未指定,MinIO 不会限制带宽速率。
- --disable
- 可选
在“disabled”状态下创建复制规则。 MinIO 在通过启用该规则之前不会开始使用该规则复制对象。
mc replicate update.禁用复制期间创建的对象在启用规则后不会立即具备复制资格。 您必须通过包含现有对象来明确启用复制
"existing-objects"到指定的复制功能列表中mc replicate update --replicate.现有对象的复制欲了解更多信息。
- --limit-download
- 可选
限制下载速率不超过指定的速率,单位可以是 KiB/s、MiB/s 或 GiB/s。 有效单位包括:
B对于字节K对于千字节G用于千兆字节T对于太字节Ki对于千位字节Gi对于吉比字节Ti对于太字节
例如,要将下载速率限制在不超过 1 GiB/s,请使用以下命令:
--limit-download 1G
如果未指定,MinIO 使用无限制的下载速率。
- --limit-upload
- 可选
限制上传速率不超过指定的速率(单位:KiB/s、MiB/s 或 GiB/s)。 有效单位包括:
B对于字节K对于千字节G用于千兆字节T对于太字节Ki对于千位字节Gi对于吉比字节Ti对于太字节
例如,要将上传速率限制在不超过 1 GiB/s,请使用以下命令:
--limit-upload 1G
如果未指定,MinIO 使用无限制的上传速率。
- --path
- 可选
为远程存储桶启用路径式查找支持。
有效值包括:
on- 使用路径查找来找到远程存储桶off- 使用资源定位符样式(如域名或IP地址)查找来定位远程存储桶auto- 要求 MinIO 识别要用于查找远程存储桶的正确查找类型
当未定义时,MinIO 使用
auto值。
- --replicate
- 可选
指定以下值的逗号分隔列表以启用扩展复制功能。
delete- 指示 MinIO 进行复制DELETE 操作到目标存储桶。delete-marker- 指示 MinIO 将删除标记复制到目标存储桶。existing-objects- 指示 MinIO 复制在启用复制之前创建的对象or在复制暂停期间。metadata-sync- 指示 MinIO 为每个对象复制元数据。 仅适用于主动-主动复制场景。省略此值将指示 MinIO 停止将仅元数据的更改复制回源。
如果未指定,MinIO 会同步所有选项。
- --storage-class
- 可选
指定 MinIO存储类别应用于复制对象。
全局标志
此命令支持任何全局标志.
示例
配置存储桶复制
以下内容mc replicate add该命令创建一个复制配置,将新对象、现有对象、删除操作和删除标记同步到远程目标:
mc replicate add myminio/mybucket \
--remote-bucket https://user:secret@minio.mysite.tld/remotebucket \
--replicate "delete,delete-marker,existing-objects"
替换
myminio/mybucket随着ALIAS以及要为其创建复制配置的完整存储桶路径。替换
--remote-bucketvalue with the URL or path of the remote target. 如果使用文件路径格式位置,请使用--path on选项。The
--replicateflag 指示 MinIO 将所有的删除操作、删除标记和现有对象复制到远程目标。 请参阅删除操作的复制和现有对象的复制有关复制行为的更多信息。
配置存储桶历史数据记录的复制功能
以下内容mc replicate add该命令创建一个新的存储桶复制配置,可将所有新对象和现有对象同步到远程目标:
mc replicate add myminio/mybucket \
--remote-bucket https://user:secret@minio.mysite.tld/remotebucket \
--replicate "existing-objects"
替换
myminio/mybucket随着ALIAS以及要为其创建复制配置的完整存储桶路径。替换
--remote-bucketvalue with the location of the remote target. 如果使用文件路径格式的位置,请使用--path on选项。The
--replicateflag directs MinIO to replicate all existing objects to the remote. 请参阅现有对象的复制有关复制行为的更多信息。
生成的远程副本代表了远程对象的历史记录,源端的删除操作不会对远程副本产生影响。
行为
Server-Side Replication Requires MinIO Source and Destination
MinIO 服务器端复制仅在 MinIO 部署之间有效。 源部署和目标部署都必须必须运行 MinIO。
要配置任意 S3 兼容服务之间的复制,请使用mc mirror.
启用源存储桶和目标存储桶的版本控制
MinIO 依赖版本控制提供的不可变性保护来同步源端与复制目标之间的对象。
使用mc version enable启用版本控制的命令两者在开始此过程之前,请准备好源存储桶和目标存储桶:
mc version enable ALIAS/PATH
所需权限
MinIO 强烈建议创建专门用于支持存储桶复制操作的用户。
参见mc admin user和mc admin policy有关向 MinIO 部署添加用户和策略的更完整文档。
以下策略提供了在部署上配置和启用复制的权限。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"admin:SetBucketTarget",
"admin:GetBucketTarget",
"admin:ListBatchJobs",
"admin:DescribeBatchJob",
"admin:StartBatchJob",
"admin:CancelBatchJob"
],
"Effect": "Allow",
"Sid": "EnableRemoteBucketConfiguration"
},
{
"Effect": "Allow",
"Action": [
"s3:GetReplicationConfiguration",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:GetObjectRetention",
"s3:GetObjectLegalHold",
"s3:PutReplicationConfiguration"
],
"Resource": [
"arn:aws:s3:::*"
],
"Sid": "EnableReplicationRuleConfiguration"
}
]
}
The
"EnableRemoteBucketConfiguration"该语句授予创建远程目标的权限以支持复制。The
"EnableReplicationRuleConfiguration"statement grants permission for creating replication rules on a bucket. 该语句授予在存储桶上创建复制规则的权限。"arn:aws:s3:::*resource 应用复制权限到任何源部署上的存储桶。 您可以根据需要将用户策略限制为特定存储桶。
使用mc admin policy create将此策略添加到每个作为复制源的部署中。mc admin user add在部署上创建一个用户并mc admin policy attach将该策略关联到该新用户。
以下策略提供了启用复制数据同步的权限进入部署。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetReplicationConfiguration",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:GetBucketLocation",
"s3:GetBucketVersioning",
"s3:GetBucketObjectLockConfiguration",
"s3:GetEncryptionConfiguration"
],
"Resource": [
"arn:aws:s3:::*"
],
"Sid": "EnableReplicationOnBucket"
},
{
"Effect": "Allow",
"Action": [
"s3:GetReplicationConfiguration",
"s3:ReplicateTags",
"s3:AbortMultipartUpload",
"s3:GetObject",
"s3:GetObjectVersion",
"s3:GetObjectVersionTagging",
"s3:PutObject",
"s3:PutObjectRetention",
"s3:PutBucketObjectLockConfiguration",
"s3:PutObjectLegalHold",
"s3:DeleteObject",
"s3:ReplicateObject",
"s3:ReplicateDelete"
],
"Resource": [
"arn:aws:s3:::*"
],
"Sid": "EnableReplicatingDataIntoBucket"
}
]
}
The
"EnableReplicationOnBucket"statement grants permission for a remote target to retrieve bucket-level configuration for supporting replication operations on全部MinIO 部署中的存储桶。 要将策略限制到特定存储桶,请将这些存储桶指定为Resource类似于数组"arn:aws:s3:::bucketName".The
"EnableReplicatingDataIntoBucket"statement grants permission for a remote target to synchronize data into任何MinIO 部署中的存储桶。 要将策略限制到特定存储桶,请将这些存储桶指定为Resource类似于数组"arn:aws:s3:::bucketName/*".
使用mc admin policy create将此策略添加到每个充当复制目标的部署中。mc admin user add在部署上创建一个用户并mc admin policy attach将该策略关联到该新用户。
现有对象的复制
从...开始mc RELEASE.2021-06-13T17-48-22Z和minio RELEASE.2021-06-07T21-40-51ZMinIO 支持自动复制存储桶中的现有对象。
MinIO 现有对象复制实现了类似于AWS 在 S3 存储桶之间复制现有对象无需联系技术支持的开销。
要在创建新复制规则时启用现有对象的复制,请包含
"existing-objects"到指定的复制功能列表中mc replicate add --replicate.要启用现有复制规则对现有对象的复制,请添加
"existing-objects"添加到现有复制功能列表中mc replicate add --replicate您必须指定全部编辑复制规则时所需的复制功能。
看现有对象的复制有关此行为的更完整文档。
元数据变更的同步
MinIO 支持双向主动-主动replication configurations, where MinIO synchronizes new and modified objects between a bucket on two MinIO deployments.
Starting withmc RELEASE.2021-05-18T03-39-44Z默认情况下,MinIO 会将仅元数据更改同步到复制对象,并传回"源"部署。
在此更新之前,MinIO 不支持将仅元数据更改同步到复制对象。
启用元数据同步后,MinIO 会重置对象复制状态以指示复制资格。
具体来说,当应用程序对具有复制功能的对象执行仅元数据更新时,REPLICAstatus, MinIO 将对象标记为PENDING并且符合复制条件。
要禁用元数据同步,请使用mc replicate update --replicate命令和省略replica-metadata-sync从复制功能列表中。
删除操作的复制
MinIO 支持将删除操作复制到目标存储桶。 具体来说,MinIO 可以同时复制删除标记 和特定版本化对象的删除:
对于对象的删除操作,MinIO复制也会在目标存储桶上创建删除标记。
对于对象版本的删除操作,MinIO 复制也会删除目标存储桶中的这些版本。
MinIO 确实不因删除而复制对象生命周期管理过期规则MinIO 仅复制显式的客户端驱动的删除操作。
MinIO 需要明确启用删除操作的复制功能,通过mc replicate add --replicateflag.
此过程包括启用删除操作和删除标记复制所需的标志。
参见删除操作的复制有关此行为的更完整文档。
加密对象的复制
MinIO 支持复制使用自动服务器端加密 (SSE-S3) 加密的对象。 源存储桶和目标存储桶必须已为 MinIO 启用自动 SSE-S3 功能以复制加密对象。
作为复制过程的一部分,MinIO解密源存储桶上的对象并传输未加密的对象。 目标 MinIO 部署随后使用目标存储桶的 SSE-S3 配置重新加密该对象。 MinIO强烈建议 启用TLS在源部署和目标部署上,确保对象在传输过程中的安全性。
MinIO 确实不支持复制客户端加密对象(SSE-C)。
S3 Compatibility
Themc命令行工具专为兼容 AWS S3 API 而构建,并已通过 MinIO 和 AWS S3 测试,确保功能与行为符合预期。
MinIO 不提供对其他 S3 兼容服务的保证,因为它们的 S3 API 实现方式未知,因此不受支持。尽管mc命令可能按文档所述工作,任何此类使用风险自负。