3.16.4.2. 障害復旧により保護された検出対象アプリケーションの再配置
このセクションでは、障害復旧により保護された検出対象アプリケーションを再配置する方法を説明します。
手順
ハブクラスターでフェンシングを無効にします。
このクラスターの DRCluster resource を編集し、<drcluster_name> を一意の名前に置き換えます。
$ oc edit drcluster <drcluster_name>apiVersion: ramendr.openshift.io/v1alpha1 kind: DRCluster metadata: [...] spec: cidrs: [...] ## Modify this line clusterFence: Unfenced [...] [...]出力例:
drcluster.ramendr.openshift.io/ocp4perf1 editedFencedであった OpenShift Container Platform ノードを正常に再起動します。リカバリーオーケストレーションの障害がさらに発生しないように、フェンシング解除後に I/O 操作を再開するには、再起動が必要です。ノードの正常な再起動 の手順に従って、クラスターのすべてのノードを再起動します。注記ノードで再起動して uncordon 操作を実行する前に、すべてのノードが最初に接続解除され、ドレインされていることを確認してください。
すべての OpenShift ノードが再起動され、
Readyステータスになったら、プライマリーマネージドクラスター (または Unfenced されたクラスター) でこのコマンドを実行して、すべての Pod が正常な状態であることを確認します。oc get pods -A | egrep -v 'Running|Completed'出力例:
NAMESPACE NAME READY STATUS RESTARTS AGE次のステップに進む前に、このクエリーの出力は 0 Pod である必要があります。
重要ストレージ通信が切断されたために Pod がまだ異常な状態にある場合は、続行する前にトラブルシューティングを行って解決してください。ストレージクラスターは OpenShift の外部にあるため、OpenShift アプリケーションを正常に動作させるには、サイトの停止後にストレージクラスターを適切に復元する必要もあります。
または、OpenShift Web コンソールのダッシュボードと概要タブを使用して、アプリケーションと外部 ODF ストレージクラスターの正常性を評価することもできます。OpenShift Data Foundation ダッシュボードの詳細は、Storage
Data Foundation に移動すると表示されます。 Unfencedクラスターが正常な状態であることを確認します。プライマリーマネージドクラスターのハブクラスターのフェンシングステータスを確認します。<drcluster_name> は、一意の名前に置き換えます。$ oc get drcluster.ramendr.openshift.io <drcluster_name> -o jsonpath='{.status.phase}{"\n"}'出力例:
UnfencedCeph クラスターにログインし、OpenShift Container Platform クラスターノードに属する IP がブロックリストに含まれていないことを確認します。
$ ceph osd blocklist lsフェンシング中に追加された IP が表示されていないことを確認します。
-
RHACM コンソールで、Disaster Recovery
Protected applications タブに移動します。 - アプリケーション行の最後で、Actions メニューをクリックし、再配置 の開始を選択します。
- Relocate application モーダルウィンドウで、アプリケーションとターゲットクラスターのステータスを確認します。
- Initiate をクリックします。
結果が
WaitOnUserToCleanupになるまで、再配置の進行状況を確認します。DRPC 名は、前の手順で設定した一意の名前 (例:busybox-rbd) によって識別できます。$ oc get drpc {drpc_name} -n openshift-dr-ops -o jsonpath='{.status.progression}{"\n"}' WaitOnUserToCleanUpプライマリーマネージドクラスター への 再配置 が完了する前に、セカンダリーマネージドクラスター から busybox アプリケーションを削除します。
busyboxのクローンリポジトリーに移動し、再配置元の セカンダリーマネージドクラスター で次のコマンドを実行します。アプリケーションの作成に使用したのと同じディレクトリー (odr-metro-rbdなど) を使用します。$ cd ~/ocm-ramen-samples/ $ git branch * main $ oc delete -k workloads/deployment/odr-metro-rbd -n busybox-discovered persistentvolumeclaim "busybox-pvc" deleted deployment.apps "busybox" deleted- アプリケーションを削除した後、Protected applications タブに移動し、busybox リソースが両方とも Healthy 状態であることを確認します。
プライマリーマネージドクラスター で
busyboxアプリケーションが実行されていることを確認します。$ oc get pods,pvc -n busybox-discovered NAME READY STATUS RESTARTS AGE pod/busybox-796fccbb95-qmxjf 1/1 Running 0 2m46s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE persistentvolumeclaim/busybox-pvc Bound pvc-b20e4129-902d-47c7-b962-040ad64130c4 1Gi RWO ocs-storagecluster-ceph-rbd <unset> 2m57s