web-dev-qa-db-ja.com

LVSとHAProxyのどちらを選択すればよいですか?

主に大きなWebアプリケーション向けの、負荷分散とフェイルオーバー戦略のソリューションを探しています。 Web、MySQL、および他の多くのHTTPまたはTCP=ベースのサービスなど、バランスをとる必要のあるサービスがたくさんあります。しかし、それらの長所と短所が何であり、どれを選択すべきかわかりません。

21
Mickey Shine

2つのソリューション(LVS、HAproxy)を区別する最も重要なことは、一方がレイヤー4(LVS)で機能し、もう一方がレイヤー7(HAproxy)で機能することです。レイヤの参照はOSIネットワーキングモデルからのものであることに注意してください。

これを理解すれば、適切な場所で使用できるようになります。たとえば、接続数のみに基づいてバランスを取る必要がある場合(たとえば、)、レイヤー4ロードバランサーで十分です。一方、HTTP応答時間に基づいてロードバランサーを使用する場合は、上位層のLBが必要になります。

より高いレベルのLBを使用することの欠点は、必要なリソースです(たとえば、同じ量のトラフィックに対して)。プラスは明らかです-「パケットレベルの検査」、「プロトコルルーティング」など-単純な「パケットルーティング」よりもはるかに複雑なことを考えてください。

私が言いたい最後の点は、HAproxyがユーザー空間(「はるかにカスタマイズ/調整が簡単」だと思うが、遅い(パフォーマンス)だと思う)であるのに対し、LVSはカーネル空間にある(「地獄のように速い」と思うが、カーネルのように堅い) )。また、「LVSのアップグレードはカーネルの変更を意味する可能性があります-エルゴ、再起動」を忘れないでください...

結論として、適切なツールを適切な仕事に使用します。

23
Raven007

両方を使用する必要があります。HAProxyは優れたロードバランサーであり、LVSはフェイルオーバーのソリューションであり、単一障害点を回避します。

9
lg.