ハートビート(計算)


Heartbeat_(computing)
コンピュータサイエンスでは、ハートビートは、ハードウェアまたはソフトウェアによって生成される周期的な信号であり、通常の動作を示したり、コンピュータシステムの他の部分を同期したりします。 ハートビートメカニズムは、ミッションクリティカルなシステムで一般的な手法の1つであり、ネットワーククラスター(マスターサーバーによって管理される)は、クラスター上の残りの冗長ノードを使用して、障害のあるノードの負荷を引き継ぎ、一定のサービスを提供することにより、システムの自動適応とリバランスを目的としています。 通常、ハートビートは秒単位の定期的な間隔でマシン間で送信されます。ハートビートメッセージ。エンドポイントが一定時間(通常は数ハートビート間隔)ハートビートを受信しない場合、ハートビートを送信するはずだったマシンに障害が発生したと見なされます。ハートビートメッセージは通常、発信者の起動から発信者のシャットダウンまで、定期的または定期的にノンストップで送信されます。宛先は、予想される到着期間中にハートビートメッセージの欠如を識別した場合、発信元が失敗したか、シャットダウンしたか、または通常は使用できなくなったと判断する場合が

コンテンツ
1 ハートビートプロトコル
1.1 設計と実装
2 ハートビートネットワーク
3 も参照してください
4 ノート
5 参考文献

ハートビートプロトコル
ハートビートプロトコルは通常、フローティングIPアドレスなどのリソースの可用性をネゴシエートおよび監視するために使用されます。この手順では、クラスター内のすべてのノードにネットワークパケットを送信して、到達可能性を確認します。通常、ハートビートがマシンで開始されると、ハートビートネットワーク上の他のマシンとの選択プロセスを実行して、リソースを所有しているマシンがある場合はそれを判別します。3台以上のマシンのハートビートネットワークでは、ネットワークの2つの半分が機能していても、相互に通信できない可能性があるパーティショニングを考慮することが重要です。このような状況では、リソースが各パーティションの1台のマシンではなく、1台のマシンによってのみ所有されることが重要です。
ハートビートはマシンの状態を示すために使用されることを目的としているため、ハートビートプロトコルとそれが実行されるトランスポートが可能な限り信頼できることが重要です。誤警報が原因でフェイルオーバーを引き起こすことは、リソースによっては非常に望ましくない場合がまた、実際の障害に迅速に対応し、ハートビートメッセージの信頼性をさらに高めることも重要です。このため、ハートビートを複数のトランスポートで実行することが望ましい場合がよくたとえば、UDP / IPを使用するイーサネットセグメントとシリアルリンク。
ノードの「クラスターメンバーシップ」は、ネットワーク到達可能性のプロパティです:マスターがノードと通信できる場合X
{ x}

 、それはクラスターのメンバーと見なされ、それ以外の場合は「デッド」と見なされます。ヘッドビートプログラムは全体として、さまざまなサブシステムで構成されています:
ハートビートサブシステム(HS):一連のキープアライブまたは「ヒアビートメッセージ」を通じてクラスター内のノードの存在を監視するサブシステム。
クラスタマネージャ(CM):クラスタ内のサブシステム(通常はマスターサーバー)。「クラスタメンバー」を追跡し、どのリソースがどのノードにあるかを記録します。
クラスター遷移(CT):ノードがクラスターに参加またはクラスターから離脱するとき、このサブシステムは、負荷を分散するためにマスターのリバランスと再構成のイベントをトリガーする目的で、そのような発生を追跡する責任が
ハートビートメッセージは、大規模なクラスターでのブロードキャストやマルチキャストなどの手法を介して定期的に送信されます。 CMはクラスター全体でトランザクションを行うため、最も一般的なパターンは、ハートビートメッセージをすべてのノードに送信し、非ブロッキング方式で応答を「待機」することです。ハートビートまたはキープアライブメッセージは、アプリケーションに関連しないクラスター制御メッセージの圧倒的多数であり、クラスターのすべてのメンバーにも送信されるため、主要な重要なシステムには、ハートビートを配信するシリアルポートなどの非IPプロトコルも含まれます。

設計と実装
マスターサーバー上のすべてのCMは、管理するノードごとに3つの状態(Down、Init、およびAlive)を持つ有限状態マシンを維持します。新しいノードが参加するたびに、CMはノードの状態をDownからInitに変更し、「起動メッセージ」をブロードキャストします。このメッセージは、ノードが一連の起動手順の実行を受信します。次に、確認メッセージで応答し、CMはノードをクラスターのメンバーとして含め、ノードの状態をInitからAliveに遷移します。アライブ状態のすべてのノードは、HSサブシステムから定期的にブロードキャストハートビートメッセージを受信し、タイムアウト範囲内に確認メッセージが返されることを期待します。CMが確認応答ハートビートメッセージを受信しなかった場合、ノードは使用不可と見なされ、CMによってそのノードのAliveからDownへの状態遷移が行われます。実行する手順またはスクリプト、および各状態遷移間で実行するアクションは、システムの実装の詳細です。

ハートビートネットワーク
ハートビートネットワークは、クラスター内のノードによってのみ共有されるプライベートネットワークであり、クラスターの外部からはアクセスできません。これは、各ノードのステータスを監視し、クラスターの動作を維持するために必要なメッセージを相互に通信するために、クラスターノードによって使用されます。ハートビート方式は、ネットワークを介して送信される信号のFIFOの性質を使用します。すべてのメッセージが受信されたことを確認することにより、システムはイベントを適切に順序付けることができるようにします。
この通信プロトコルでは、すべてのノードが指定された間隔でメッセージを送り返します。たとえば、デルタは、実際には、ノードが動作していてハートビートがあることを確認します。これらのメッセージは、ネットワークに遅延メッセージが含まれていないことを確認するのに役立つ制御メッセージと見なされます。「同期」と呼ばれる受信ノードは、受信したメッセージの順序付きリストを維持します。指定されたマークされた時刻より後のタイムスタンプを持つメッセージがすべてのノードから受信されると、FIFOプロパティによってメッセージが順序付けられていることが保証されるため、システムはすべてのメッセージが受信されたと判断します。
一般に、すべてのアプリケーションに最適なデルタを選択することは困難です。デルタが小さすぎると、必要なオーバーヘッドが多すぎます。デルタが大きすぎると、すべてが次のハートビート信号を待機するため、パフォーマンスが低下します。

も参照してください
ウォッチドッグタイマー、コンピューターの誤動作を検出して回復するために使用される電子タイマー
ハートブリードの脆弱性

ノート
^ Hou&Huang 2003、p。1.1。
^ 「 ハートビートの定義」。pcmag.com百科事典。
^ Robertson 2000、p。1.1。
^ US 4710926、Donald W. Brown、James W. Leth、James E. Vandendorpe、「分散処理システムでの障害回復」、1987年12月1日公開  ^ Kawazoe Aguilera、マルコス; 陳、魏; サム・トゥエグ(1997)「ハートビート:静止状態の信頼できる通信のためのタイムアウトのない障害検出器」(PDF)。分散アルゴリズム。ベルリン、ハイデルベルク:スプリンガーベルリンハイデルベルク。pp。126–140。土井:10.1007/bfb0030680。ISBN
 978-3-540-63575-8。ISSN0302-9743 。_ ^ Robertson 2000、p。2.2。
^ ロバートソン2000、p。1-2。
^ ロバートソン2000、p。2-3。
^ ロバートソン2000、p。5.5。
^ Li、Yu&Wu 2009、p。2.2。
^ Li、Yu&Wu 2009、p。2-3。
^ Nikoletseas 2011、p。304。
^ Nikoletseas 2011、p。304-305。
^ Nikoletseas 2011、p。306。

参考文献
Nikoletseas、Sotiris; Rolim、JoséDP、eds。(2011)。「センサーネットワークにおける分散コンピューティングの理論的側面」。理論的コンピュータサイエンスのモノグラフ。EATCSシリーズ。ベルリン、ハイデルベルク:スプリンガーベルリンハイデルベルク。Bibcode:2011tadc.book…..N。土井:10.1007/978-3-642-14849-1。ISBN 978-3-642-14848-4。ISSN1431-2654 。_
ホウ、ゾンハオ; 黄、永翔(2003年3月29日)。マルチマシン環境でのハートビートの設計と実装。高度な情報ネットワークとアプリケーションに関する第17回国際会議、2003年。AINA2003年。中国:IEEEXplore。土井:10.1109/AINA.2003.1192949。ISBN 0-7695-1906-7。
ロバートソン、アラン(2000)。Linux-HAハートビートシステム設計 (PDF)。USENIX年次技術会議。SUSELabs。
Li、Fei-Fei; Yu、Xiang-Zhan; ウー、ギャング(2009年7月11日)。マルチレベルハートビートプロトコルに基づく高可用性分散システムの設計と実装。2009 IITA国際制御、自動化およびシステム工学会議(ケース2009)。中国:IEEE。土井:10.1109/CASE.2009.115。ISBN 978-0-7695-3728-3。”