4.3. レプリケーションリポジトリーの設定
オブジェクトストレージをレプリケーションリポジトリーとして使用するように設定する必要があります。MTC (Migration Toolkit for Containers) は、データをソースクラスターからレプリケーションリポジトリーにコピーしてから、レプリケーションリポジトリーからターゲットクラスターにコピーします。
MTC は、ソースクラスターからターゲットクラスターにデータを移行するために、ファイルシステムおよびスナップショットによるデータのコピー方法 をサポートします。ご使用の環境に適した方法で、ストレージプロバイダーでサポートされる方法を選択できます。
すべてのクラスターには、レプリケーションリポジトリーへの中断されないネットワークアクセスが必要です。
内部でホストされるレプリケーションリポジトリーでプロキシーサーバーを使用する場合は、プロキシーがレプリケーションリポジトリーへのアクセスを許可することを確認する必要があります。
以下のストレージプロバイダーがサポートされています。
- Multi-Cloud Object Gateway (MCG)
- Amazon Web Services (AWS) S3
- Google Cloud Platform (GCP)
- Microsoft Azure Blob
- 汎用 S3 オブジェクトストレージ (例: Minio または Ceph S3)
関連情報
4.3.1. Multi-Cloud Object Gateway の設定
OpenShift Container Storage Operator をインストールし、Multi-Cloud Object Gateway (MCG) ストレージバケットを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
4.3.1.1. OpenShift Container Storage Operator のインストール
OpenShift Container Storage Operator は、OperatorHub からインストールできます。
手順
- 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 は、Succeeded のステータスと共に openshift-storage プロジェクトに表示されます。
4.3.1.2. Multi-Cloud Object Gateway ストレージバケットの作成
Multi-Cloud Object Gateway (MCG) ストレージバケットのカスタムリソース (CR) を作成できます。
手順
OpenShift Container Platform クラスターにログインします。
$ oc login
NooBaa
CR 設定ファイルnoobaa.yml
を以下の内容で作成します。apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: <noobaa> namespace: openshift-storage spec: dbResources: requests: cpu: 0.5 1 memory: 1Gi coreResources: requests: cpu: 0.5 2 memory: 1Gi
NooBaa
オブジェクトを作成します。$ oc create -f noobaa.yml
以下の内容で、
BackingStore
CR 設定ファイル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: 3 1 resources: requests: storage: <volume_size> 2 storageClass: <storage_class> 3 type: pv-pool
BackingStore
オブジェクトを作成します。$ oc create -f bs.yml
以下の内容で
BucketClass
CR 設定ファイル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
以下の内容で
ObjectBucketClaim
CR 設定ファイル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'
このプロセスには、5 分から 10 分の時間がかかる場合があります。
以下の値を取得して記録します。この値は、レプリケーションリポジトリーを MTC の Web コンソールに追加する際に必要になります。
S3 エンドポイント:
$ oc get route -n openshift-storage s3
S3 プロバイダーアクセスキー:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decode
S3 プロバイダーシークレットアクセスキー:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode