フェイルオーバーを使用してHAProxyをセットアップする方法


14

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


回答:


20

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

Stack Overflowではheartbeat、単一の仮想IPを提供するために使用します。このIPは、一度に1つのhaproxyホストでのみアクティブになります(ダウンした場合、もう一方がこのIPを引き継ぎます)。ハートビートを使用して各マシンにIPを設定し、2台の間でDNSラウンドロビンを設定できます。一方が失敗した場合、もう一方は両方のIPを持ちます。

HAProxyは、物理サーバーで約1〜5%のCPUを使用して、単一のを持つトラフィックのバランスを取りますIntel(R) Xeon(R) CPU E5504 @ 2.00GHz。そのため、HAProxyは一般に多くのトラフィックを簡単に処理できます。


1
いいえ。トラフィックがあまりありません。これは、SPOFを回避するための単なる試みです。
mixdev

2
@mixdev:その場合、DNSはheatbeatが提供する単一の仮想IPをポイントしているだけなので、準備ができているはずです。両方のマシンでhaproxyを実行したままにします。もちろん、運用を開始する前に、ハートビートフェールオーバーをテストしてください。
カイルブラント

@KyleBrandt:haproxyプロセスが停止した場合はどうなりますか?それに基づいて仮想IPを移動できるように構成されたものはありますか?
-CarpeNoctem

@CarpeNoctem:現時点ではカバーしていません。ハートビートとキープアライブの両方を設定して、プロセスを監視することもできます。このルートを使用する場合、プロセスを十分な時間(1分)停止するように設定することをお勧めします。おそらく設定エラーでハートビートがフラップオーバーしたくないでしょう。HAProxyはこれらのほとんどをでチェックします-cが、バインディング設定の間違いなどをキャッチできない場合があります。
カイルブラント

5
誰も心配のため、スタックで我々はよく一年以上前にkeepalivedのに移動
カイル・ブラントに

24

カイルが言うように、ハートビートを使用して2つのhaproxyサーバーをフェールオーバーペアとして機能させることができます。多くの人が利用行うながら、しかし、ハートビートを仕事のために、keepalivedの ISはhaproxyの著者によって示唆しています。

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

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

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

  • keepalivedはネットワーク指向です。少なくとも1つのサーバーに問題のIPがあることを確認します。


-1

あなたがここで探しているものを見つけるかもしれません:http : //blog.haproxy.com/2014/01/17/emulating-activepassing-application-clustering-with-haproxy/


1
レシピの全内容を投稿に含めてください。私たちは正確にブログリンクサービスではありません。
鹿ハンター

1
さらに、ブログがダウンしたりURLを変更したりすると、情報が失われます。
デニス・ノルティ

質問とはまったく関係がないため、反対票を投じてください。
ダニエルジメネス

@danieljimenez、まったく無関係ではない、ただの誤解。OPはHAProxy 自体の Active / Passiveを要求し、user3595100はHAProxyバックエンドのActive / Passiveとして質問を解釈しました。それにもかかわらず、リンクを投稿すること自体は受け入れられる答えではありません。
duct_tape_coder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.