ハートビート設定項目の概要
LifeKeeperのハートビートは、各サーバーが「生存」していることを確認するためにコミュニケーションパスを通じてLifeKeeperのサーバー間で送信される信号です。ハートビートに関しては、LifeKeeperが障害を検知する速さを決定する要素が2つあります。
- 間隔: ハートビート信号を送信する時間の間隔(単位は秒)。また、この時間内に対向サーバーからハートビート信号を含むLCM信号を受信できなかった場合、ハートビート停止と判断する。
- ハートビート回数: コミュニケーションパスが切断していると判定するハートビートの連続失敗回数。
これらのハートビートの値は、LifeKeeperデフォルトファイル /etc/default/LifeKeeper 内の以下の2つの設定項目で指定します。デフォルト値を使用した場合よりも早期にサーバーの障害を検知したい場合は、設定項目を変更することができます。
- LCMHBEATTIME (間隔)
- LCMNUMHBEATS (ハートビート回数)
次の表は、ハートビートの設定項目についてのデフォルト値と最小値の一覧です。
| 設定項目 | デフォルト値 | 最小値 |
| LCMHBEATTIME | 5 | 1 |
| LCMNUMHBEATS | 3 | 2 |
例
LifeKeeperのクラスターで両方の間隔がデフォルト値に設定されていると仮定します。LifeKeeperは、サーバー間で5秒ごとにハートビートを送信します。通信障害によって2回のハートビートが途絶し、3回目のハートビートで再開した場合、LifeKeeperはアクションを実行しません。コミュニケーションパスの切断継続時間がハートビート3回分になった場合は、LifeKeeperはそのコミュニケーションパスを切断と判定します。ただし、他方の冗長的なコミュニケーションパスも切断と判定されるまではフェイルオーバーを開始しません。
ハートビートの設定
設定項目とその値を追加するには、/etc/default/LifeKeeper ファイルを手動で編集する必要があります。通常、デフォルトファイルにはこれらの設定項目のエントリーが含まれていません。設定する値を含む次の行を最終行以降に追加してください。
LCMHBEATTIME=x
LCMNUMHBEATS=y
設定を反映させるために、LifeKeeperを再起動してください。
最小値を下回る値を設定した場合、LifeKeeperはその値を無視して代わりに最小値を採用します。
設定上の考慮事項
- 間隔を5秒未満に設定すると、ネットワークの中断による誤ったフェイルオーバーを発生させるリスクが高くなるため、5秒未満に設定する場合は、コミュニケーションパスをプライベートネットワーク上で構成してください。
- 検証によると、ハートビート回数を2未満にした場合に誤ったフェイルオーバーの発生リスクが高まります。このため、この値は2以上に制限されています。
- 誤ったフェイルオーバーを回避するため、間隔およびハートビート回数の値はどちらもクラスター内のすべてのサーバーで必ず同じ値にする必要があります。このため、これらの値を編集する前に両方のサーバーでLifeKeeperを停止しておく必要があります。LifeKeeperの稼働開始後、アプリケーションを保護している状態でハートビートの設定項目を編集する場合は、コマンド "/opt/LifeKeeper/bin/lkstop -f" を使用できます。このコマンドはLifeKeeperを停止しますが、保護下のアプリケーションは停止しません。
- LCMHBEATTIMEおよびLCMNUMHBEATSの値に上限値はありません。ただし、非常に大きい数字に値を設定すると、LifeKeeper の障害検知能力は著しく損なわれます。例えば、両方の値を25に設定した場合、サーバー障害を検知するまでLifeKeeperは625秒間 (10分間以上) 待機します。これはサーバーをリブートしてクラスターに再参加させるのに十分な時間です。



このトピックへフィードバック