OSとしてOracle Linux (UEK)またはSUSE Linux Enterprise Serverを利用しているシステム上で、LifeKeeper for Linuxの動作が不安定になるという事例が確認されました。例としてLifeKeeperによる起動・停止などのリソースの制御が正しく動作しない、またLifeKeeperのプロセスが停止するなどの現象が発生します。
影響を受ける環境
環境情報
本問題が発生する可能性のあるOS/カーネルバージョンは以下の通りです。今後の調査により、より多くのOS/カーネルバージョンが該当する可能性があります。現時点(2025年2月時点)ではRedHat Enterprise Linuxでの本問題の発生は確認されておりませんが、将来のカーネルに対する評価を定期的に実施し、本問題の発生有無及び発生した場合の対策の有効性について確認を行います。今後本問題の対象となるOS、カーネルが発見された場合は適宜情報をアップデートいたします。
Oracle Linux(UEK)
Oracle Linux バージョン | UEK バージョン | UEK カーネルバージョン |
9 | UEK7 | 5.15.0-302.167.4以降 |
8 | UEK7 | 5.15.0-302.167.4以降 |
8 | UEK6 | 5.4.17-2136.337.2以降 |
7 | UEK6 | 5.4.17-2136.337.2以降 |
SUSE Linux Enterprise Server
SUSE Linux Enterprise Serverバージョン | Service Pack リリース | カーネルバージョン |
15 | SP6 | 6.4.0-150600.23.30以降 |
発生頻度
上記の環境情報に該当するOS/カーネルをご利用の場合は、高い頻度で発生いたします。
事象発生の原因と対策
原因
プロセスのアドレス空間の配置をランダム化するLinuxカーネルの機能(Address Space Layout Randomization (ASLR))に関する仕様変更によるものです。
本事象の対策
LifeKeeperの SHMADDR パラメータでLifeKeeperの共有メモリの位置を移動することで、本問題の発生を抑止することが可能です。以下の手順をクラスターを構成する全てのサーバーで実行してください。なお本手順はリソースを稼働中のサーバーに順次切り替えながら実行するのではなく、クラスターを構成する全てのサーバーを停止した上で行ってください。
- クラスターを構成する全てのサーバーでlkstop コマ ンドを実行しLifeKeeperを停止します
- lkstop -f は使用しないでください
- /etc/default/LifeKeeper の最後に以下のパラメータを追加してください
SHMADDR=0x6ff00000
- lkstart コマンドでLifeKeeperを起動してください
- 以下のコマンドを実行し0x6ff00000が設定されていれば対策は完了です
# pmap `pgrep '^lcm$'` | grep shmid 000000006ff00000 256K rw-s- [ shmid=0x801a ]
上記対策にてご案内しているパラメータ設定は、LifeKeeper for Linuxの次期バージョン(v9.9.1)より初期値として組み込まれる予定です。
改訂履歴
[公開日:2025年3月7日]