3.6. マネージドクラスターへの OpenShift Data Foundation のインストール
2 つの OpenShift Container Platform クラスター間でストレージレプリケーションを設定するには、先に OpenShift Data Foundation Operator を各マネージドクラスターにインストールする必要があります。
前提条件
- OpenShift Data Foundation の外部デプロイメントのハードウェア要件を満たしていることを確認してください。ハードウェア要件の詳細は、外部モードの要件 を参照してください。
手順
- 各マネージドクラスターに最新の OpenShift Data Foundation クラスターをインストールして設定します。
Operator をインストールした後、Full deployment タイプおよび
Connect with external storage platform
オプションを使用して、StorageSystem を作成します。バッキングストレージのタイプ はRed Hat Ceph Storage
とします。詳しい手順は、外部モードでの OpenShift Data Foundation のデプロイ を参照してください。
ceph-external-cluster-details-exporter.py
スクリプトで次のフラグを使用します。少なくとも、
ceph-external-cluster-details-exporter.py script
で次の 3 つのフラグを使用する必要があります。- --rbd-data-pool-name
-
OpenShift Container Platform の RHCS デプロイメント中に作成された RBD プールの名前を使用します。たとえば、プールを
rbdpool
と呼ぶことができます。 - --rgw-endpoint
-
<ip_address>:<port>
の形式でエンドポイントを指定します。これは、設定している OpenShift Container Platform クラスターと同じサイトで実行されている RGW デーモンの RGW IP です。 - --run-as-user
- サイトごとに異なるクライアント名を使用します。
RHCS の展開中にデフォルト値が使用された場合、次のフラグは
optional
です。- --cephfs-filesystem-name
-
OpenShift Container Platform の RHCS デプロイメント中に作成した CephFS ファイルシステムの名前を使用すると、デフォルトのファイルシステム名は
cephfs
になります。 - --cephfs-data-pool-name
-
OpenShift Container Platform の RHCS デプロイメント中に作成した CephFS データプールの名前で、デフォルトプールは
cephfs.data
と呼ばれます。 - --cephfs-metadata-pool-name
-
OpenShift Container Platform の RHCS デプロイメント中に作成した CephFS メタデータプールの名前で、デフォルトプールは
cephfs.meta
と呼ばれます。
ブートストラップノード
ceph1
で次のコマンドを実行して、datacenter1 と datacenter2 の RGW エンドポイントの IP を取得します。ceph orch ps | grep rgw.objectgw
出力例:
rgw.objectgw.ceph3.mecpzm ceph3 *:8080 running (5d) 31s ago 7w 204M - 16.2.7-112.el8cp rgw.objectgw.ceph6.mecpzm ceph6 *:8080 running (5d) 31s ago 7w 204M - 16.2.7-112.el8cp
host ceph3.example.com host ceph6.example.com
出力例:
ceph3.example.com has address 10.0.40.24 ceph6.example.com has address 10.0.40.66
ブートストラップされたノード
ceph1
上の最初の OpenShift Container Platform マネージドクラスターcluster1
用に設定されたパラメーターを使用してceph-external-cluster-details-exporter.py
を実行します。python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name rbdpool --cephfs-filesystem-name cephfs --cephfs-data-pool-name cephfs.cephfs.data --cephfs-metadata-pool-name cephfs.cephfs.meta --<rgw-endpoint> XXX.XXX.XXX.XXX:8080 --run-as-user client.odf.cluster1 > ocp-cluster1.json
注記環境に応じて <rgw-endpoint> XXX.XXX.XXX.XXX を変更します。
ブートストラップされたノード
ceph1
上の最初の OpenShift Container Platform マネージドクラスターcluster2
用に設定されたパラメーターを使用してceph-external-cluster-details-exporter.py
を実行します。python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name rbdpool --cephfs-filesystem-name cephfs --cephfs-data-pool-name cephfs.cephfs.data --cephfs-metadata-pool-name cephfs.cephfs.meta --rgw-endpoint XXX.XXX.XXX.XXX:8080 --run-as-user client.odf.cluster2 > ocp-cluster2.json
注記環境に応じて <rgw-endpoint> XXX.XXX.XXX.XXX を変更します。
-
ブートストラップクラスター (ceph1) で生成された 2 つのファイル
ocp-cluster1.json
とocp-cluster2.json
をローカルマシンに保存します。 -
外部 OpenShift Data Foundation がデプロイされている
cluster1
上の OpenShift Container Platform コンソールで、ファイルocp-cluster1.json
の内容を使用します。 -
外部 OpenShift Data Foundation がデプロイされている
cluster2
上の OpenShift Container Platform コンソールで、ファイルocp-cluster2.json
の内容を使用します。
-
ブートストラップクラスター (ceph1) で生成された 2 つのファイル
- 設定を確認し、Create StorageSystem を選択します。
以下のコマンドを使用して、各マネージドクラスターで OpenShift Data Foundation が正常にデプロイされたことを検証します。
$ oc get storagecluster -n openshift-storage ocs-external-storagecluster -o jsonpath='{.status.phase}{"\n"}'
Multicloud Gateway (MCG) の場合:
$ oc get noobaa -n openshift-storage noobaa -o jsonpath='{.status.phase}{"\n"}'
ステータスの結果が、プライマリーマネージドクラスター と セカンダリーマネージドクラスター の両方のクエリーに対して Ready になるまで待ちます。
-
OpenShift Web コンソールで、Installed Operators
OpenShift Data Foundation Storage System ocs-external-storagecluster-storagesystem
Resources の順に移動します。 StorageCluster
の Status がReady
で、横に緑色のチェックマークが付いていることを確認します。 RBD と CephFS ボリュームの読み取りアフィニティーを、最も近いデータセンターから提供できるようにします。
プライマリーマネージドクラスターで、すべてのノードにラベルを付けます。
$ oc label nodes --all metro-dr.openshift-storage.topology.io/datacenter=DC1
以下のコマンドを実行して、読み取りアフィニティーを有効にします。
$ oc patch storageclusters.ocs.openshift.io -n openshift-storage ocs-external-storagecluster -p '{"spec":{"csi":{"readAffinity":{"enabled":true,"crushLocationLabels":["metro-dr.openshift-storage.topology.io/datacenter"]}}}}' --type=merge
$ oc delete po -n openshift-storage -l 'app in (csi-cephfsplugin,csi-rbdplugin)'
セカンダリーマネージドクラスターで、すべてのノードにラベルを付けます。
$ oc label nodes --all metro-dr.openshift-storage.topology.io/datacenter=DC2
以下のコマンドを実行して、読み取りアフィニティーを有効にします。
$ oc patch storageclusters.ocs.openshift.io -n openshift-storage ocs-external-storagecluster -p '{"spec":{"csi":{"readAffinity":{"enabled":true,"crushLocationLabels":["metro-dr.openshift-storage.topology.io/datacenter"]}}}}' --type=merge
$ oc delete po -n openshift-storage -l 'app in (csi-cephfsplugin,csi-rbdplugin)'