欢迎来到即将发布的 MinIO 文档版本! 此页面上的内容正在积极开发中 可能随时更改。 如果找不到您要找的内容,请查看我们的 历史文档。 感谢您的耐心等待。 我们期待您贡献自己强大的力量,帮助更多的中国技术开发者![翻译]

mc replicate

描述

mc replication 命令配置 服务器端存储桶复制 在 MinIO 部署之间。

在配置复制之前创建远程目标

mc replicate 取决于返回的 ARN 资源 mc admin bucket remote.

服务器端复制需要 MinIO 源和目标

MinIO 服务器端复制仅适用于 MinIO 集群之间。 源和目标集群 must 运行 MinIO。

要配置任意 S3 兼容服务之间的复制, 用 mc mirror.

在源和目标存储桶上启用版本控制

MinIO 依赖于版本控制提供的不变性保护 同步源和复制目标之间的对象。

在开始此过程之前,使用 mc version enable 命令在源 both 和目标存储桶上启用版本控制:

mc version enable ALIAS/PATH
  • ALIAS 替换为 MinIO 集群的:mc:alias <mc alias>

  • PATH 替换为要在其上启用版本控制的存储桶。

所需权限

桶复制至少需要对源集群和目标集群具有以下权限:

源集群 must 有一个用户 at minimum*遵循附加的 *or 继承策略:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Action": [
               "admin:SetBucketTarget",
               "admin:GetBucketTarget"
            ],
            "Effect": "Allow",
            "Sid": ""
      },
      {
            "Effect": "Allow",
            "Action": [
               "s3:GetReplicationConfiguration",
               "s3:ListBucket",
               "s3:ListBucketMultipartUploads",
               "s3:GetBucketLocation",
               "s3:GetBucketVersioning"
            ],
            "Resource": [
               "arn:aws:s3:::SOURCEBUCKETNAME"
            ]
      }
   ]
}

用 MinIO 从中复制对象的源存储桶的名称替换“SOURCEBUCKETNAME”。

使用 mc admin policy set 命令将策略关联到源 MinIO 集群上的用户。

目标集群 must 有一个用户 at minimum 以下附加 or 继承策略:

{
   "Version": "2012-10-17",
   "Statement": [
      {
            "Effect": "Allow",
            "Action": [
               "s3:GetReplicationConfiguration",
               "s3:ListBucket",
               "s3:ListBucketMultipartUploads",
               "s3:GetBucketLocation",
               "s3:GetBucketVersioning",
               "s3:GetBucketObjectLockConfiguration"
            ],
            "Resource": [
               "arn:aws:s3:::DESTINATIONBUCKETNAME"
            ]
      },
      {
            "Effect": "Allow",
            "Action": [
               "s3:GetReplicationConfiguration",
               "s3:ReplicateTags",
               "s3:AbortMultipartUpload",
               "s3:GetObject",
               "s3:GetObjectVersion",
               "s3:GetObjectVersionTagging",
               "s3:PutObject",
               "s3:DeleteObject",
               "s3:ReplicateObject",
               "s3:ReplicateDelete"
            ],
            "Resource": [
               "arn:aws:s3:::DESTINATIONBUCKETNAME/*"
            ]
      }
   ]
}

DESTINATIONBUCKETNAME 替换为 MinIO 将对象复制到的目标存储桶的名称。

使用 mc admin policy set 命令将策略关联到目标 MinIO 集群上的用户。

MinIO 强烈建议创建专门用于支持的用户 存储桶复制操作。 看 mc admin usermc admin policy 更完整 有关将用户和策略添加到 MinIO 集群的文档。

复制现有对象

mc 开头 RELEASE.2021-06-13T17-48-22Zminio RELEASE.2021-06-07T21-40-51Z,MinIO自动支持 复制存储桶中的现有对象。 MinIO 现有对象复制 实现类似的功能 AWS:在 S3 存储桶之间复制现有对象 无需联系技术支持的开销。

  • 要在创建新的复制规则时启用现有对象的复制,请将 “existing-objects” 包含到指定给 mc replication add --replication 的复制功能列表中。

  • 要为现有复制规则启用现有对象的复制,请将 "existing-objects" 添加到现有复制功能列表中,使用 mc --复制添加复制。 您必须指定 all 编辑复制规则时所需的复制功能。

有关此行为的更完整文档,请参阅:ref:minio-replication-behavior-existing-objects

元数据更改的同步

MinIO 支持:ref:双向主动-主动 <minio-bucket-replication-serverside-twoway> 复制配置,其中 MinIO 在两个 MinIO 上的存储桶之间同步新对象和修改对象 部署。 以 mc 开头 RELEASE.2021-05-18T03-39-44Z,MinIO默认同步 对复制对象的仅元数据更改返回到 “source” 部署。 在此更新之前,MinIO 不支持仅同步元数据 对复制对象的更改。

启用元数据同步后,MinIO 重置对象 replication status 表示 复制资格。 具体来说,当应用程序执行 仅元数据更新到具有 “REPLICA” 状态的对象,MinIO 标记 对象为 PENDING 并且有资格进行复制。

要禁用元数据同步,请使用 :mc-cmd-option:`mc复制编辑复制`命令并省略 复制功能列表中的 “replica-metadata-sync”。

删除操作的复制

MinIO 支持将删除操作复制到目标桶上。 具体来说,MinIO 可以复制两者 Delete Markers and 删除 特定版本对象:

  • 对于对象上的删除操作,MinIO 复制还会在目标存储桶上创建删除标记。

  • 对于对象版本的删除操作,MinIO 复制也会删除目标存储桶上的这些版本。

MinIO *不*复制由于以下原因删除的对象 lifecycle management expiration rules。 MinIO 只复制显式的客户端驱动的删除操作。

MinIO 需要使用 mc replication add --replication 标志。 该程序包括 启用复制删除操作和删除标记所需的标志。 有关更完整的文档,请参阅 Replication of Delete Operations 对这种行为。

加密对象的复制

MinIO 支持复制自动加密的对象 服务器端加密 (SSE-S3)。 源存储桶和目标存储桶 must 为 MinIO 启用自动 SSE-S3 以复制加密对象。

作为复制过程的一部分,MinIO decrypts 源上的对象 存储桶并传输未加密的对象。 目标 MinIO 集群然后 使用目标存储桶 SSE-S3 配置重新加密对象。 MinIO strongly recommends 在源和源上启用 TLS 目的集群,保证对象在传输过程中的安全。

MinIO not 支持复制客户端加密对象(SSE-C)。

例子

有关配置的更完整过程,请参阅以下教程 使用 mc replication 进行服务器端复制:

添加新的复制规则

使用 :mc-command:`mc replication ad` 将新的复制规则添加到存储桶或存储桶前缀。 mc replication 取决于返回的 ARN 资源 mc admin bucket remote

mc replicate add ALIAS/PATH \
   --arn ARN \
   --remote-bucket BUCKET \
   [--FLAGS]
  • ALIAS 替换为 MinIO 集群的:mc:alias <mc alias>

  • PATH 替换为要在其上添加新规则的存储桶或存储桶前缀的路径。

  • :mc-command:`ARN <mc replication ad arn>` 替换为由 mc admin bucket remote 创建的远程存储桶目标的 ARN。

  • BUCKET 替换为远程存储桶目标的名称。 指定的存储桶名称 must 与 “ARN” 存储桶匹配。

包括所有其他可选标志。

修改现有复制规则

使用 mc replication edit 修改现有的复制规则。

mc replicate edit ALIAS/PATH \
   --id ID \
   [--FLAGS]
  • ALIAS 替换为 MinIO 集群的:mc:alias <mc alias>

  • PATH 替换为规则所在的存储桶或存储桶前缀的路径。

  • ID 替换为要修改的规则的唯一标识符。 使用 mc replication ls 来检索存储桶上的复制规则列表及其相应的标识符。

Important

MinIO 将复制规则应用于对象作为写操作的一部分。 修改复制规则对存储桶中的现有对象没有影响。 例如,通过 --复制编辑复制 选项不会自动复制现有的删除标记或删除的对象版本。

禁用或启用现有复制规则

使用 mc replication edit--复制编辑状态 标志禁用或启用 复制规则。

mc replicate edit ALIAS/PATH \
   --id ID \
   --state "disabled"|"enabled"
  • ALIAS 替换为 MinIO 集群的:mc:alias <mc alias>

  • PATH 替换为规则所在的存储桶或存储桶前缀的路径。

  • ID 替换为要修改的规则的唯一标识符。 使用 mc replication ls 来检索存储桶上的复制规则列表及其相应的标识符。

  • 指定 "disabled""enabled"复制编辑状态 标志来禁用或启用复制规则。

Important

MinIO 将复制规则应用于对象作为写操作的一部分。 修改复制规则对存储桶中的现有对象没有影响。 在启用或禁用复制规则的上下文中, 如果稍后启用了一个或多个规则,则不会自动复制写入未启用复制规则的存储桶的对象。

删除复制规则

使用 mc replication rm 删除现有的复制规则:

mc replicate rm ALIAS/PATH --id ID
  • ALIAS 替换为 MinIO 集群的:mc:alias <mc alias>

  • PATH 替换为规则所在的存储桶或存储桶前缀的路径。

  • ID 替换为要修改的规则的唯一标识符。 使用 mc replication ls 来检索存储桶上的复制规则列表及其相应的标识符。

Important

MinIO 将复制规则应用于对象作为写操作的一部分。 删除复制规则对作为该规则一部分复制的对象没有影响。

句法

mc replicate add

为存储桶添加新的服务器端复制配置规则。 需要指定返回的资源 mc admin bucket remote

mc replicate add 具有以下语法:

mc replicate add SOURCE \
   --arn ARN \
   --remote-bucket DESTINATION \
   --replicate OPTIONS \
   [FLAGS]

mc replicate add 支持以下论点:

SOURCE

Required

添加存储桶复制配置的存储桶的完整路径。 指定 alias 配置的 MinIO 服务作为前缀到 SOURCE 路径。 例如:

mc replicate add play/mybucket
--arn

Required

指定目标集群和存储桶的 ARN。 您可以使用 mc admin bucket remote 检索 ARN:

指定的 ARN 存储桶 must 与指定的值匹配 --remote-bucket

--remote-bucket

Required

指定目标集群上的存储桶名称。 名称 must 与指定的 ARN 匹配 --arn.

--replicate

Optional

指定以下值的逗号分隔列表以启用扩展复制功能。

  • delete - 指示 MinIO 将 DELETE 操作复制到目标存储桶。

  • delete-marker - 指示 MinIO 将删除标记复制到目标存储桶。

  • existing-objects - 指示 MinIO 复制在启用复制之前 or 复制暂停时创建的对象。

--tags

Optional

指定一个或多个与号``&`` 分隔的键值对标签,MinIO 使用这些标签来过滤要复制的对象。 例如:

--tags "TAG1=VALUE&TAG2=VALUE&TAG3=VALUE"

MinIO 将复制规则应用于标签集包含指定复制标签的任何对象。

--id

Optional

为复制规则指定唯一 ID。 如果没有指定,MinIO 会自动生成一个 ID。

--priority

Optional

指定复制规则的整数优先级。 值 must 在源存储桶上的所有其他规则中是唯一的。 更高的值意味着比所有其他规则 higher 的优先级。

默认值为 0.

--storage-class

Optional

指定 MinIO 存储类 以应用于复制对象。

--insecure

Optional

禁用目标集群的 TLS 证书验证。 如果目标集群使用自签名证书 or 由未知证书颁发机构签名的证书,则可能需要此选项。

--disable

Optional

创建处于 “disabled” 状态的复制规则。 MinIO 不会开始使用该规则复制对象,直到使用 mc replication edit 启用它。

禁用复制时创建的对象不是 启用规则后立即符合复制条件。 您必须明确启用现有的复制 通过将 "existing-objects" 包含到列表中来添加对象 指定的复制功能 mc --复制编辑复制。 看 Replication of Existing Objects 了解更多信息。

mc replicate edit

修改存储桶的现有服务器端复制配置规则。

mc replicate edit 具有以下语法:

mc replicate edit SOURCE --id IDENTIFIER [FLAGS]

mc replicate edit 支持以下论点:

SOURCE

Required

要在其上编辑存储桶复制配置的存储桶的完整路径。 指定 alias 配置的 MinIO 服务作为前缀到 SOURCE 路径。 例如:

mc replicate edit play/mybucket
--id

Required

为配置的复制规则指定唯一 ID。

--remote-bucket

Optional

指定目标集群上的存储桶名称。 名称 must 与复制规则 ARN 匹配。 用 mc replication ls 用于验证存储桶上每个配置的复制规则的 ARN。

--replicate

Optional

指定以下值的逗号分隔列表以启用扩展复制功能:

  • delete - 指示 MinIO 将 DELETE 操作复制到目标存储桶。

  • delete-marker - 指示 MinIO 将删除标记复制到目标存储桶。

  • replica-metadata-sync - 指示 MinIO 将复制对象上的仅元数据更改同步回源。

    此功能仅影响 双向主动-主动 复制配置。

    省略此值会指示 MinIO 停止将仅元数据更改复制回源。

  • existing-objects - 指示 MinIO 复制在配置或启用复制之前创建的对象。 默认情况下,MinIO not 将现有对象同步到远程目标。

    有关更多信息,请参阅:ref:minio-replication-behavior-existing-objects

--tags

Optional

指定一个或多个与号``&`` 分隔的键值对标签,MinIO 使用这些标签来过滤要复制的对象。 例如:

--tags "TAG1=VALUE&TAG2=VALUE&TAG3=VALUE"

MinIO 将复制规则应用于标签集包含指定复制标签的任何对象。

--priority

Optional

指定复制规则的整数优先级。 价值 must 在源存储桶上的所有其他规则中是唯一的。 更高的值意味着比所有其他规则 higher 的优先级。

--storage-class

Optional

指定 MinIO 存储类 以应用于复制对象。

--insecure

Optional

禁用目标集群的 TLS 证书验证。如果目标集群使用自签名证书 or 由未知证书颁发机构签名的证书,则可能需要此选项。

--state

Optional

启用或禁用复制规则。 指定以下值之一:

  • "enable" - 启用复制规则。

  • "disable" - 禁用复制规则。

禁用复制时创建的对象不能立即符合条件 启用规则后进行复制。 您必须明确启用 通过将“现有对象”包含到现有对象中来复制现有对象 指定的复制功能列表 mc --复制编辑复制。 看 Replication of Existing Objects 了解更多信息。

mc replicate ls

列出存储桶的服务器端复制配置规则。

mc replicate ls 具有以下语法:

mc replicate ls SOURCE [FLAGS]

mc replicate ls 支持以下论点:

SOURCE

Required

要在其上列出的存储桶的完整路径 复制配置。 指定 alias 作为配置的 MinIO 服务的前缀 SOURCE 路径。 例如:

mc replicate ls play/mybucket
--insecure

Optional

禁用目标集群的 TLS 证书验证。 如果目标集群使用自签名证书 or 由未知证书颁发机构签名的证书,则可能需要此选项。

--status

Optional

根据状态过滤存储桶上的复制规则。 指定以下值之一:

  • enabled - 仅显示启用的复制规则。

  • disabled - 仅显示禁用的复制规则。

如果省略, mc replication ls 默认显示所有复制规则。

mc replicate export

将存储桶的所有服务器端复制配置规则导出为 JSON 文档。

mc replicate export 具有以下语法:

mc replicate export SOURCE [FLAGS]

mc replicate export 支持以下论点:

SOURCE

Required

要导出的存储桶的完整路径 复制配置。 指定 alias 作为配置的 MinIO 服务的前缀 SOURCE 路径。 例如:

mc replicate export play/mybucket
--insecure

Optional

禁用目标集群的 TLS 证书验证。 如果目标集群使用自签名证书 or 由未知证书颁发机构签名的证书,则可能需要此选项。

mc replicate import

通过 “STDIN” 为存储桶导入 JSON 格式的服务器端复制规则。

mc replicate import 具有以下语法:

mc replicate import SOURCE [FLAGS]

mc replicate import 还支持输入重定向,用于指定 JSON 格式规则的路径:

mc replicate import SOURCE [FLAGS] < /path/to/config

mc replicate import 支持以下论点:

SOURCE

Required

要将数据导入到的存储桶的完整路径 复制配置。 指定 alias 作为配置的 MinIO 服务的前缀 SOURCE 路径。 例如:

mc replicate import play/mybucket
--insecure

Optional

禁用目标集群的 TLS 证书验证。 如果目标集群使用自签名证书 or 由未知证书颁发机构签名的证书,则可能需要此选项。

mc replicate rm

删除存储桶上的一个或多个服务器端复制规则。

mc replicate rm has the following syntax:

mc replicate rm SOURCE --id ID [FLAGS]

mc replicate rm 支持以下论点:

SOURCE

Required

要在其上删除存储桶的存储桶的完整路径 复制配置。 指定 alias 作为配置的 MinIO 服务的前缀 SOURCE 路径。 例如:

mc replicate edit play/mybucket
--id

Optional

为配置的复制规则指定唯一 ID。

--all

删除指定存储桶上的所有复制规则。 需要 指定 --force 标志。

--force

Optional

指定时需要 --all .

mc replicate resync, reset

将指定存储桶中的所有对象重新同步到远程目标存储桶。 有关更完整的文档, 请参阅 Resynchronization

mc replicate resync 具有以下语法:

mc replicate resync SOURCE [args]

mc replicate resync 支持以下论点:

SOURCE

Required

要在其上重新同步存储桶的存储桶的完整路径 复制状态。 指定 alias 作为配置的 MinIO 服务的前缀 edit 路径。 例如:

mc replicate resync play/mybucket
older-than

Optional

指定 MinIO 仅重新同步早于指定持续时间的对象的持续时间(以天为单位)。