6.6. ホストの耐障害性

6.6.1. ホストの高可用性

Red Hat Enterprise Virtualization Manager はフェンシングを使用してクラスター内のホストを応答可能な状態に維持します。Non Responsive のホストは、Non Operational のホストとは異なります。Manager は Non Operational のホストとは通信することができますが、ホストの設定は正しくありません (例: 論理ネットワークが見つからないなど)。Manager は、Non Responsive のホストとは通信できません。
電源管理デバイスを使用するホストが Manager と通信できなくなった場合には、そのホストを管理ポータルからフェンス (リブート) することができます。そのホスト上で実行されている仮想マシンはすべて停止され、高可用性の仮想マシンが別のホストで起動されます。
電源管理操作はすべて、Red Hat Enterprise Virtualization Manager が直接行うのではなく、プロキシーホストを使用して実行します。電源管理の操作には、少なくとも 2 台のホストが必要です。
フェンシングにより、クラスターは予期せぬホスト障害に対応可能となる上、パワーセービング、負荷分散、および仮想マシンの可用性の各ポリシーが強化されます。ホストの電源管理デバイスにはフェンシングパラメーターを設定し、その正確性を時々テストすることを推奨します。
電源管理のパラメーターを使用すると、ホストを自動的にフェンスすることができます。手動で行うには、ホストを右クリックすると表示されるメニューのオプションを使用します。フェンシングの操作では、応答なしのホストがリブートされて、所定時間内にアクティブな状態に戻らない場合には、手動による介入とトラブルシューティングが行われるまで、応答なしの状態が続きます。
ホストが高可用性の仮想マシンを実行する必要がある場合は、電源管理を有効にして設定する必要があります。

6.6.2. Red Hat Enterprise Virtualization におけるプロキシーを使用した電源管理

Red Hat Enterprise Virtualization Manager はフェンスエージェントとは直接通信を行いません。その代わりに、Manager はプロキシーを使用して電源管理のコマンドをホストの電源管理デバイスに送ります。Manager は VDSM を利用して電源管理デバイスの操作を実行し、環境内の別のホストがフェンシングプロキシーとして使用されます。
以下のいずれかを選択することができます。
  • フェンシングが必要なホストと同じクラスター内にある任意のホスト
  • フェンシングが必要なホストと同じデータセンター内にある任意のホスト
有効なフェンシングプロキシーホストのステータスは UP または Maintenance です。

6.6.3. ホスト上でのフェンシングパラメーターの設定

ホストのフェンシング用のパラメーターを編集するには、新規ホスト または ホストの編集 ウィンドウの 電源管理 フィールドを使用します。電源管理により、システムは Remote Access Card (RAC) などの追加のインターフェースを使用して、問題のあるホストをフェンシングすることができるようになります。
電源管理操作はすべて、Red Hat Enterprise Virtualization Manager が直接行うのではなく、プロキシーホストを使用して実行します。電源管理の操作には、少なくとも 2 台のホストが必要です。

手順6.14 ホスト上でのフェンシングパラメーターの設定

  1. ホスト リソースタブ、ツリーモード、または検索機能を使用して、結果一覧に表示された候補の中から対象のホストを選択します。
  2. 編集 をクリックし、ホストの編集 ウィンドウを開きます。
  3. 電源管理 タブをクリックします。
    電源管理の設定

    図6.2 電源管理の設定

  4. 電源管理を有効にする のチェックボックスを選択し、フィールドを有効にします。
  5. kdump 統合 チェックボックスを選択して、カーネルクラッシュダンプの実行中にホストがフェンシングされないようにします。

    重要

    既存のホストに Kdump 統合 を有効にする場合には、kdump を設定するためにそのホストを再インストールする必要があります。 「仮想化ホストの再インストール」を参照してください。
  6. オプションで、ホストのクラスターの スケジューリングポリシー がホストの電源管理を制御しないようにするには、電源管理のポリシー制御を無効にする のチェックボックスを選択します。
  7. プラス (+) のボタンをクリックして、新規電源管理デバイスを追加します。フェンスエージェントの編集 ウィンドウが開きます。
    フェンスエージェントの編集

    図6.3 フェンスエージェントの編集

  8. 電源管理デバイスの アドレスユーザー名、および パスワード を入力します。
  9. ドロップダウンリストから、電源管理デバイスの タイプ を選択します。

    注記

    Red Hat Enterprise Virtualization 3.5 以降のバージョンでは、カスタムの電源管理デバイスを使用することができます。カスタムの電源管理デバイスの設定方法については、https://access.redhat.com/articles/1238743 の記事を参照してください。
  10. 電源管理デバイスがホストとの通信に使用する SSH ポート 番号を入力します。
  11. 電源管理デバイスのブレードの特定に使用する スロット 番号を入力します。
  12. 電源管理デバイスの オプション を入力します。'key=value' エントリーのコンマ区切りリストを使用してください。
  13. 電源管理デバイスからホストへのセキュアな接続を有効にするには、セキュリティー保護 のチェックボックスを選択します。
  14. テスト ボタンをクリックして、設定が正しいことを確認します。検証が正常に完了すると、「Test Succeeded, Host Status is: on」というメッセージが表示されます。

    警告

    電源管理のパラメーター (ユーザー ID、パスワード、オプションなど) がテストされるのは、セットアップ時のみで、それ以降は手動で実行します。パラメーターが正しくないことを警告するアラートを無視した場合や、電源管理デバイスで変更されたパラメーターが Red Hat Enterprise Virtualization Manager では同じように変更されていない場合には、フェンシングを最も必要とする時に失敗してしまう可能性があります。
  15. OK をクリックして フェンスエージェントの編集 ウィンドウを閉じます。
  16. 電源管理 タブでは、オプションとして 詳細パラメーター の箇所を展開し、上下に移動するボタンを使用して Manager がホストの cluster および dc (データセンター) でフェンシングプロキシーを探す順序を指定します。
  17. OK をクリックします。
ホストの一覧に戻ります。ホスト名に横の感嘆符が表示されなくなった点に注意してください。これは、電源管理の設定が適切に完了したことを意味します。

6.6.4. fence_kdump の詳細設定

kdump

kdump サービスは、新しい Red Hat Enterprise Linux 6.6 および 7.1 のホストと Hypervisor ではデフォルトで実装されています。これらのバージョンよりも前のホストでは、Kdump 統合 は有効にすることはできないので、この機能を使用するにはホストをアップグレードする必要があります。

ホストを選択して、詳細ペインの 全般 タブで kdump サービスのステータスを確認します。
  • 有効: kdump が適切に設定されており、kdump サービスが実行中です。
  • 無効: kdump サービスは実行されていません (その場合には、kdump 統合は適切に機能しません)。
  • 不明: kdump ステータスを報告しない、旧バージョンの VDSM を使用しているホストでのみ発生します。
kdump の使用に関する詳しい情報は、Red Hat Enterprise Linux 7 の場合には『Kernel Crash Dump Guide』、Red Hat Enterprise Linux 6 の場合には『導入ガイド』の「kdump クラッシュリカバリーサービス」のセクションを参照してください。
fence_kdump

新規ホスト または ホストの編集 ウィンドウの 電源管理 タブで Kdump 統合 を有効にすると、標準的な fence_kdump 構成が設定されます。環境のネットワーク設定が単純で、かつ Manager の FQDN が全ホストで解決可能な場合に使用するには、デフォルトの fence_kdump 設定で十分です。

ただし、fence_kdump の詳細設定が必要となる場合があります。より複雑なネットワークには、Manager と fence_kdump リスナーのいずれか一方または両方の設定を手動で変更する必要がある可能性があります。たとえば、Kdump 統合 を有効にした全ホストで Manager の FQDN が解決できない場合には、engine-config を使用して、適切なホスト名または IP アドレスを設定することができます。
engine-config -s FenceKdumpDestinationAddress=A.B.C.D
以下の例のような場合には、設定の変更も必要となる可能性があります。
  • Manager に 2 つの NIC があり、一方がパブリックで、他方が fence_kdump メッセージの指定送信先の場合。
  • 異なる IP またはポートで fence_kdump リスナーを実行する必要がある場合。
  • fence_kdump 通知メッセージの間隔をカスタム設定して、パッケージの損失を防ぐ必要がある場合。
デフォルト設定の変更は、ネットワーク設定がより複雑な場合にのみ必要となるので、 カスタマイズされた fence_kdump 検出設定は上級ユーザーのみが使用することを推奨します。fence_kdump リスナーの設定オプションについては、「fence_kdump リスナーの設定」を参照してください。Manager 上での kdump の設定については、「Manager での fence_kdump の設定」を参照してください。

6.6.4.1. fence_kdump リスナーの設定

fence_kdump リスナーの設定を編集します。この手順は、デフォルトの設定が十分でない場合にのみ必要です。

手順6.15 fence_kdump リスナーの手動設定

  1. /etc/ovirt-engine/ovirt-fence-kdump-listener.conf.d/ に新規ファイルを作成します (例: my-fence-kdump.conf)。
  2. OPTION=value の構文でカスタマイズの設定を入力し、ファイルを保存します。

    重要

    編集した値は、「Manager での fence_kdump の設定」の fence_kdump リスナーの設定オプションの表に記載したように、 engine-config でも変更する必要があります。
  3. fence_kdump リスナーを再起動します。
    # service ovirt-fence-kdump-listener restart
以下のオプションは、必要に応じてカスタマイズすることができます。

表6.6 fence_kdump リスナーの設定オプション

変数説明デフォルト注記
LISTENER_ADDRESSfence_kdump メッセージを取得する IP アドレスを定義します。0.0.0.0このパラメーターの値を変更する場合には、engine-configFenceKdumpDestinationAddress の値と一致する必要があります。
LISTENER_PORTfence_kdump メッセージを受信するポートを定義します。7410このパラメーターの値を変更する場合には、engine-configFenceKdumpDestinationPort の値と一致する必要があります。
HEARTBEAT_INTERVALリスナーの Heartbeat の更新間隔を秒単位で定義します。30このパラメーターの値を変更する場合には、engine-configFenceKdumpListenerTimeout の値の半分以下にする必要があります。
SESSION_SYNC_INTERVALリスナーのホストのメモリー内の kdump セッションをデータベースと同期する間隔を秒単位で定義します。5このパラメーターの値を変更する場合には、engine-configKdumpStartedTimeout の値の半分以下にする必要があります。
REOPEN_DB_CONNECTION_INTERVAL以前に利用できなかったデータベース接続を再開する間隔を秒単位で定義します。30-
KDUMP_FINISHED_TIMEOUTkdump を実行するホストからメッセージを最後に受信した後に、ホストの kdump フローが FINISHED とマークされるまでのタイムアウトの最大値を秒単位で定義します。60このパラメーターの値を変更する場合には、engine-configFenceKdumpMessageInterval の値の 2 倍以上にする必要があります。

6.6.4.2. Manager での fence_kdump の設定

Manager の kdump 設定を編集します。この手順は、デフォルトの設定が十分でない場合にのみ必要です。現在の設定値は、以下のコマンドを実行すると確認できます。
# engine-config -g OPTION

手順6.16 engine-config を使用した kdump の手動設定

  1. engine-config コマンドを使用して kdump の設定を編集します。
    # engine-config -s OPTION=value

    重要

    編集した値は、Kdump の設定オプション の表に記載した fence_kdump リスナーの設定ファイルでも変更する必要があります。「fence_kdump リスナーの設定」を参照してください。
  2. ovirt-engine サービスを再起動します。
    # service ovirt-engine restart
  3. 必要な場合には、Kdump 統合 が有効化されている全ホストを再インストールします (以下の表を参照)。
以下のオプションは、engine-config を使用して設定することができます。

表6.7 Kdump の設定オプション

変数説明デフォルト注記
FenceKdumpDestinationAddressfence_kdump メッセージの送信先のホスト名または IP アドレスを定義します。この値が指定されていない場合には、Manager の FQDN が使用されます。空の文字列 (Manager の FQDN が使用されます)このパラメーターの値を変更する場合には、fence_kdump リスナー設定ファイルの LISTENER_ADDRESS の値と一致しなければなりません。また、Kdump 統合 が有効化された全ホストを再インストールする必要があります。
FenceKdumpDestinationPortfence_kdump メッセージを送信するポートを定義します。7410このパラメーターの値を変更する場合には、fence_kdump リスナー設定ファイルの LISTENER_PORT の値と一致しなければなりません。また、Kdump 統合 が有効化された全ホストを再インストールする必要があります。
FenceKdumpMessageIntervalfence_kdump のメッセージの送信間隔を秒単位で定義します。5このパラメーターの値を変更する場合には、fence_kdump リスナー設定ファイルの KDUMP_FINISHED_TIMEOUT の値の半分以下にする必要があります。また、Kdump 統合 が有効化された全ホストを再インストールする必要があります。
FenceKdumpListenerTimeout最後の Heartbeat の後に、fence_kdump リスナーが実行中と見なされなくなるまでのタイムアウトの最大値を秒単位で定義します。90このパラメーターの値を変更する場合には、fence_kdump リスナー設定ファイルの HEARTBEAT_INTERVAL の値の 2 倍以上にする必要があります。
KdumpStartedTimeoutkdump を実行するホストからの最初のメッセージを受信するまで (ホストの kdump フローが開始したことを検知するまで) の待ち時間のタイムアウトの最大値を定義します。30このパラメーターの値を変更する場合には、fence_kdump リスナー設定ファイルの SESSION_SYNC_INTERVAL および FenceKdumpMessageInterval の値の 2 倍以上にする必要があります。

6.6.5. ホストのソフトフェンシング

ホストは、予期しない問題が原因となって応答なしの状態になる場合があります。VDSM は要求に応答できませんが、VDSM に依存している仮想マシンは稼働を続け、アクセス可能な状態のままとなります。このような状況が発生した場合には、VDSM を再起動すると、VDSM が応答可能な状態に戻り、問題は解決します。
Red Hat Enterprise Virtualization 3.3 から「SSH を介したソフトフェンシング」の機能が導入されました。Red Hat Enterprise Virtualization 3.2 以前のバージョンでは、応答のないホストは外部のフェンスデバイスによってのみフェンシンされていました。Red Hat Enterprise Virtualization 3.3 以降では、フェンシングプロセスが拡張され、「SSH ソフトフェンシング」が追加されました。これは、Manager が SSH を使用して、応答しない状態のホストで VDSM の再起動を試みるプロセスです。Manager が SSH を使用した VDSM の再起動に失敗した場合には、フェンシングは外部のフェンスエージェントの責任となります (外部のフェンスエージェントが設定されている場合)。
SSH ソフトフェンシングが機能するためには、ホストでフェンシングが設定および有効化されており、かつ有効なプロキシーホスト (同じデータセンター内にある、ステータスが Up の第 2 のホスト) が存在している必要があります。Manager とホスト間の接続がタイムアウトになると、次のような状態となります
  1. 初回のネットワーク障害発生時には、ホストのステータスが「connecting」に変わります。
  2. Manager は次に VDSM に対してステータス確認を 3 回試みるか、ホストの負荷によって決定される時間が経過するのを待ちます。この時間を決定する計算式は、TimeoutToResetVdsInSeconds (デフォルトは 60 秒) + [DelayResetPerVmInSeconds (デフォルトは 0.5 秒)]*(ホスト上で実行中の仮想マシン数) + [DelayResetForSpmInSeconds (デフォルトは 20 秒)] * 1 (ホストが SPM として稼働している場合) または 0 (ホストが SPM としては稼働していない場合) の設定値によって設定されます。VDSM が応答する時間を最大限にするために、Manager は上記のオプション (VDSM のステータス確認を 3 回試みる、または上記の計算式で決定される時間の経過を待つ) でいずれか長い方を選択します。
  3. この時間が経過してもホストが応答しない場合には、SSH を介して vdsm restart が実行されます。
  4. vdsm restart を実行しても、ホストと Manager 間の接続が再度確立されない場合には、ホストのステータスが Non Responsive に変わります。電源管理が設定されている場合には、フェンシングは外部のフェンスエージェントによって引き継がれます。

注記

SSH を介したソフトフェンシングは、電源管理を設定していないホストに対しても実行することが可能です。これは、「フェンシング」とは異なります。フェンシングは、電源管理が設定されたホストでしか実行することはできません。

6.6.6. ホストの電源管理機能の使用方法

概要

ホストに電源管理の設定を行うと、管理ポータルから数多くのオプションにアクセスすることができるようになります。電源管理デバイスには、それぞれカスタマイズ可能なオプションがありますが、ホストを起動、停止、再起動する基本的なオプションは全デバイスでサポートされます。

手順6.17 ホストの電源管理機能の使用方法

  1. ホスト リソースタブ、ツリーモード、または検索機能を使用して、結果一覧に表示された候補の中から対象のホストを選択します。
  2. 電源管理 ドロップダウンメニューをクリックします。
  3. 以下のオプションのいずれかを選択します。
    • 再起動: このオプションはホストを停止させて、ホストのステータスが Down に変わるのを待ちます。ホストが Down の状態となったことをエージェントが確認すると、高可用性の仮想マシンが同じクラスター内の別のホスト上で再起動します。次にエージェントは、このホストを再起動させて、ホストの準備が整うと、ステータスが Up に変わります。
    • 起動: このオプションは、ホストを起動させて、クラスターに追加します。使用する準備が整うと、ステータスが Up に変わります。
    • 停止: このオプションは、ホストの電源を切断します。このオプションを使用する前には、そのホスト上で実行中の仮想マシンが同じクラスター内の別のホストに移行済みであることを確認してください。そうでない場合には、仮想マシンがクラッシュし、高可用性のマシンのみが別のホストで再起動します。ホストが停止すると、ステータスは Non Operational に変わります。

    重要

    1 台のホストに 2 つのフェンスエージェントを定義すると、それらのエージェントは同時もしくは順次に使用することができます。同時エージェントの場合に、ホストを停止させるには、両方のエージェントが停止のコマンドに応答する必要があります。また、一方のエージェントが起動のコマンドに応答すると、ホストが起動します。順次エージェントの場合に、ホストを起動または停止させるには、プライマリーエージェントが最初に使用され、それが失敗するとセカンダリーエージェントが使用されます。
  4. 上記のいずれかのオプションを選択すると、確認のウィンドウが表示されます。OK をクリックして確定し、続行します。
結果

選択したアクションが実行されます。

6.6.7. 応答なしのホストの手動によるフェンシングまたは分離

概要

ハードウェア障害などが原因で、ホストが予期せず応答なしの状態となった場合には、環境のパフォーマンスに多大な影響を及ぼす可能性があります。電源管理デバイスを使用していない場合や、正しく設定されていない場合は、ホストを手動でリブートすることができます。

警告

ホストを手動でリブートした場合以外は、ホストがリブートされていることを確認 のオプションは使用しないでください。ホストの稼働中にこのオプションを使用すると、仮想マシンのイメージが破損してしまう場合があります。

手順6.18 応答なしのホストの手動によるフェンシングまたは分離

  1. ホスト タブでホストを選択します。ステータスは Non Responsive と表示されるはずです。
  2. ホストを手動で再起動します。これは、物理的にラボに入って、ホストをリブートすることを意味します。
  3. 管理ポータルで、ホストエントリーを右クリックし、ホストがリブートされていることを確認 のボタンを選択します。
  4. ホストがシャットダウンまたは再起動されていることを確認するメッセージが表示されます。操作を承認 チェックボックスにチェックを入れて、OK をクリックします。
結果

ホストを手動でリブートして、高可用性の仮想マシンがアクティブなホストで起動できるようになりました。管理ポータルで手動によるフェンシング操作を確認し、ホストがオンライン状態となりました。