3.4. セカンダリークラスターへのフェイルオーバーおよびセカンダリークラスターからのフェイルバックの設定
このセクションでは、サーバーに障害が発生した場合にクラスターがリモートセカンダリークラスターにフェイルオーバーするように設定する方法について説明します。
これを実行するには、以下を行う必要があります。
- リモートボリュームへのバックアップを設定 します。
- フェイルオーバーターゲットとして使用する適切なクラスターを作成します。
- ソースクラスターとターゲットクラスターの マッピングファイルを準備します。
- フェイルオーバー Playbook を準備します。
- プライマリークラスターの クリーンアップ Playbook を準備します。
- フェイルバック Playbook を準備します。
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 は、最初にストレージをデプロイした直後にこのファイルを作成し、デプロイの変更に合わせて最新の状態に保つことを推奨します。これにより、災害時にクラスター内のすべてが安全にフェイルオーバーされるようになります。
Playbook を作成して、マッピングファイルを生成します。
site
、username
、password
、および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
generate_mapping
タグを指定して Playbook を実行し、マッピングファイルを生成します。# ansible-playbook dr-ovirt-setup.yml --tags="generate_mapping"
これにより、マッピングファイル
Disaster_recovery_vars.yml
が作成されます。Disaster_recovery_vars.yml
を編集し、セカンダリークラスターに関する情報を追加します。セカンダリーサイトにデータが同期されているストレージドメインのみを指定するようにしてください。他のストレージドメインは削除できます。マッピングファイルで使用される属性の詳細については、Red Hat Virtualization Disaster Recovery Guide の 付録 A: Mapping File Attributes を参照してください。
3.4.3. ソースクラスターとターゲットクラスター間のフェイルオーバー Playbook の作成
フェイルオーバーを処理する Playbook ファイルを作成します。
パスワードファイル (
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 を参照してください。
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
フェイルバックの実行については、プライマリークラスターへのフェイルバック を参照してください。