LifeKeeper for Linux における systemd を採用する OS との組み合わせで発生する問題について

■ 本記事の目的
本記事は、Red Hat Enterprise Linux 7.x (Cent OS 7.x / Oracle Linux 7.x を含む)及び SUSE Linux Enterprise Server 12.x などの
systemd によるサービス制御を導入している OS 上で、LifeKeeper を運用する場合に生じうる動作上の問題についてのご報告と、
それに付随する操作上のお願い事項について記載しています。
 
 
■ 問題の概要と状況
OS のシャットダウンを実行した場合に、LifeKeeper の停止処理と、OS の systemd による停止処理が競合する場合があります。
詳細については以下にご報告いたしますが、あくまで OS のシャットダウン操作時のみ生じるものであり、
OS 異常等のシステム障害に際しては、本問題は該当いたしませんのでご安心ください。

OS のシャットダウンの際に、LifeKeeper による停止処理が systemd よりも先に行われた場合は問題は生じませんが、
systemd が LifeKeeper の保護対象を先に停止した場合、タイミングによっては LifeKeeper の監視処理(quickCheck) が
systemd による停止を障害と判断します。

先に停止したサービスの種類にもよりますが、障害検知後の一般的な動作としては、まず local recovery が行われ、
それで回復しない場合はスタンバイノードへの failover を試みます。

また、表面上の動作としては同じですが、原因の発生箇所により、問題を2つのパターンに分けることができます。

1.
LifeKeeper 自身が依存しているサービスは、本来はLifeKeeperが終了した後で停止されなければなりませんが、
systemd により LifeKeeper の停止処理とサービスの停止処理が並列的に行われます。
そのためタイミングによっては、LifeKeeper の停止処理中にエラーが生じます。

状況:
LifeKeeper for Linux v9.1.1 で解決済みです。

2.
LifeKeeper が保護しているリソースの起動/停止は、本来は LifeKeeper によって制御されなければなりませんが、
OS 停止時に systemd による停止がLifeKeeperのリソース停止処理に先んじて実行されるケースがあります。

状況:
LifeKeeper for Linux v9.1.2 で解決済みです。
 
 
■ 問題の回避策
上記の問題は、いずれも v9.1.2 以降で解消していますので、該当バージョン未満をご利用の場合はバージョンアップをご検討ください。
 
 


 
改訂履歴

[公開日:2017年6月9日]
 

return top