web-dev-qa-db-ja.com

フェイルオーバーでHAProxyをセットアップする方法は?

HAProxy負荷分散設定でフェイルオーバーを行うには、HAproxyを実行している2台のマシンが必要である(そしてそれを複数のWebサーバーインスタンスにルーティングする)ことを理解しています。しかし、この場合、abcd.comは、このトラフィックを1つではなく2つのIPアドレスに分割/ルーティングする方法を教えてください。 DNSは通常、ドメイン名を単一のIPに解決します。無料/安価なツール/サービスを使用してこれをどのように行うのですか?

15
mixdev

負荷が非常に高く、2つのhaproxyインスタンス間で負荷を分散する必要がある場合は、DNSラウンドロビンは悪い考えではありません(ただし、この負荷がある場合は驚かされます)。ただし、DNSラウンドロビンは適切なフェイルオーバーを提供しません。

スタックオーバーフローでは、heartbeatを使用して単一の仮想IPを提供します。このIPは、一度に1つのhaproxyホストでのみアクティブになります(ダウンした場合、他のホストがこのIPを引き継ぎます)。ハートビートを使用して、各マシンにIPを設定し、2つのマシン間でDNSラウンドロビンを実行できます。一方に障害が発生した場合、もう一方には両方のIPが含まれます。

HAProxyは、物理サーバーで約1〜5%のCPUを使用して、単一のIntel(R) Xeon(R) CPU E5504 @ 2.00GHzを持つトラフィックのバランスをとっています。したがって、HAProxyは通常、大量のトラフィックを簡単に処理できます。

21
Kyle Brandt

カイルが言うように、heartbeatを使用して、2つのhaproxyサーバーをフェイルオーバーペアとして機能させることができます。ただし、多くの人がジョブにheartbeatを使用している一方で、keepalivedをお勧めしますhaproxyの作者による。

彼はhaproxyメーリングリストの詳細を概説します: http://www.formilux.org/archives/haproxy/1003/3259.html

簡単に言うと、次のようになります。

  • ハートビートはクラスター指向です。 1つのサーバーのみがリソースにアクセスできるようにします(SAN storage))

  • keepalivedはネットワーク指向です。これにより、少なくとも1つのサーバーに問題のIPが確実に存在します。

25
Coops