リソース障害時のリカバリー動作がLifeKeeper for Linux v7.0までとv7.1以降で異なります。
動作概要
v7.1でリソース障害時のリカバリー動作の仕様に一部変更が加わりました。v7.0までは、リソース障害に起因するフェイルオーバーにおいて、障害を検知したノードでのリソース停止(remove)に失敗した場合はそこでフェイルオーバー処理が中断されます。v7.1以降は、リソースの停止に失敗した場合は稼動系ノードの強制再起動を行い、待機系がハートビート切断を検知して、フェイルオーバー処理が続行されます。
v7.0までの動作詳細
以下のリソース階層で稼動系にリソース障害が発生しフェイルオーバーが発生したとします。
上位の「apache-etc.httpd」リソースから下位のリソースに向かって順にリソース停止をしていきます。
途中「mnt/sdb1」リソースにおいてリソースの停止処理が失敗した場合、その時点でフェイルオーバー処理が中断され、待機系へサービスは切替わりません。
v7.1以降の動作詳細
上記「mnt/sdb1」リソースの停止処理が失敗した場合、稼動系で強制再起動が行われます。これを契機に待機系はハートビートの全断線を検出し”稼動系にノード障害が発生した”と判断し、フェイルオーバー処理を継続します。これにより、待機系でリソースの起動処理が行われます。
v7.1未満と同じ動作にする設定
リソース停止に失敗しても、強制再起動させないようにすることも可能です。リソース停止の失敗時の強制再起動を無効としたい場合は、無効としたいノード上で以下のコマンドを実行します。
# flg_create -f no_halt_on_failover_error
ただし、本コマンドを適用した場合、リソース処理の停止に失敗した時はフェイルオーバー処理が失敗してサービスの停止が発生します。適用の際はこの点をご留意頂きました上での適用をお願いいたします。
掲載日: 2010年5月10日
<改定履歴>
[2010年10月29日 改定] LifeKeeper for Linux v7.1 未満のと同じ動作にする設定を追加しました。