LVSが提供する3つのIP負荷分散技術

LVSが提供する3つのIP負荷分散技術

1. LVSと負荷分散の概要:

LVS はLinux Virtual Serverの略で、 Linux 仮想サーバー、仮想サーバー クラスタ システムを意味します。

負荷分散とは、サービスを提供するサーバーまたはサイトが 2 つ以上あることを意味します。過度の負荷によるサーバー障害を回避するために、特定のアルゴリズムを使用して、クライアントからのリクエストをこれらのクラスター間で可能な限り均等に分散します。つまり、すべての負荷が複数のサーバー間で均等に分散されるため、サーバーの 1 つに障害が発生しても、ユーザーは引き続きサービスにアクセスして正常に受信できます。

最も広く使用されている方法は、ソフトウェアを使用して負荷分散を実現することです。この方法は結果が良好でコストもかからないため、多くの企業で選択されています。

ソフトウェアで負荷分散を実装する方法は 2 つあります。

  • アプリケーション層の負荷分散
  • IP層に基づく負荷分散

この記事では主に IP 層に基づく負荷分散について紹介します。

2. IP層の負荷分散に基づく:

IP レイヤーベースの負荷分散:ユーザーが仮想 IP アドレスを通じてサービスにアクセスすると、アクセス要求メッセージが負荷スケジューラに到達します。負荷スケジューラは負荷分散を実行し、実サーバーのグループから 1 つを選択してメッセージを処理して、選択したサーバーのアドレスに転送します。実サーバの応答メッセージがロード スケジューラを通過すると、メッセージの送信元アドレスと送信元ポートが仮想 IP アドレスと対応するポートに変更され、メッセージがユーザに送信されます。

IP ロード テクノロジーには、次の 3 つのモードがあります。

  • NAT 経由の仮想サーバー (VS/NAT)
  • IP トンネル経由の仮想サーバー (VS/TUN)
  • ダイレクトルーティング経由の仮想サーバー (VS/DR)

3. 仮想サーバーを実装するためのVS/NAT

IPv4 の IP アドレス空間の不足が深刻化していることとセキュリティ上の理由から、多くのネットワークでは予約済みの IP アドレス ( 10.0.0.0/255.0.0.0、172.16.0.0/255.128.0.0、192.168.0.0/255.255.0.0 )使用されています。これらのアドレスはインターネットでは使用されず、内部ネットワーク用に予約されています。

内部ネットワーク内のホストがインターネットにアクセスしたり、インターネットからアクセスされたりする場合、ネットワーク アドレス変換 (NAT) を使用して内部アドレスをインターネットで使用可能な外部アドレスに変換する必要があります。

NAT の動作原理は、メッセージ ヘッダー (宛先アドレス、送信元アドレス、ポートなど) が正しく書き換えられた後、クライアントは 1 つの IP アドレスに接続されていると信じ、異なる IP アドレスを持つサーバー グループもクライアントに直接接続されていると信じることです。したがって、NAT 方式を使用すると、異なる IP アドレス上の並列ネットワーク サービスを 1 つの IP アドレス上の仮想サービスに変換できます。

VS/NAT (Virtual Server via Network Address Translation) によって実装される仮想サーバーは次のような構造を持ち、主に次の手順に従います。

LVS-NAT

  • クライアントはインターネット経由でサーバーにリクエストを送信し、リクエストの IP アドレスはスケジューラに公開された IP アドレスを指します。 (実際にリクエストを処理するサーバーのIPアドレスではないため、仮想IPアドレスと呼ばれ、略してVIP、Virtual IP Addressと呼ばれます)
  • リクエストメッセージはスケジューラ(ロードバランサ)に到着し、スケジューラはスケジューリングアルゴリズムに従って、実サーバ(ユーザリクエストを実際に処理するサーバであるため、実サーバ、リアルサーバと呼ばれます。IPアドレスは実IPとも呼ばれ、略してRIPと呼ばれます)のグループから現在の負荷が低いサーバを選択します。次に、クライアントの要求メッセージ内の宛先アドレス (ロード バランサの VIP) とポートが、iptables の NAT を介して、選択したサーバーの IP アドレスとサービス ポートに書き換えられます。最後に、変更されたメッセージが選択したサーバーに送信されます。同時に、スケジューラはこの接続を接続ハッシュ テーブルに記録します。この接続の次のメッセージが到着すると、接続ハッシュ テーブルから最初に選択されたサーバーのアドレスとポートが取得され、同じ書き換え操作が実行され、最初に選択されたサーバーにメッセージが送信されます。
  • リアルサーバーはメッセージを受信すると、応答を処理し、応答メッセージをロードバランサーに送信します。
  • ロード バランサは応答メッセージを受信すると、メッセージの送信元アドレスと送信元ポートを仮想 IP アドレスと対応するポートに変更し、ユーザーにメッセージを送信します。

このように、顧客が目にするのは仮想 IP アドレスで提供されるサービスだけであり、サーバー クラスターの構造はユーザーに対して透過的になります。

以下に、図に示すように、VS/NAT をさらに説明するための例を示します。

NAT-例

VS/NAT 構成を次の表に示します。 IP アドレス 205.100.106.2 およびポート 80 へのすべてのトラフィックは、実サーバー 172.16.1.3:80 および 172.16.1.4:8080 に負荷分散されます。宛先アドレスが 205.100.106.2:21 のメッセージは 172.16.1.3:21 に転送されます。他のポートへのメッセージは拒否されます。

プロトコル

仮想IPアドレス

ポート

実際のIPアドレス

ポート

通信プロトコル

205.100.106.2

80

172.16.1.3

80

172.16.1.4

8080

通信プロトコル

205.100.106.2

21

172.16.1.3

21

クライアントが Web サービスにアクセスすると、メッセージには次の送信元アドレスと宛先アドレスが含まれる場合があります。

ソース

目的地

203.100.106.1:3456

205.100.106.2:80

メッセージがスケジューラに到達すると、スケジューラは 172.16.1.4:8080 などのスケジューリング リストからサーバーを選択します。メッセージは次のアドレスに書き換えられ、選択したサーバーに送信されます。

ソース

目的地

203.100.106.1:3456

172.16.1.4:8080

変更されたメッセージを受信した後、リアルサーバーは応答し、応答メッセージをスケジューラに返します。メッセージは次のとおりです。

ソース

目的地

172.16.1.4:8080

203.100.106.1:3456

応答メッセージの送信元アドレスは、ロード バランサによって仮想サービスのアドレスに書き換えられ、その後、メッセージがクライアントに送信されます。

ソース

目的地

205.100.106.2:80

203.100.106.1:3456

このようにして、クライアントは 202.103.106.5:80 サービスから正しい応答を受け取ったと認識しますが、要求がリアルサーバー 1 によって処理されるのか、リアルサーバー 2 によって処理されるのかはわかりません。

これは、VS/NAT がデータ パケットを処理するプロセス全体であり、次の特性があります。

  • クラスタノード、つまり実サーバとロードバランサは同じIPネットワーク上に存在する必要がある
  • ロードバランサは実サーバーとクライアントの間に位置し、すべての受信および送信通信を処理します。
  • RIP は通常プライベート アドレスであり、クラスター ノード間の通信にのみ使用されます。
  • 実サーバーのゲートウェイはロードバランサーを指す必要があります
  • ポート マッピングをサポートします。つまり、リアル サーバーのポートは独自に設定でき、ロード バランサーと同じである必要はありません。

VS/NAT の利点はポート マッピングを実行できることですが、ロード バランサがクラスターのボトルネックになる可能性があります。すべての受信メッセージと送信メッセージは Load Balancer によって処理される必要があるため、要求メッセージが小さい場合は問題になりませんが、応答メッセージは大きくなることがよくあります。 NAT 変換が必要な場合、ロード バランサは大量のトラフィックを処理できなくなります。一般的にVS/NATを使用した場合、処理できる実サーバの最大数は10~20程度であり、効率が高くないことが多いです。

4.VS/DRは仮想サーバーを実装します

VS/NAT クラスタ システムでは、要求データ パケットと応答データ パケットの両方がロード スケジューラを通過する必要があります。実サーバーの数が 10 ~ 20 の場合、負荷スケジューラがクラスタ システム全体の新たなボトルネックになります。ほとんどのインターネット サービスには、要求メッセージは短いのに対し、応答メッセージには大量のデータが含まれることが多いという特徴があります。

受信メッセージと送信メッセージを同時に処理すると、効率に大きく影響し、マシンの負荷が増加するため、受信メッセージのみを処理する、つまり、ロード スケジューラが要求のスケジュールのみを担当し、送信メッセージはリアル サーバーによってクライアントに直接送信されるようにすると、はるかに効率的ではないでしょうか。

VS/DR (Virtual Server via Direct Routing) は、ほとんどのインターネット サービスの非対称特性を活用します。ロード スケジューラは要求のスケジュール設定のみを担当し、サーバーはクライアントに直接応答を返すため、クラスター システム全体のスループットが大幅に向上します。

VS/DR によって実装される仮想サーバーは次のような構造になっており、主に次の手順で実行されます。

DR-struct

  • クライアントはインターネット経由でサーバーに要求を開始し、要求の IP アドレスはスケジューラに公開された IP アドレスを指します。
  • 要求メッセージがスケジューラ (ロード バランサ) に到着します。スケジューラは、各サーバーの負荷状況に基づいてサーバーを動的に選択します。 IP メッセージを変更またはカプセル化するのではなく、データ フレームの MAC アドレスを選択したサーバーの MAC アドレスに変更し、変更されたデータ フレームをサーバー グループのローカル エリア ネットワークに送信します。データ フレームの MAC アドレスは選択されたサーバーのものであるため、サーバーはこのデータ フレームを確実に受信できます。
  • メッセージを受信した後、リアルサーバーはメッセージのターゲット アドレス VIP がローカル ネットワーク デバイス上にあることを検出します。サーバーはメッセージを処理し、ルーティング テーブルに従って応答メッセージをクライアントに直接返します。

MACの変更

VS/DR では、デフォルトの TCP/IP プロトコル スタック処理に従って、要求メッセージの宛先アドレスは VIP であり、応答メッセージの送信元アドレスも VIP である必要があるため、応答メッセージを変更する必要がなく、直接顧客に返すことができます。顧客は通常のサービスを受けていると考えていますが、どのサーバーがそれを処理しているかはわかりません。

これは、VS/DR がデータ パケットを処理するプロセス全体であり、次の特性があります。

  • クラスタノード、つまり実サーバとロードバランサは同じ物理ネットワーク上に存在する必要があります(異なるネットワークセグメントに存在する場合、構造が複雑になります)
  • RIP は通常はプライベート アドレスですが、リモート管理や監視を容易にするためにパブリック ネットワーク アドレスとして使用することもできます。
  • ロード バランサは受信要求の処理のみを担当し、リアル サーバーはクライアントに直接応答します。
  • 実サーバーのゲートウェイはロードバランサーを指すことができません
  • ポートマッピングはサポートされていません。つまり、実サーバーのポートはロードバランサーの外部サービスポートと同じである必要があります。

5. VS/TUNは仮想サーバーを実装する

VS/DR は、実サーバーおよびロード バランサーが同じ物理ネットワーク内にあることを制限します。いろいろな場所に散らばっていたら使えなくなってしまうのではないですか?そこで VS/TUN (IP トンネリング経由の仮想サーバー) が誕生しました。

IP トンネリングは、1 つの IP メッセージを別の IP メッセージにカプセル化するテクノロジです。これにより、1 つの IP アドレス宛てのデータ メッセージをカプセル化して別の IP アドレスに転送できるようになります。 IP トンネリング技術は、IP カプセル化技術 (IP カプセル化) とも呼ばれます。 IP トンネルは主にモバイル ホストや仮想プライベート ネットワーク (VPN) に使用され、トンネルは静的に確立され、トンネルの一方の端には IP アドレスが、もう一方の端にも一意の IP アドレスが設定されます。

IP トンネリング技術を使用してリクエスト メッセージをカプセル化してバックエンド サーバーに転送し、バックエンド サーバーから応答メッセージを直接顧客に返すことができます。しかし、ここではバックエンド サーバーが 1 つだけではなくグループもあるため、1 対 1 のトンネルを静的に確立することはできません。代わりに、サーバーを動的に選択し、要求メッセージをカプセル化して、選択したサーバーに転送します。このように、IP トンネリングの原理を使用して、サーバー グループ上のネットワーク サービスを 1 つの IP アドレス上の仮想ネットワーク サービスに統合できます。 VS/TUN アーキテクチャを図に示します。各サーバーは、独自の IP トンネル デバイス上で VIP アドレスを構成します。

トンネル構造

接続のスケジュールと管理は VS/NAT と同じですが、メッセージの転送方法が異なります。スケジューラは、各サーバーの負荷に基づいてサーバーを動的に選択し、要求メッセージを別の IP メッセージにカプセル化してから、カプセル化された IP メッセージを選択したサーバーに転送します。サーバーはメッセージを受信すると、まずメッセージを解凍して、元のターゲット アドレスを VIP として持つメッセージを取得します。サーバーは、VIP アドレスがローカル IP トンネル デバイス上に設定されていることを検出すると、要求を処理し、ルーティング テーブルに従って応答メッセージをクライアントに直接返します。

これは、VS/TUN がデータ パケットを処理するプロセス全体であり、次の特性があります。

  • クラスタノード、つまり実サーバとロードバランサはパブリックネットワークを横断できる
  • RIP アドレスはパブリック ネットワーク アドレスである必要があります。
  • ロード バランサは受信要求の処理のみを担当し、リアル サーバーはクライアントに直接応答します。
  • 実サーバーのゲートウェイはロードバランサーを指すことができません
  • ポートマッピングはサポートされていません。つまり、実サーバーのポートはロードバランサーの外部サービスポートと同じである必要があります。

これらは、LVS が提供する 3 つの IP 負荷分散テクノロジです。私たちは自分自身の状況に応じてさまざまな選択をすることができます。

<<:  分散機械学習用パラメータサーバー

>>:  リレーショナル データベースの束縛を打破する: クラウドネイティブ データベース ミドルウェアのコア分析

推薦する

企業ウェブサイトメールマーケティングのメリットとコンバージョン率分析

私たちがよく知るインターネット上の「メールマーケティング」は、スパムが横行するほどに、今では蔓延して...

オリエンタルセレクションはライブストリーミング販売のボトルネックを打破できるか?

今年のライブストリーミング電子商取引界は、氷と火の世界と言えるでしょう。一方、かつてのライブストリー...

適切な対外貿易促進サービスプラットフォームを選択することは非常に重要です

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますあなたのカ...

中小規模の販売業者が陥りやすい検索トラップ

中小規模の販売者にとって、ダイヤモンドブースを設置する資金があまりない場合、電車やタオバオの顧客を通...

ウェブサイトの微調整の必要性:ユーザーにより良い体験を提供する

ウェブサイトの構築は一度で完了できないことはよく知られています。初期段階が完璧に行われていても、後の...

シャオ・ジュン:ウェブマスターが直面しなければならない6つの天敵を数えてみましょう

ウェブマスターは比較的特殊なグループであり、ウェブマスターという言葉が言及されるたびに、人々は自然に...

SEOVIPウェブサイト改訂後の微妙な変更

実は最近、SEOVIP の Web サイトに注目しています。結局のところ、あらゆる特殊な単一ページの...

ウェブサイトの最適化におけるワインと下水の法則についての考察

経営には興味深い法則があります。それは「ワインと汚水の法則」です。つまり、スプーン一杯のワインをバケ...

bluehost-14周年記念/仮想ホスティング40%オフ、月額2.65ドル、無料ドメイン名

bluehostさん、彼は何歳だと思いますか?今から午後 18:59 (北京時間午後 19:00) ...

Ben Feng: TusDesign プライベート クラウド データ センター構築の実践 | V教室109号室

第109回[スマート製造+V教室]「優秀なCIO」テーマ共有月間第1回では、Tus-Designグル...

私はAlibaba Cloudのクラウド開発プラットフォームに携わっています

[[387325]]今年、大手クラウドベンダーは開発者側で徐々に「クラウド」開発へと動き始めました。...

ウェブサイト構築:方向性と行動

私たちのウェブサイト構築のキャリアの中で、非常に奇妙な現象を発見しました。それは、企業はウェブサイト...

「拼小全」、Pinduoduo のソーシャル ネットワーキングにおける次の戦いは?

安価なテスラ5台と合計20万元の価格差補助。Pinduoduoは「無視できる」価格で、多くの人がかけ...