4.5 リソースフェールオーバーノードの指定

リソースに障害が発生すると、自動的に再起動されます。現在のノードで再起動できない場合、または現在のノードでN回失敗した場合は、別なノードへのフェールオーバーを試みます。新しいノードへのマイグレートを行う基準(migration-threshold)となるリソースの失敗数を定義できます。クラスタ内に3つ以上ノードがある場合、特定のリソースのフェールオーバー先のノードはHigh Availabilityソフトウェアが選択します。

リソースのフェールオーバー先のノードを指定する場合は、次の手順に従います。

  1. 場所の制約の追加または変更に記載の手順に従って、そのリソースの場所の制約を設定します。

  2. メタ属性とインスタンス属性の追加または変更に記載の手順に従って、migration-thresholdメタ属性をそのリソースに追加し、マイグレーションしきい値のを入力します。INFINITY未満の正の値を指定する必要があります。

  3. リソースの失敗回数を自動的に失効させる場合は、メタ属性とインスタンス属性の追加または変更に記載の手順に従ってfailure-timeoutメタ属性をそのリソースに追加し、失敗タイムアウトのを入力します。

  4. リソースの優先的な実行先として、追加のフェールオーバーノードを指定する場合は、追加の場所の制約を作成します。

たとえば、リソース「r1」の場所の制約を設定し、このリソースを「node1」で優先的に実行するように指定したと仮定します。そのノードで実行できなかった場合は、「migration-threshold」を確認して失敗回数と比較します。失敗回数 >= マイグレーションしきい値の場合は、リソースは次の優先実行先として指定されているノードにマイグレートされます。

デフォルトでは、しきい値に達すると、管理者がリソースの失敗回数を手動でリセットするまで(失敗原因を修正してから)、実行できなかったリソースをそのノードで実行することはできません。

ただし、リソースの失敗タイムアウトオプションを設定することで、失敗回数を失効させることができます。したがって、「migration-threshold=2」と「failure-timeout=60s」を設定すると、2回の失敗の後に新しいノードにマイグレートし、1分後に復帰させられる可能性があります(固着性と制約スコアによる)。

マイグレーションしきい値には2つ例外があり、リソースが開始または停止できない場合がこれに相当します。開始時の失敗では失敗回数がINFINITYに設定され、すぐにマイグレーションが行われます。停止時の失敗ではフェンシングが発生します([stonith-enabled]がデフォルトである「true」に設定されている場合)。STONITHリソースが定義されていない場合は(または[stonith-enabled]が「false」に設定されている場合)、リソースのマイグレーションはまったく行われません。

Linux HA Management Clientで失敗回数をクリーンアップするには、左側のペインで管理を選択し、右側のペインで該当するリソースを選択してツールバー内のCleanup Resource (リソースのクリーンアップ)をクリックします。これによって指定したノード上の指定したリソースに対して、コマンドcrm_resource -Cおよびcrm_failcount -Dが実行されます。詳細についてはcrm_resource (8)crm_failcount (8)も参照してください。