ハートビート設定項目の概要

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分間以上) 待機します。これはサーバーをリブートしてクラスターに再参加させるのに十分な時間です。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

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

送信