3.4. セカンダリークラスターへのフェイルオーバーおよびセカンダリークラスターからのフェイルバックの設定

このセクションでは、サーバーに障害が発生した場合にクラスターがリモートセカンダリークラスターにフェイルオーバーするように設定する方法について説明します。

これを実行するには、以下を行う必要があります。

3.4.1. フェイルオーバー用のセカンダリークラスターの作成

障害が発生した場合にプライマリークラスターの代わりに使用できるセカンダリークラスターをインストールして設定します。

このセカンダリークラスターは、次のいずれかの設定にすることができます。

Red Hat Hyperconverged Infrastructure
詳細については、Red Hat ハイパーコンバージドインフラストラクチャーのデプロイ を参照してください。
Red Hat Virtualization ストレージドメインとして使用するために設定された Red Hat Gluster Storage
詳細については、Red Hat Gluster Storage を使用した Red Hat Virtualization の設定 を参照してください。このユースケースでは、ストレージドメインを作成する必要がないことに注意してください。ストレージドメインはフェイルオーバープロセスの一部としてインポートされます。

セカンダリークラスターのストレージは、フェイルオーバープロセス中にセカンダリーサイトのデータセンターに追加できるように、データセンターに接続しないでください。

3.4.2. ソースクラスターとターゲットクラスター間のマッピングファイルの作成

このセクションに従って、ソースクラスターのストレージをターゲットクラスターのストレージにマップするファイルを作成します。

Red Hat は、最初にストレージをデプロイした直後にこのファイルを作成し、デプロイの変更に合わせて最新の状態に保つことを推奨します。これにより、災害時にクラスター内のすべてが安全にフェイルオーバーされるようになります。

  1. Playbook を作成して、マッピングファイルを生成します。

    siteusernamepassword、および ca 変数を使用して、クラスターに関する情報を ovirt.ovirt.disaster_recovery ロールに渡す Playbook を作成します。

    Playbook ファイルの例: dr-ovirt-setup.yml

    ---
    - name: Collect mapping variables
      hosts: localhost
      connection: local
    
      vars:
        site: https://example.engine.redhat.com/ovirt-engine/api
        username: admin@internal
        password: my_password
        ca: /etc/pki/ovirt-engine/ca.pem
        var_file: disaster_recovery_vars.yml
    
      roles:
        - ovirt.ovirt.disaster_recovery

  2. generate_mapping タグを指定して Playbook を実行し、マッピングファイルを生成します。

    # ansible-playbook dr-ovirt-setup.yml --tags="generate_mapping"

    これにより、マッピングファイル Disaster_recovery_vars.yml が作成されます。

  3. Disaster_recovery_vars.yml を編集し、セカンダリークラスターに関する情報を追加します。セカンダリーサイトにデータが同期されているストレージドメインのみを指定するようにしてください。他のストレージドメインは削除できます。

    マッピングファイルで使用される属性の詳細については、Red Hat Virtualization Disaster Recovery Guide付録 A: Mapping File Attributes を参照してください。

3.4.3. ソースクラスターとターゲットクラスター間のフェイルオーバー Playbook の作成

フェイルオーバーを処理する Playbook ファイルを作成します。

  1. パスワードファイル (passwords.yml など) を定義して、プライマリーおよびセカンダリーサイトの Manager パスワードを保存します。以下に例を示します。

    passwords.yml ファイルの例

    ---
    # This file is in plain text, if you want to
    # encrypt this file, please execute following command:
    #
    # $ ansible-vault encrypt passwords.yml
    #
    # It will ask you for a password, which you must then pass to
    # ansible interactively when executing the playbook.
    #
    # $ ansible-playbook myplaybook.yml --ask-vault-pass
    #
    dr_sites_primary_password: primary_password
    dr_sites_secondary_password: secondary_password

    注記

    セキュリティーを強化する場合は、パスワードファイルを暗号化できます。ただし、Playbook を実行するときに --ask-vault-pass パラメーターを使用する必要があります。詳細は、Working with files encrypted using Ansible Vault を参照してください。

  2. dr_target_host および dr_source_map 変数を使用して、フェイルオーバーのソースおよびターゲットとして使用するハイパーコンバージドホストのリストを ovirt.ovirt.disaster_recovery ロールに渡す Playbook ファイルを作成します。

    Playbook ファイルの例: dr-rhv-failover.yml

    ---
    - name: Failover RHV
      hosts: localhost
      connection: local
      vars:
        dr_target_host: secondary
        dr_source_map: primary
      vars_files:
        - disaster_recovery_vars.yml
        - passwords.yml
      roles:
        - ovirt.ovirt.disaster_recovery

フェイルオーバーの実行については、セカンダリークラスターへのフェイルオーバー を参照してください。

3.4.4. プライマリークラスターのフェイルオーバークリーンアップ Playbook の作成

フェイルバックターゲットとして使用できるように、プライマリークラスターをクリーンアップする Playbook ファイルを作成します。

Playbook ファイルの例: dr-cleanup.yml

---
- name: Clean RHV
  hosts: localhost
  connection: local
  vars:
    dr_source_map: primary
  vars_files:
    - disaster_recovery_vars.yml
  roles:
    - ovirt.ovirt.disaster_recovery

フェイルバックの実行については、プライマリークラスターへのフェイルバック を参照してください。

3.4.5. ソースクラスターとターゲットクラスター間のフェイルバック Playbook の作成

dr_target_host および dr_source_map 変数を使用して、ハイパーコンバージドホストのリストをフェイルバックソースおよびターゲットとして使用する ovirt.ovirt.disaster_recovery ロールに渡す Playbook ファイルを作成します。

Playbook ファイルの例: dr-rhv-failback.yml

---
- name: Failback RHV
  hosts: localhost
  connection: local
  vars:
    dr_target_host: primary
    dr_source_map: secondary
  vars_files:
    - disaster_recovery_vars.yml
    - passwords.yml
  roles:
    - ovirt.ovirt.disaster_recovery

フェイルバックの実行については、プライマリークラスターへのフェイルバック を参照してください。