1. LVSと負荷分散の概要: LVS はLinux Virtual Serverの略で、 Linux 仮想サーバー、仮想サーバー クラスタ システムを意味します。 負荷分散とは、サービスを提供するサーバーまたはサイトが 2 つ以上あることを意味します。過度の負荷によるサーバー障害を回避するために、特定のアルゴリズムを使用して、クライアントからのリクエストをこれらのクラスター間で可能な限り均等に分散します。つまり、すべての負荷が複数のサーバー間で均等に分散されるため、サーバーの 1 つに障害が発生しても、ユーザーは引き続きサービスにアクセスして正常に受信できます。 最も広く使用されている方法は、ソフトウェアを使用して負荷分散を実現することです。この方法は結果が良好でコストもかからないため、多くの企業で選択されています。 ソフトウェアで負荷分散を実装する方法は 2 つあります。
この記事では主に IP 層に基づく負荷分散について紹介します。 2. IP層の負荷分散に基づく: IP レイヤーベースの負荷分散:ユーザーが仮想 IP アドレスを通じてサービスにアクセスすると、アクセス要求メッセージが負荷スケジューラに到達します。負荷スケジューラは負荷分散を実行し、実サーバーのグループから 1 つを選択してメッセージを処理して、選択したサーバーのアドレスに転送します。実サーバの応答メッセージがロード スケジューラを通過すると、メッセージの送信元アドレスと送信元ポートが仮想 IP アドレスと対応するポートに変更され、メッセージがユーザに送信されます。 IP ロード テクノロジーには、次の 3 つのモードがあります。
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 アドレスで提供されるサービスだけであり、サーバー クラスターの構造はユーザーに対して透過的になります。 以下に、図に示すように、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 に転送されます。他のポートへのメッセージは拒否されます。
クライアントが Web サービスにアクセスすると、メッセージには次の送信元アドレスと宛先アドレスが含まれる場合があります。
メッセージがスケジューラに到達すると、スケジューラは 172.16.1.4:8080 などのスケジューリング リストからサーバーを選択します。メッセージは次のアドレスに書き換えられ、選択したサーバーに送信されます。
変更されたメッセージを受信した後、リアルサーバーは応答し、応答メッセージをスケジューラに返します。メッセージは次のとおりです。
応答メッセージの送信元アドレスは、ロード バランサによって仮想サービスのアドレスに書き換えられ、その後、メッセージがクライアントに送信されます。
このようにして、クライアントは 202.103.106.5:80 サービスから正しい応答を受け取ったと認識しますが、要求がリアルサーバー 1 によって処理されるのか、リアルサーバー 2 によって処理されるのかはわかりません。 これは、VS/NAT がデータ パケットを処理するプロセス全体であり、次の特性があります。
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
MACの変更 VS/DR では、デフォルトの TCP/IP プロトコル スタック処理に従って、要求メッセージの宛先アドレスは VIP であり、応答メッセージの送信元アドレスも VIP である必要があるため、応答メッセージを変更する必要がなく、直接顧客に返すことができます。顧客は通常のサービスを受けていると考えていますが、どのサーバーがそれを処理しているかはわかりません。 これは、VS/DR がデータ パケットを処理するプロセス全体であり、次の特性があります。
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 がデータ パケットを処理するプロセス全体であり、次の特性があります。
これらは、LVS が提供する 3 つの IP 負荷分散テクノロジです。私たちは自分自身の状況に応じてさまざまな選択をすることができます。 |
>>: リレーショナル データベースの束縛を打破する: クラウドネイティブ データベース ミドルウェアのコア分析
ウェブマスターの友人なら誰でも、自分のウェブサイトに毎日たくさんの訪問者が訪れることを願っているはず...
8月25日のBaiduの大きな変更は、多くのウェブマスターの予想どおりに起こりましたが、ウェブマスタ...
今の問題は、企業がクラウドに移行しているかどうかではなく、それがどれだけうまく進んでいるかということ...
今日、動的な作業環境、変化するデバイス要件、経済の不確実性などの市場の力により、新しい働き方、ビジネ...
11月13日、百度は「百度検索がICP登録情報表示を開始し、ユーザーが安全な結果を選択できるように支...
しかし、山や尾根を「言葉では言い表せない」ほど越えるには、x が必要でしょうか?安い価格をご希望です...
Discuz フォーラムを使用する友人は皆、Discuz フォーラムが検索エンジン最適化に非常に優れ...
AlphaVPS.bg は、2017 年に設立された DA International Group ...
一定量のクラウド コンピューティングとストレージ容量を購入する場合のコストを計算するのは難しくありま...
まず、RapidSwitch について簡単に紹介します。1999 年に設立され、現在は英国を代表する...
ウェブサイト構築について少しでも知識のあるネットユーザーなら、外部リンクがウェブサイトの発展と存続に...
10月31日、Xunleiの子会社で世界最大のシェアコンピューティング企業であるOneMind Te...
10年以上を経て、従来のオンライン採用はついに完全に変わりました。 7月9日夜、ChinaHRはプラ...
Baidu ウェイトとは、Google ウェイト(PR 値)に対する相対的なウェイトを指し、ページが...
著者 |王 陸編集者 |王瑞平この記事は、Zhihu のクラウド ネイティブ アーキテクチャの責任者...