4.13. 検出対象アプリケーションの障害復旧保護


Red Hat OpenShift Data Foundation は、Red Hat Advanced Cluster Management (RHACM) を使用せずに、マネージドクラスターの 1 つに直接デプロイされたワークロードに対して、障害復旧 (DR) 保護とサポートを提供するようになりました。このようなワークロードは、検出対象アプリケーションと呼ばれます。

RHACM を使用してデプロイされたワークロードは、管理対象アプリケーションと呼ばれます。RHACM を使用せずにマネージドクラスターの 1 つに直接デプロイされたワークロードは、検出対象アプリケーションと呼ばれます。RHACM は両方のタイプのワークロードの詳細を表示しますが、検出対象アプリケーションのライフサイクル (作成、削除、編集) は管理しません。

4.13.1. 検出対象アプリケーションの障害復旧保護の前提条件

このセクションでは、検出対象アプリケーションを保護するための前提条件を説明します。これには、データポリシーの割り当てや DR アクション (フェイルオーバーや再配置) の開始などのタスクが含まれます。

  1. すべての DR 設定がプライマリーマネージドクラスターとセカンダリーマネージドクラスターにインストールされていることを確認します。
  2. OADP 1.4 Operator をインストールします。

    注記

    OADP 1.4 より前のバージョンでは、検出対象アプリケーションの保護が機能しません。

    1. プライマリー および セカンダリーマネージドクラスターOperatorHub に移動し、キーワードフィルターを使用して OADP を検索します。
    2. OADP タイルをクリックします。
    3. すべてのデフォルト設定をそのままにして、Install をクリックします。Operator リソースが openshift-adp プロジェクトにインストールされていることを確認します。
    注記

    DR 設定を完了した後に OADP 1.4 をインストールする場合は、namespace openshift-dr-system 内の プライマリーマネージドクラスター および セカンダリーマネージドクラスターramen-dr-cluster-operator Pod を再起動 (削除して再作成) する必要があります。

  3. [オプション] CACertificates を ramen-hub-operator-config ConfigMap に追加します。

    プライマリークラスターとセカンダリークラスター間のネットワーク (SSL) アクセスを設定して、メタデータを、セキュアなトランスポートプロトコルを使用して別のクラスターの Multicloud Gateway (MCG) オブジェクトバケットに保存し、ハブクラスターに保存してオブジェクトバケットへのアクセスを検証できるようにします。

    注記

    すべての OpenShift クラスターが環境の署名済みの有効な証明書セットを使用してデプロイされる場合は、このセクションを省略できます。

    自己署名証明書を使用している場合は、openshift-config namespace に user-ca-bundle という名前の ConfigMap がすでに作成されており、この ConfigMap がデフォルトの Proxy クラスターリソースに追加されています。

    1. CACertificates のエンコード済みの値を見つけます。

      $ oc get configmap user-ca-bundle -n openshift-config -o jsonpath="{['data']['ca-bundle\.crt']}" |base64 -w 0
    2. この base64 でエンコードされた値を、Hub クラスターの configmap ramen-hub-operator-config に追加します。以下の例に、CACertificates を追加する場所を示します。

      $ oc edit configmap ramen-hub-operator-config -n openshift-operators
      [...]
          ramenOpsNamespace: openshift-dr-ops
          s3StoreProfiles:
          - s3Bucket: odrbucket-36bceb61c09c
            s3CompatibleEndpoint: https://s3-openshift-storage.apps.hyper3.vmw.ibmfusion.eu
            s3ProfileName: s3profile-hyper3-ocs-storagecluster
            s3Region: noobaa
            s3SecretRef:
              name: 60f2ea6069e168346d5ad0e0b5faa59bb74946f
            caCertificates: {input base64 encoded value here}
          - s3Bucket: odrbucket-36bceb61c09c
            s3CompatibleEndpoint: https://s3-openshift-storage.apps.hyper4.vmw.ibmfusion.eu
            s3ProfileName: s3profile-hyper4-ocs-storagecluster
            s3Region: noobaa
            s3SecretRef:
              name: cc237eba032ad5c422fb939684eb633822d7900
            caCertificates: {input base64 encoded value here}
  4. プライマリーマネージドクラスターセカンダリーマネージドクラスター の OADP Operator のデフォルト namespace openshift-adp に、DR シークレットが作成されていることを確認します。最初の DRPolicy 作成時に作成される DR シークレットは、以下のシークレットに類似したものになります。DR シークレット名の前には文字 v が付きます。

    $ oc get secrets -n openshift-adp
    NAME                                       TYPE     DATA   AGE
    v60f2ea6069e168346d5ad0e0b5faa59bb74946f   Opaque   1      3d20h
    vcc237eba032ad5c422fb939684eb633822d7900   Opaque   1      3d20h
    [...]
    注記

    openshift-adp namespace 内の各マネージドクラスターに 1 つの DR 作成シークレットが存在します。

  5. OADP namespace openshift-adp 内の各マネージドクラスターに Data Protection Application (DPA) がすでにインストールされているかどうかを確認します。まだ作成されていない場合は、次の手順に従ってこのリソースを作成します。

    1. 次の YAML 定義コンテンツを dpa.yaml にコピーして DPA を作成します。

      apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        labels:
          app.kubernetes.io/component: velero
        name: velero
        namespace: openshift-adp
      spec:
        backupImages: false
        configuration:
          nodeAgent:
            enable: false
            uploaderType: restic
          velero:
            defaultPlugins:
              - openshift
              - aws
            noDefaultBackupLocation: true
    2. DPA リソースを作成します。

      $ oc create -f dpa.yaml -n openshift-adp
      dataprotectionapplication.oadp.openshift.io/velero created
    3. OADP リソースが作成され、Running 状態になっていることを確認します。

      $ oc get pods,dpa -n openshift-adp
      NAME                                                    READY   STATUS    RESTARTS   AGE
      pod/openshift-adp-controller-manager-7b64b74fcd-msjbs   1/1     Running   0          5m30s
      pod/velero-694b5b8f5c-b4kwg                             1/1     Running   0          3m31s
      
      
      NAME                                                 AGE
      dataprotectionapplication.oadp.openshift.io/velero   3m31s

4.13.2. サンプル検出対象アプリケーションの作成

プライマリーマネージドクラスター から セカンダリーマネージドクラスター への フェイルオーバー をテストし、検出対象アプリケーションを 再配置 するには、RHACM のアプリケーション作成機能を使用せずにインストールされたサンプルアプリケーションが必要です。

手順

  1. プライマリーマネージドクラスター にログインし、サンプルアプリケーションリポジトリーのクローンを作成します。

    $ git clone https://github.com/red-hat-storage/ocm-ramen-samples.git
  2. main ブランチにいることを確認します。

    $ cd ~/ocm-ramen-samples
    $ git branch
    * main

    お客様のシナリオ、都市、地域に基づいてサンプルアプリケーションを作成する場合は、適切なディレクトリーを使用してください。

    注記

    検出対象アプリケーションでは、CephRBD またはブロックボリュームを使用するアプリケーションのみがサポートされます。

    $ ls workloads/deployment | egrep -v 'cephfs|k8s|base'
    odr-metro-rbd
    odr-regional-rbd
  3. プライマリーマネージドクラスターとセカンダリーマネージドクラスター の両方に、busybox-discovered という名前のプロジェクトを作成します。

    $ oc new-project busybox-discovered
  4. プライマリーマネージドクラスターbusybox アプリケーションを作成します。このサンプルアプリケーションの例は、ブロック (Ceph RBD) ボリュームを使用する Regional-DR 用です。

    $ oc apply -k workloads/deployment/odr-regional-rbd -n busybox-discovered
    persistentvolumeclaim/busybox-pvc created
    deployment.apps/busybox created
    注記

    OpenShift Data Foundation Disaster Recovery ソリューションによる保護は、複数の namespace にまたがる検出対象アプリケーションにまで拡張されました。

  5. プライマリーマネージドクラスター 上の正しいプロジェクトで busybox が実行されていることを確認します。

    $ oc get pods,pvc,deployment -n busybox-discovered
    NAME                           READY   STATUS    RESTARTS   AGE
    pod/busybox-796fccbb95-qmxjf   1/1     Running   0          18s
    
    
    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>                 18s
    
    
    NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/busybox   1/1     1            1           18

4.13.3. 障害復旧保護のためにサンプル検出アプリケーションを登録する

このセクションでは、Protected applications タブから検出対象アプリケーションに既存の DR ポリシーを適用する方法を説明します。

前提条件

  • 障害復旧が設定されており、少なくとも 1 つの DR ポリシーが作成されている。

手順

  1. RHACM コンソールで、Disaster recovery Protected applications タブに移動します。
  2. DR 保護用に既存のアプリケーションを設定するために、Enroll application をクリックします。
  3. ACM discovered applications を選択します。
  4. Namespace ページで DR cluster を選択します。これは busybox がインストールされている プライマリーマネージドクラスター の名前です。
  5. アプリケーションがインストールされている namespace を選択します。たとえば、busybox-discovered です。

    注記

    ワークロードが複数の namespace に分散している場合は、それらの namespace すべてを DR 保護対象として選択できます。

  6. 検出対象アプリケーションの一意の 名前 (例: busybox-rbd) を選択し、Next をクリックします。
  7. Configuration ページで、Resource label を使用してリソースを保護します。ここで、kubernetes-object バックアップに含めるリソースと、ボリュームのレプリケート対象の永続データを設定できます。Resource label はデフォルトで選択されています。
  8. ラベル式と PVC ラベルセレクターを指定します。kubernetes-objectsPVC の両方に対して ラベル appname=busybox を選択します。
  9. Next をクリックします。
  10. Replication ページで、既存の DR Policykubernetes-objects backup interval を選択します。

    注記

    PVC データレプリケーションと kubernetes オブジェクトのバックアップ間隔には、同じ期間 (5 分など) を選択することを推奨します。

  11. Next をクリックします。
  12. 設定を確認して、Save をクリックします。

    問題を修正するには、Back ボタンを使用して画面に戻ります。

  13. DR のフェイルオーバーと再配置のテストに進む前に、アプリケーションボリューム (PVC)Kubernetes-objects のバックアップが Healthy 状態であることを確認します。検出対象アプリケーションのステータスは、Protected applications タブで確認できます。

    1. DRPC のステータスを確認するために、ハブクラスターで次のコマンドを実行します。

      $ oc get drpc {drpc_name} -o wide -n openshift-dr-ops

      検出対象アプリケーションは、DRPlacementControl (DRPC) や Placement などのリソースを、openshift-dr-ops という新しい namespace のハブクラスターに保存します。DRPC 名は、前の手順で設定した一意の名前 (例: busybox-rbd) によって識別できます。

    2. 検出対象アプリケーションの VolumeReplicationGroup (VRG) のステータスを確認するために、busybox アプリケーションを手動でインストールしたマネージドクラスターで次のコマンドを実行します。

      $ oc get vrg {vrg_name} -n openshift-dr-ops

      検出対象アプリケーションに DR ポリシーが割り当てられると、VRG リソースは namespace openshift-dr-ops に保存されます。VRG 名は、前の手順で設定した一意の名前 (例: busybox-rbd) によって識別できます。

4.13.4. 検出対象アプリケーションのフェイルオーバーと再配置

保護された検出対象アプリケーションは、管理対象アプリケーション と同様に、ピアクラスターに フェイルオーバー または 再配置 できます。ただし、アプリケーションのライフサイクルが管理対象アプリケーションのように RHACM によって管理されないため、検出対象アプリケーションには追加の手順がいくつかあります。

このセクションでは、保護された検出対象アプリケーションのフェイルオーバーおよび再配置プロセスを説明します。

重要

1 つまたは両方のリソースタイプが Warning または Critical ステータスにある場合は、アプリケーションのフェイルオーバーまたは再配置を開始しないでください。

4.13.4.1. 障害復旧により保護された検出対象アプリケーションのフェイルオーバー

このセクションでは、障害復旧により保護された検出対象アプリケーションをフェイルオーバーする方法を説明します。

前提条件

  • 両方のマネージドクラスターにアプリケーションの namespace が作成されていることを確認する (例: busybox-discovered)。

手順

  1. RHACM コンソールで、Disaster Recovery Protected applications タブに移動します。
  2. アプリケーション行の最後で、Actions メニューをクリックし、フェイルオーバー の開始を選択します。
  3. Failover application モーダルウィンドウで、アプリケーションとターゲットクラスターのステータスを確認します。
  4. Initiate をクリックします。Failover プロセスが完了するまで待ちます。
  5. セカンダリーマネージドクラスター で busybox アプリケーションが実行されていることを確認します。

    $ oc get pods,pvc,volumereplication -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
    
    
    NAME                                                             AGE     VOLUMEREPLICATIONCLASS                  PVCNAME       DESIREDSTATE   CURRENTSTATE
    volumereplication.replication.storage.openshift.io/busybox-pvc   2m45s   rbd-volumereplicationclass-1625360775   busybox-pvc   primary        Primary
  6. 結果が WaitOnUserToCleanup になるまで、フェイルオーバーの進行状況を確認します。DRPC 名は、前の手順で設定した一意の名前 (例: busybox-rbd) によって識別できます。

    $ oc get drpc {drpc_name} -n openshift-dr-ops -o jsonpath='{.status.progression}{"\n"}'
    WaitOnUserToCleanUp
  7. プライマリーマネージドクラスター から busybox アプリケーションを削除し、Failover プロセスを完了します。

    1. Protected applications タブに移動します。アプリケーションを削除するためのメッセージが表示されます。
    2. busybox のクローンリポジトリーに移動し、フェイルオーバー 元の プライマリーマネージドクラスター で次のコマンドを実行します。アプリケーションの作成に使用したのと同じディレクトリー (odr-regional-rbd など) を使用します。

      $ cd ~/ocm-ramen-samples/
      $ git branch
      * main
      $ oc delete -k workloads/deployment/odr-regional-rbd -n busybox-discovered
      persistentvolumeclaim "busybox-pvc" deleted
      deployment.apps "busybox" deleted
  8. アプリケーションを削除した後、Protected applications タブに移動し、busybox リソースが両方とも Healthy 状態であることを確認します。

4.13.4.2. 障害復旧により保護された検出対象アプリケーションの再配置

このセクションでは、障害復旧により保護された検出対象アプリケーションを再配置する方法を説明します。

手順

  1. RHACM コンソールで、Disaster Recovery Protected applications タブに移動します。
  2. アプリケーション行の最後で、Actions メニューをクリックし、再配置 の開始を選択します。
  3. Relocate application モーダルウィンドウで、アプリケーションとターゲットクラスターのステータスを確認します。
  4. Initiate をクリックします。
  5. 結果が WaitOnUserToCleanup になるまで、再配置の進行状況を確認します。DRPC 名は、前の手順で設定した一意の名前 (例: busybox-rbd) によって識別できます。

    $ oc get drpc {drpc_name} -n openshift-dr-ops -o jsonpath='{.status.progression}{"\n"}'
    WaitOnUserToCleanUp
  6. プライマリーマネージドクラスター への 再配置 が完了する前に、セカンダリーマネージドクラスター から busybox アプリケーションを削除します。

    busybox のクローンリポジトリーに移動し、再配置 元の セカンダリーマネージドクラスター で次のコマンドを実行します。アプリケーションの作成に使用したのと同じディレクトリー (odr-regional-rbd など) を使用します。

    $ cd ~/ocm-ramen-samples/
    $ git branch
    * main
    $ oc delete -k workloads/deployment/odr-regional-rbd -n busybox-discovered
    persistentvolumeclaim "busybox-pvc" deleted
    deployment.apps "busybox" deleted
  7. アプリケーションを削除した後、Protected applications タブに移動し、busybox リソースが両方とも Healthy 状態であることを確認します。
  8. プライマリーマネージドクラスター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
    
    
    NAME                                                             AGE     VOLUMEREPLICATIONCLASS                  PVCNAME       DESIREDSTATE   CURRENTSTATE
    volumereplication.replication.storage.openshift.io/busybox-pvc   2m45s   rbd-volumereplicationclass-1625360775   busybox-pvc   primary        Primary

4.13.5. 保護されたアプリケーションの障害復旧の無効化

このセクションでは、保護されたアプリケーションを削除する場合、またはアプリケーションを保護する必要がなくなった場合に、障害復旧リソースを無効にする方法を説明します。

手順

  1. ハブクラスターにログインします。
  2. DRPlacementControl (DRPC) リソースをリスト表示します。DRPC リソースは、アプリケーションに DR ポリシーを割り当てるときにそれぞれ作成されたものです。

    $ oc get drpc -n openshift-dr-ops
  3. DR ポリシーを割り当てるときに選択した一意の識別子 (たとえば、busybox-rbd) を含む名前を持つ DRPC を見つけて、その DRPC を削除します。

    $ oc delete {drpc_name} -n openshift-dr-ops
  4. Placement リソースをリスト表示します。Placement リソースは、アプリケーションに DR ポリシーを割り当てるときにそれぞれ作成されたものです。

    $ oc get placements -n openshift-dr-ops
  5. DR ポリシーを割り当てるときに選択した一意の識別子 (たとえば、busybox-rbd-placement-1) を含む名前を持つ Placement を見つけて、その Placement を削除します。

    $ oc delete placements {placement_name} -n openshift-dr-ops
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.