
私は2つのバックエンドLinuxサーバーがHTTP、SMTP、XMPPミラーを実行し、それらの間の接続をロードバランシングする必要があるソリューションを頭の中で解決しようとしています。
私の現在の解決策はOpenBSDボックスを前に置くことです。もちろん、単一の障害点を避けるために、今後さらに追加するためにCarpを使用して拡張できます。 PFを使用すると、ランダムまたはラウンドロビン方式を使用してサーバープールにトラフィックを送信できます。
リレーを使用すると、機能していないプールサーバーを削除できます。
しかし、私はこの問題に関するコミュニティの意見を大切にしているので、この種の環境に最適なUnixロードバランシングソリューションを教えてください。
1つの目的は、1つのサーバーの障害を許可し、サービスの中断を最小限に抑えることです。
答え1
私はハートビートとldirectorの純粋なLinuxの組み合わせにのみ慣れています(両方Linux仮想サーバー一対のフロントエンドからN個のバックエンドにIPトンネルトラフィックを送信し、1つのフロントエンドがシャットダウンすると、2つの間でフロントエンドIPを共有/交換します。私が使用している環境ではうまくいきますが、スプリットブレーンの問題に弱いかどうかはわかりません。
答え2
HAProxyは、BSDやSolaris(もちろんLinux)を含む多くの* nixプラットフォームでコンパイルされています。ロードバランサーがLinuxを実行していない場合は、非常に便利で構成可能なソフトウェアです。これはHTTPを理解していますが、まったく知らないすべてのTCPサービスのバランスをとることができます。サーバーを確認し、応答しない(または十分に応答しない)サーバーをサービスから削除します。
ここに住んでいます:http://haproxy.1wt.eu/
1つの欠点があります。 IPv4を介してのみ内部(バックエンド)サーバーと通信します(受信IPv6接続はロードバランシングがうまく行われ、内部接続はIPv4に制限されます)。サーバーファームにデュアルスタック設定がある場合は問題ありません。
答え3
私たちは、lvs、lvs-kiss、およびheartbeatを実行する一対の仮想CentOS 5サーバーを使用します。仮想サーバー自体はXENクラスターに常駐し、他の場所にフェイルオーバーする可能性があります。
LVS サーバーの 1 つはアクティブマスターサーバー、もう 1 つはスレーブサーバーです。両方のサーバーで両方のプロセス(マスターとスレーブ)が永久に実行されるため、セッションは常に複製されます。
アクティブな LVS サーバーに障害が発生すると、他の LVS サーバーが代わりに以前のターゲット・サーバーにシームレスに LB 接続を提供します。
答え4
質問に答えると、そうです。 Linuxを使用して、2つの異なるLinuxサーバー(実際にはそのサービス)の負荷を分散できます。私はこれをより具体的に表現するためにピラニアを使用します。 Piranhaは、LVSクラスタシステムの上にある管理層です。 Redhatが提供する詳細なガイドは次の場所にあります。 http://www.redhat.com/support/resources/howto/piranha/