高可用性サーバークラスタを構築したい。次に、キープアライブとハートビート、両方の違い、およびどちらを選択するかについて詳しく知りたいと思います。
HAProxyの作者であるWilly Tarreauが http://www.formilux.org/archives/haproxy/1003/3259.html で質問に非常に正確に回答したと信じてください。
上記のリンクからの引用
ハートビートは、冗長haproxy設定を取得するための最適なツールではありません。クラスターを構築するように設計されています。これは、2つの冗長なステートレスネットワーク機器を備えることとは大きく異なります。 keepalivedやucarpなどのネットワーク指向のツールがそのタスクに最適です
これら2つのファミリの違いは単純です
- heartbeatなどのクラスター指向の製品は、共有リソースが最大でに存在することを保証します一箇所。これは、共有ファイルシステム、ディスクなどにとって非常に重要です...スイッチオーバー中に、あるノードでサービスを停止し、別のノードでサービスを開始するように設計されています。この方法では、共有リソースに同時にアクセスすることはできません。これは達成するのが非常に難しい作業であり、うまく機能します。
- keepalivedなどのネットワーク指向の製品は、共有IPアドレスが少なくともに存在することを保証します 一箇所。サービスやリソースについてはもう話していないことに注意してください。IPアドレスでのみ機能します。サービスのダウンやアップは試行せず、特定の数の基準を考慮して、サービスを提供するのに最も適したノードを決定します。ただし、サービスは両方のノードですでに稼働している必要があります。そのため、冗長ルーター、ファイアウォール、プロキシには非常に適していますが、ディスクアレイやファイルシステムにはまったく適していません。
(ええ、それは古い質問ですが、将来の参考のために)
明確で一貫した差別化はありません。これらの単語は、多かれ少なかれ同じ意味で使用されることがあります。
Keepalived と呼ばれる高可用性設定用の共通のユーザーランドデーモンがあり、Linux HAプロジェクトは以前 Pacemaker に変更されたHeartbeatと呼ばれるデーモンを持っていました。 (これらの2つのシステムの完全な概要、およびすべての違いが何であるかを尋ねたのではないと私は信じています。それはIMHOがトピックから外れることになるでしょう。)
用語を日常的に使用する場合、最も一般的な使用法は次のとおりです。
「キープアライブ」とは、より一般的には、サービスの可用性を維持するシステムを指します。
「ハートビート」は、より具体的には通信プロトコルを指し、高可用性設定の1人以上のメンバーが定期的に「はい、私はまだ生きています!」メッセージ。その後、ピアは、「はい、私は生きています」というメッセージが設定時間前に表示されない場合(つまり、他のホストがダウンした場合)にアクションを実行します。これはPulseの感覚に少し似ているため、名前が付けられています。