第 9 章 多云对象网关存储桶复制
从一个多云对象网关(MCG)存储桶向另一个 MCG 存储桶的数据复制提供了更高的弹性和更好的协作选项。这些存储桶可以是由任何受支持的存储解决方案(S3、Azure 等)支持的数据桶或命名空间存储桶。
复制策略由复制规则列表组成。每条规则定义目的地桶,并可基于对象密钥前缀指定过滤器。在第二个 bucket 上配置补充复制策略会导致双向复制。
先决条件
- 正在运行的 OpenShift Data Foundation 平台。
- 访问多云对象网关,请参阅第使用应用程序访问多云对象网关。
下载 Multicloud 对象网关 (MCG) 命令行界面:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcg
重要指定使用订阅管理器启用存储库的适当架构。例如,对于 IBM Power,使用以下命令:
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-ppc64le-rpms
另外,您还可以从位于 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages 的 OpenShift Data Foundation RPM 安装
mcg
软件包。重要根据您的架构选择正确的产品变体。
注意某些特定的 MCG 功能仅在某些 MCG 版本中可用,必须使用适当的 MCG CLI 工具版本来充分利用 MCG 的功能。
要复制存储桶,请参阅将存储桶复制到另一个存储桶。
要设置存储桶类复制策略,请参阅设置存储桶类复制策略。
9.1. 将存储桶复制到其他存储桶
您可以通过两种方式设置存储桶复制策略:
9.1.1. 使用 MCG 命令行界面将存储桶复制到另一个存储桶
需要多云对象网关(MCG)存储桶具有特定复制策略的应用程序可以创建一个对象 Bucket 声明(OBC),并在 JSON 文件中定义复制策略
参数。
流程
在 MCG 命令行界面中,运行以下命令来创建具有特定复制策略的 OBC:
noobaa obc create <bucket-claim-name> -n openshift-storage --replication-policy /path/to/json-file.json
<bucket-claim-name>
- 指定存储桶声明的名称。
/path/to/json-file.json
是定义复制策略的 JSON 文件的路径。
JSON 文件示例:
[{ "rule_id": "rule-1", "destination_bucket": "first.bucket", "filter": {"prefix": "repl"}}]
"prefix"
-
是可选的。它是要复制的对象键的前缀,甚至可以留空,例如
{"prefix": ""}
。
例 9.1. 示例
noobaa obc create my-bucket-claim -n openshift-storage --replication-policy /path/to/json-file.json
9.1.2. 使用 YAML 将存储桶复制到另一个存储桶
需要 Multicloud Object Gateway(MCG)存储桶具有特定复制策略的应用程序可以创建一个对象 Bucket Claim(OBC),并将 spec.additionalConfig.replication-policy
参数添加到 OBC。
流程
应用以下 YAML:
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <desired-bucket-claim> namespace: <desired-namespace> spec: generateBucketName: <desired-bucket-name> storageClassName: openshift-storage.noobaa.io additionalConfig: replication-policy: [{ "rule_id": "<rule id>", "destination_bucket": "first.bucket", "filter": {"prefix": "<object name prefix>"}}]
<desired-bucket-claim>
- 指定存储桶声明的名称。
<desired-namespace>
- 指定命名空间。
<desired-bucket-name>
- 指定存储桶名称的前缀。
"rule_id"
-
指定规则的 ID 号,例如
{"rule_id": "rule-1"}
。 "destination_bucket"
-
指定目标存储桶的名称,例如
{"destination_bucket": "first.bucket"}
。 "prefix"
-
是可选的。它是要复制的对象键的前缀,甚至可以留空,例如
{"prefix": ""}
。
附加信息
- 如需有关 OBC 的更多信息,请参阅 Object Bucket Claim。