
Stack Overflow ネットワークに触発されて、私は現在 HAProxy に夢中になっており、自分でも使用しようとしています。
現時点では、各 HAProxy ボックスには 2 つのネットワーク カードがあります (正確には 2 つが構成されていますが、最大 4 つまで使用できますが、ボックス間の管理に独自のカードが必要かどうかはわかりませんでした)。
どちらのマシンでも、バックエンドの IP (eth1) は Web サーバーに接続されたスイッチに送られるプライベート IP であり、フロントエンドの IP (eth0) は直接ルーティングされるパブリック インターネット IP です。
さらに、 eth0 用に、eth0:0
3 番目のパブリック IP アドレスを持つ という追加の仮想 IP を作成しました。
背後にある複数の Web サーバー間の負荷分散にこれを使用する方法はほぼ理解できましたが、2 つの HAProxy ボックス間の負荷分散に失敗しています。これらのボックスは仮想 IP を争っているように見えますが、これは賢い解決策ではないようです。
現在、仮想共有 IP アドレスを使用することで、このソリューションは機能しているようで、稼働時間が最大化されるように見えますが、これが正しい方法でしょうか、それとももっと賢い方法があるのでしょうか?
私は keepalived などの他の Linux パッケージを検討してきましたが、Linux (サーバー) を使い始めてまだ 1 週間しか経っておらず、理解の限界に達しています。
これまでにこれを実行したことがある人はいますか? また、稼働時間を最大化するためのアドバイスはありますか?
答え1
2 つの異なる haproxy 間でトラフィックの負荷を分散したい場合は、それらの前に別のロード バランサーを配置する必要がありますが、これは役に立ちません。
より高い可用性が必要な場合は、2 つの haproxy を使用し、そのうちの 1 つに keepalived または heartbeat によって VIP を割り当てることで、すでに実現されています。通常、これが HA および負荷分散の問題に対する解決策です。
2 つの haproxy を同時に使用する方法が 1 つあります。各 haproxy サーバーに 1 つの VIP を割り当てるように keepalived を設定できます。負荷分散は DNS によって実行できます。DNS 名は 2 つの VIP に解決される必要があります。1 つの haproxy に障害が発生すると、他のノードが 2 つの VIP を保持し、すべてのトラフィックを受信します。