2 台の Linux マシン間で負荷分散するにはどうすればよいですか?

2 台の Linux マシン間で負荷分散するにはどうすればよいですか?

Stack Overflow ネットワークに触発されて、私は現在 HAProxy に夢中になっており、自分でも使用しようとしています。

現時点では、各 HAProxy ボックスには 2 つのネットワーク カードがあります (正確には 2 つが構成されていますが、最大 4 つまで使用できますが、ボックス間の管理に独自のカードが必要かどうかはわかりませんでした)。

どちらのマシンでも、バックエンドの IP (eth1) は Web サーバーに接続されたスイッチに送られるプライベート IP であり、フロントエンドの IP (eth0) は直接ルーティングされるパブリック インターネット IP です。

さらに、 eth0 用に、eth0:03 番目のパブリック 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 を保持し、すべてのトラフィックを受信します。

関連情報