7.5. 配置复制存储库
您必须将对象存储配置为用作复制存储库。MTC 将数据从源集群复制到复制存储库,然后从复制存储库复制到目标集群。对于一个受限网络环境,多云对象网关(MCG)是唯一支持的选项。
MTC 支持将数据从源集群迁移到目标集群的文件系统和快照数据复制方法。您可以选择适合于您的环境并受您的存储供应商支持的方法。
7.5.1. 先决条件 复制链接链接已复制到粘贴板!
- 所有集群都必须具有对复制存储库的不间断网络访问权限。
- 如果您将代理服务器与内部托管的复制存储库搭配使用,您必须确保代理允许访问复制存储库。
7.5.2. 配置多云对象网关 复制链接链接已复制到粘贴板!
您可以安装 OpenShift Container Storage Operator,并将一个 Multi-Cloud Object Gateway(MCG)存储桶配置为 Migration Toolkit for Containers(MTC)的复制仓库。
7.5.2.1. 安装 OpenShift Container Storage Operator 复制链接链接已复制到粘贴板!
您可以从 OperatorHub 安装 OpenShift Container Storage Operator。
如需更多信息,请参阅 Red Hat OpenShift Container 存储:规划您的部署中的断开连接的环境部分。
流程
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 - 使用 Filter by keyword (本例中为 OCS)来查找 OpenShift Container Storage Operator。
- 选择 OpenShift Container Storage Operator 并点 Install。
- 选择一个 Update Channel、Installation Mode 和 Approval Strategy。
点击 Install。
在 Installed Operators 页面中,OpenShift Container Storage Operator 会出现在 openshift-storage 项目中,状态为 Succeeded。
7.5.2.2. 创建 Multi-Cloud Object Gateway 存储桶 复制链接链接已复制到粘贴板!
您可以创建 Multi-Cloud Object Gateway(MCG)存储桶的自定义资源(CR)。
流程
登录到 OpenShift Container Platform 集群:
$ oc login -u <username>使用以下内容创建
NooBaaCR 配置文件,noobaa.yml:apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: <noobaa> namespace: openshift-storage spec: dbResources: requests: cpu: 0.51 memory: 1Gi coreResources: requests: cpu: 0.52 memory: 1Gi创建
NooBaa对象:$ oc create -f noobaa.yml使用以下内容创建
BackingStoreCR 配置文件,bs.yml:apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <mcg_backing_store> namespace: openshift-storage spec: pvPool: numVolumes: 31 resources: requests: storage: <volume_size>2 storageClass: <storage_class>3 type: pv-pool创建
BackingStore对象:$ oc create -f bs.yml使用以下内容创建
BucketClassCR 配置文件,bc.yml:apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <mcg_bucket_class> namespace: openshift-storage spec: placementPolicy: tiers: - backingStores: - <mcg_backing_store> placement: Spread创建
BucketClass对象:$ oc create -f bc.yml使用以下内容创建
ObjectBucketClaimCR 配置文件,obc.yml:apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <bucket> namespace: openshift-storage spec: bucketName: <bucket>1 storageClassName: <storage_class> additionalConfig: bucketclass: <mcg_bucket_class>- 1
- 记录在 MTC web 控制台中添加复制存储库的存储桶名称。
创建
ObjectBucketClaim对象:$ oc create -f obc.yml监控资源创建过程以验证
ObjectBucketClaim的状态变为Bound:$ watch -n 30 'oc get -n openshift-storage objectbucketclaim migstorage -o yaml'这个过程可能需要五到十分钟。
获取并记录以下值,当您将复制存储库添加到 MTC web 控制台时需要这些值:
S3 端点:
$ oc get route -n openshift-storage s3S3 provider access key:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decodeS3 provider secret access key:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode