最初に、LifeKeeperのフェイルオーバーの概要を紹介します。次に、LifeKeeperではフェイルオーバーテストに関する標準的な機能が実装されていないため、試験においてフェイルオーバーを発生させる方法は擬似的なものとなります。しかし、これらの方法はLifeKeeperの仕様動作に基づいており、試験において以下の2種類のフェイルオーバーを発生させる方法をご紹介します。
LifeKeeperのフェイルオーバーの概要
LifeKeeperのフェイルオーバーは、大きく分けて2つの種類があります。
A.ノード異常によるフェイルオーバー
LifeKeeper が動作している稼働系サーバーが突然停止するなどして、すべてのコミュニケーションパスの切断を検出した場合に待機系がノード異常と判断してフェイルオーバーを行います。
B.リソース異常によるフェイルオーバー
LifeKeeper で管理しているリソースの監視動作で異常を検出することで、リソース異常と判断してフェイルオーバーを行います。
詳細に関しましては、以下の記事をご参照ください。
[Linux][Windows] フェイルオーバーの仕組みについて
ノード異常によるフェイルオーバーを発生させる方法
1.ネットワークを停止させる方法
LifeKeeperは、ハートビート通信を行うためのコミュニケーションパスを設定しています。このコミュニケーションパスによる通信を停止させることで、ノード異常を試験することができます。
具体的には、稼働系ノードでコミュニケーションパスに設定されているすべてのNICを無効化する方法が考えられます。
(※注意)
ただ、NICを無効化するとスプリットブレインが発生する場合がありますので、ご注意ください。
また、共有ディスクを使用している環境では、コミュニケーションパスの全断が発生した場合、フェイルオーバーが発生する前にOSが再起動してしまう場合がありますので、注意が必要です。
詳細に関しましては、以下の記事をご参照ください。
[Linux] 共有ストレージを使用しています。ハートビートが全て切断された場合、どのような挙動を示しますか?
2.シャットダウンストラテジーを変更し、OS再起動かシャットダウンさせる方法
シャットダウンストラテジーが”Switchover Resources”の時、稼働系のOSが停止された際に、待機系が稼働系のノード停止を受けて、コミュニケーションパスの全断を検知します。稼働系から待機系の方向にフェイルオーバー処理を開始します。
シャットダウンストラテジーに関しましては、以下の記事をご参照ください。
[Linux]シャットダウンストラテジー(Shutdown Strategy)の動作について
(※)AWS、AzureやOCIなどのクラウド環境で LifeKeeper を使用している場合、NIC を無効化すると仮想マシンに接続できなくなり、またはスプリットブレインが発生する場合がありますので、ノード異常での試験を行う場合にはこちらのシャットダウンストラテジーの変更での試験実施をご検討ください。
リソース異常によるフェイルオーバーを発生させる方法
1.リソースのローカルリカバリーを無効にする
LifeKeeperでは、リソースに異常が発生した場合、最初にローカルリカバリーを試みます。ローカルリカバリーが成功すれば、フェイルオーバーは発生しません。そのため、リソース異常によるフェイルオーバーを発生させるには、ローカルリカバリーを無効にする必要があります。
LifeKeeper for Linux v9.5.0以降では、ローカルリカバリーを無効にするには、lkpolicyコマンドを使用できます。
- ローカルリカバリーを無効にする
# /opt/LifeKeeper/bin/lkpolicy --set–policy LocalRecovery --off tag=<リソース名>
2.リソースプロセスを手動で停止する
リソース異常によるフェイルオーバーを発生させるには、LifeKeeperで保護されているリソースのプロセスを手動で停止する必要があります。テスト対象となるリソースを構成するプロセスを停止することでフェイルオーバーが発生します。
作業が完了した後、以下のlkpolicyコマンドを使用して、ローカルリカバリーを有効化してください。
- ローカルリカバリーを有効にする
# /opt/LifeKeeper/bin/lkpolicy --set–policy LocalRecovery --on tag=<リソース名>
注意事項
LifeKeeper自体のプロセスを強制終了させる操作は、製品として非推奨の操作ですので、意図的にLIfeKeeperプロセスを停止した後の動作は保証されません。フェイルオーバ試験では必ずLifeKeeperが保護しているリソースの停止で試験を実施してください。
改訂履歴
[公開日:2024年4月16日]