対象製品
LifeKeeper for Linux
LifeKeeperでは以下のような条件において、データ保護、または、フェイルオーバ処理を進めるために稼働系のOSを再起動させます。
※以下に記載している条件以外でLifeKeeperがOSを再起動させる処理はございません。
■共有ディスク構成にてコミュニケーションパス(ハートビート)のみがすべて全断した場合。
次のような条件で LifeKeeperは稼働系 OSを再起動させます。
・共有ディスク構成、かつ、
・SCSI Reserveによるフェンシングを行っている環境、かつ、
・コミュニケーションパス(ハートビート)のみがすべて全断した場合。
この動作は、スプリットブレインによるデータ破壊を抑制することを目的に LifeKeeperが稼働系 OSを再起動させる仕様です。
詳細な動作は以下のサイトに記載しております。
[Linux] 共有ストレージを使用しています。ハートビートが全て切断された場合、どのような挙動を示しますか?
https://lkdkuserportal.sios.jp/hc/ja/articles/360037887931
■リソース障害によるフェイルオーバ時にリソース停止に失敗した場合。(LifeKeeper v7.1以降)
次のような条件で LifeKeeperは稼働系OSを再起動させます。
・LifeKeeperの監視処理にてリソース障害を検知、かつ、
・フェイルオーバ処理が開始される、かつ、
・稼働系のリソース停止に失敗した場合。
この動作は稼働系でリソース停止に失敗してもフェイルオーバ処理を進めるために LifeKeeperが稼働系 OSを再起動させる仕様です。
LifeKeeperが稼働系 OSを再起動させることにより、対向先ノードではコミュニケーションパス全断を検知しフェイルオーバを継続します。
以下のような動作になります。
(1)稼働系でリソース障害を検知。
(2)障害を検知したリソースでローカルリカバリを実行。
ここで、ローカルリカバリに成功するとフェイルオーバは発生しません。(再起動も発生しません)
ローカルリカバリに失敗しますと、フェイルオーバ処理へ遷移します。
(3)フェイルオーバ処理が開始されますと、稼働系リソースの停止処理が実行されます。
(4)稼働系リソースの停止処理に失敗しますと、LifeKeeperが稼働系OSを再起動させます。
(5)対向先ノードは稼働系ノードの再起動を検知しフェイルオーバ処理を続行します。
上記の動作について、稼働系リソースの停止に失敗したときにフェイルオーバ処理を停止させる動作に変更することも可能です。
その場合は、無効としたいノード上で以下のコマンドを実行します。
# flg_create -f no_halt_on_failover_error
ただし、本コマンドを適用した場合、リソース処理の停止に失敗した時はフェイルオーバー処理が失敗してサービスの停止が発生します。適用の際はこの点をご留意頂きました上での適用をお願いいたします。
なお、手動によるスイッチオーバ操作(LifeKeeperGUIやperform_actionコマンドなどによる操作)で、稼働系リソースの停止に失敗した場合は、そこでスイッチオーバ処理が停止します。
この場合、リソース停止の原因を取り除いた後、改めてスイッチオーバ操作を実行してください。
■Quorum/Witnessオプションを導入している環境にてコミュニケーションパス(ハートビート)のみがすべて全断した場合。
次のような条件で LifeKeeperは稼働系 OSを再起動させます。
・Quorum/Witnessオプションを導入、かつ、
・QUORUM_LOSS_ACTION を fastboot、または fastkillと設定している環境、かつ、
・コミュニケーションパス(ハートビート)全断を検知する、かつ、
・稼働系ノードで QUORUMを喪失した場合。
この動作は QUORUM_LOSS_ACTION の設定に基づく仕様です。(fastkillの場合はOSをシャットダウンさせます)
■Watchdogを設定し、Watchdogによりエラーやハングアップを検知した場合。
この動作は Watchdogの仕様となります。
■STONITHを設定し、コミュニケーションパス(ハートビート)のすべてが全断した場合。
この動作は STONITH による仕様となります。
<改定履歴>
[2021年7月5日] 新規掲載