ほとんどのプログラマーはロードバランサー LVS が何であるか知りません。

ほとんどのプログラマーはロードバランサー LVS が何であるか知りません。

1. Linux仮想サーバープロジェクト

高いスケーラビリティと可用性を備えたネットワーク サービスに対する需要に応えて、IP 層とコンテンツ要求分散に基づく負荷分散スケジューリング ソリューションを提案し、これらの手法を Linux カーネルに実装して、複数のサーバーを仮想サーバーに統合し、スケーラブルで可用性の高いネットワーク サービスを実現しました。

[[278786]]

仮想サーバーのアーキテクチャを図 2 に示します。サーバーのグループは、高速ローカル エリア ネットワークまたは地理的に分散されたワイド エリア ネットワークを介して相互に接続され、そのフロント エンドにはロード バランサーがあります。ロード スケジューラは、ネットワーク要求を実際のサーバーにシームレスにディスパッチできるため、サーバー クラスターの構造がクライアントに対して透過的になります。クライアントは、高性能で可用性の高いサーバーにアクセスするのと同じように、クラスター システムによって提供されるネットワーク サービスにアクセスします。クライアント プログラムはサーバー クラスターの影響を受けないため、変更する必要はありません。システムのスケーラビリティは、サーバー クラスターにノードを透過的に追加および削除することによって実現され、高可用性は、ノードまたはサービス プロセスの障害を検出し、システムを適切にリセットすることによって実現されます。当社の負荷スケジューリング技術は Linux カーネルに実装されているため、Linux 仮想サーバーと呼んでいます。

図2: 仮想サーバーの構造

1998 年 5 月に、私は Linux サーバー クラスターを開発するための Linux Virtual Server フリー ソフトウェア プロジェクトを設立しました。同時に、Linux Virtual Server プロジェクトは中国で最も初期のフリー ソフトウェア プロジェクトの 1 つです。

Linux 仮想サーバー プロジェクトの目標は、クラスター テクノロジと Linux オペレーティング システムを使用して、優れたスケーラビリティ、信頼性、管理性を備えた高性能、高可用性のサーバーを実装することです。

現在、LVS プロジェクトは、図 3 に示すように、スケーラブルなネットワーク サービスを実装するための Linux 仮想サーバー フレームワークを提供しています。LVS フレームワークは、3 つの IP 負荷分散テクノロジを含む IP 仮想サーバー ソフトウェア IPVS、コンテンツ要求分散に基づくカーネル レイヤー 7 スイッチ KTCPVS、およびクラスター管理ソフトウェアを提供します。 LVS フレームワークを使用すると、Web、キャッシュ、メール、メディアなどのスケーラビリティと可用性に優れたネットワーク サービスを実装できます。これを基に、多数のユーザーをサポートする、拡張性と可用性に優れた電子商取引アプリケーションを開発できます。

図3: Linux仮想サーバーフレームワーク

3.1 IP仮想サーバーソフトウェア IPVS

スケジューラ実装技術の中で、IP ロード バランシング技術が最も効率的です。既存の IP 負荷分散技術の中には、ネットワーク アドレス変換 (Network Address Translation) を使用して、サーバー グループを高性能で可用性の高い仮想サーバーに変換する方法があります。これを VS/NAT テクノロジー (Virtual Server via Network Address Translation) と呼びます。 Cisco の LocalDirector、F5 の Big/IP、Alteon の ACEDirector など、ほとんどの商用 IP ロード バランシング スケジューラ製品はこの方法を使用します。 VS/NAT の欠点とネットワーク サービスの非対称性の分析に基づいて、システムのスケーラビリティを大幅に向上できる、IP トンネルを介して仮想サーバーを実装する方法である VS/TUN (Virtual Server via IP Tunneling) と、ダイレクト ルーティングを介して仮想サーバーを実装する方法である VS/DR (Virtual Server via Direct Routing) を提案します。したがって、IPVS ソフトウェアはこれら 3 つの IP 負荷分散テクノロジを実装します。それらの一般的な原則は次のとおりです (動作原則については他の章で詳しく説明します)。

ネットワーク アドレス変換 (VS/NAT) による仮想サーバー

スケジューラは、ネットワーク アドレス変換を通じて、要求メッセージのターゲット アドレスを書き換え、事前に設定されたスケジューリング アルゴリズムに従ってバックエンドの実際のサーバーに要求を送信します。実サーバーの応答メッセージがスケジューラを通過すると、メッセージの送信元アドレスが書き換えられてクライアントに返され、負荷スケジューリング プロセス全体が完了します。

IP トンネリング経由の仮想サーバー (VS/TUN)

NAT 技術を使用する場合、要求メッセージと応答メッセージの両方をスケジューラ アドレスで書き換える必要があるため、顧客要求の数が増えると、スケジューラの処理能力がボトルネックになります。この問題を解決するために、スケジューラは IP トンネルを介して要求メッセージを実サーバーに転送し、実サーバーは応答を直接クライアントに返すため、スケジューラは要求メッセージのみを処理します。一般的なネットワーク サービスの応答は要求メッセージよりもはるかに大きいため、VS/TUN テクノロジを採用すると、クラスター システムの最大スループットを 10 倍に増加できます。

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

VS/DR は要求メッセージの MAC アドレスを書き換えて要求を実サーバーに送信し、実サーバーは応答を直接クライアントに返します。 VS/TUN テクノロジーと同様に、VS/DR テクノロジーはクラスター システムのスケーラビリティを大幅に向上させることができます。この方法には IP トンネリングのオーバーヘッドがなく、クラスター内の実サーバーが IP トンネリング プロトコルをサポートする必要はありませんが、スケジューラと実サーバーに同じ物理ネットワーク セグメントに接続されたネットワーク カードが必要です。

さまざまなネットワーク サービス要件とサーバー構成に応じて、IPVS スケジューラは次の 8 つの負荷スケジューリング アルゴリズムを実装します。

ラウンドロビン

スケジューラは、「ラウンドロビン」スケジューリング アルゴリズムを使用して、外部要求をクラスター内の実サーバーに順番に分散します。実際の接続数やサーバー上のシステム負荷に関係なく、各サーバーを平等に扱います。

加重ラウンドロビン

スケジューラは、「加重ラウンドロビン」スケジューリング アルゴリズムを使用して、実際のサーバーのさまざまな処理能力に基づいてアクセス要求をスケジュールします。これにより、強力な処理能力を持つサーバーがより多くのアクセス トラフィックを処理できるようになります。スケジューラは、実サーバーの負荷状態を自動的に照会し、重みを動的に調整できます。

最小接続

スケジューラは、「最小接続」スケジューリング アルゴリズムを使用して、確立されたリンクの数が最も少ないサーバーへのネットワーク要求を動的にスケジュールします。クラスタ システムの実サーバーのシステム パフォーマンスが類似している場合、「最小接続」スケジューリング アルゴリズムによって負荷をより適切に分散できます。

重み付け最小接続

クラスター システム内のサーバーのパフォーマンスが大きく変化する場合は、スケジューラは「加重最小リンク」スケジューリング アルゴリズムを使用して負荷分散パフォーマンスを最適化します。重み付けが高いサーバーは、アクティブな接続負荷のより大きな割合を負担します。スケジューラは、実サーバーの負荷状態を自動的に照会し、重みを動的に調整できます。

局所性に基づく最小接続

「ローカリティベースの最小リンク」スケジューリング アルゴリズムは、ターゲット IP アドレスの負荷分散アルゴリズムであり、現在は主にキャッシュ クラスタ システムで使用されています。アルゴリズムは、リクエストに基づいて、ターゲット IP アドレスによって最後に使用されたサーバーを見つけます。サーバーが利用可能で、過負荷になっていない場合は、リクエストがサーバーに送信されます。サーバーが存在しない場合、またはサーバーが過負荷で、ワークロードが半分のサーバーが存在する場合は、「最小リンク」の原則を使用して使用可能なサーバーが選択され、要求がサーバーに送信されます。

レプリケーションによる局所性ベースの最小接続

「レプリケーション付きローカル最小リンク」スケジューリング アルゴリズムもターゲット IP アドレスの負荷分散アルゴリズムであり、現在は主にキャッシュ クラスタ システムで使用されています。 LBLC アルゴリズムはターゲット IP アドレスからサーバーへのマッピングを維持するのに対し、このアルゴリズムはターゲット IP アドレスからサーバー グループへのマッピングを維持するという点で LBLC アルゴリズムと異なります。アルゴリズムは、要求のターゲット IP アドレスに基づいて、ターゲット IP アドレスに対応するサーバー グループを見つけ、「最小接続」の原則に従ってサーバー グループからサーバーを選択します。サーバーが過負荷になっていない場合は、リクエストはサーバーに送信されます。サーバーが過負荷になると、「最小接続」の原則に従ってクラスターからサーバーが選択され、サーバー グループに追加され、要求がそのサーバーに送信されます。同時に、サーバー グループが一定期間変更されていない場合は、最もビジーなサーバーがサーバー グループから削除され、レプリケーションの度合いが低減されます。

宛先ハッシュ

「ターゲット アドレス ハッシュ」スケジューリング アルゴリズムは、要求のターゲット IP アドレスをハッシュ キーとして使用し、静的に割り当てられたハッシュ テーブルから対応するサーバーを検索します。サーバーが利用可能で、過負荷になっていない場合は、リクエストがサーバーに送信され、そうでない場合は何も返されません。

ソースハッシュ

「ソース アドレス ハッシュ」スケジューリング アルゴリズムは、要求のソース IP アドレスをハッシュ キーとして使用し、静的に割り当てられたハッシュ テーブルから対応するサーバーを検索します。サーバーが利用可能で、過負荷になっていない場合は、リクエストがサーバーに送信され、そうでない場合は何も返されません。

3.2 カーネル レイヤー 7 スイッチ KTCPVS

IP 負荷スケジューリング技術では、TCP 接続の最初の SYN メッセージが到着すると、スケジューラはサーバーを選択し、そのサーバーにメッセージを転送します。その後、送信されたメッセージの IP および TCP ヘッダー アドレスをチェックすることにより、この接続の後続のメッセージがサーバーに転送されることが保証されます。この方法では、IPVS はリクエストの内容を確認してからサーバーを選択できないため、バックエンド サーバー グループが同じサービスを提供する必要が生じます。リクエストがどのサーバーに送信されても​​、返される結果は同じです。ただし、一部のアプリケーションでは、バックエンド サーバーに異なる機能が備わります。 HTML ドキュメントを提供するものもあれば、画像を提供するもの、CGI を提供するものもあります。これにはコンテンツベースのスケジュール設定が必要です。

ユーザー空間 TCP ゲートウェイのオーバーヘッドが高すぎるため、ユーザー空間とカーネル空間間の切り替えとメモリコピーのオーバーヘッドを回避するために、オペレーティング システムのカーネルにレイヤー 7 切り替え方式を実装することを提案します。 Linux オペレーティング システム カーネルでは、KTCPVS (カーネル TCP 仮想サーバー) と呼ばれるレイヤー 7 スイッチングを実装しました。現在、KTCPVS は HTTP 要求のコンテンツベースのスケジューリングを実行できますが、まだ十分に成熟していません。スケジューリング アルゴリズムとさまざまなプロトコルの機能サポートに関しては、まだやるべきことがたくさんあります。

アプリケーション層スイッチングは複雑でスケーラビリティが限られていますが、次のような利点があります。

  • 同じページへのリクエストは同じサーバーに送信されるため、単一サーバーのキャッシュヒット率が向上します。
  • いくつかの研究[5]では、WEBアクセスフローに局所性が存在することが示されています。レイヤー 7 スイッチングは、アクセスの局所性を最大限に活用し、同じタイプの要求を同じサーバーに送信できるため、各サーバーが受信する要求の類似性が向上し、単一サーバーのキャッシュ ヒット率がさらに向上します。
  • バックエンド サーバーは、ドキュメント サービス、イメージ サービス、CGI サービス、データベース サービスなど、さまざまな種類のサービスを実行できます。

2. LVSクラスタの特徴

LVS クラスタの特徴は次のようにまとめられます。

関数

3 つの IP 負荷分散テクノロジと 8 つの接続スケジューリング アルゴリズムを実装する IPVS ソフトウェアがあります。 IPVS の内部実装では、効率的なハッシュ関数とガベージ コレクション メカニズムが使用され、スケジュールされたメッセージに関連する ICMP メッセージを正しく処理できます (一部の商用システムではこれができません)。仮想サービス設定の数に制限はなく、各仮想サービスには独自のサーバー セットがあります。永続的な仮想サービス (この機能を必要とする HTTP Cookies や HTTPS など) をサポートし、接続処理速度やメッセージ トラフィックなどの詳細な統計情報を提供します。大規模なサービス拒否攻撃に対しては、3 つの防御戦略が実装されています。

コンテンツ要求分散に基づくアプリケーション層スイッチング ソフトウェア KTCPVS があり、これも Linux カーネルに実装されています。システムの高可用性を実現するために、リソースを監視し、適時に障害を遮断するための適切なクラスター管理ソフトウェアがあります。マスター スケジューラとスレーブ スケジューラは、定期的にステータスを同期して、より高い可用性を実現できます。

適用範囲

バックエンド サーバーは、Linux、さまざまな Unix (FreeBSD、Sun Solaris、HP Unix など)、Mac/OS、Windows NT/2000 など、TCP/IP をサポートする任意のオペレーティング システムを実行できます。

ロード スケジューラは、ほとんどの TCP および UDP プロトコルをサポートできます。

プロトコルの内容 TCPHTTP、FTP、PROXY、SMTP、POP3、IMAP4、DNS、LDAP、HTTPS、SSMTP、UDPDNS、NTP、ICP、ビデオおよびオーディオ ストリーミング プロトコルなどは、クライアントとサーバーに変更を加える必要がなく、ほとんどのインターネット サービスに適用できます。

パフォーマンス

LVS サーバー クラスター システムは優れたスケーラビリティを備えており、数百万の同時接続をサポートできます。 100M ネットワーク カードと VS/TUN または VS/DR スケジューリング テクノロジを使用すると、クラスター システムのスループットは最大 1Gbits/s に達します。ギガビット ネットワーク カードを使用すると、システムの最大スループットは 10Gbits/s に近づくことができます。

信頼性

LVS サーバー クラスター ソフトウェアは、多くの大規模で重要なサイトで広く採用されており、実際のアプリケーションでその信頼性が十分に実証されています。一度も再起動されずに 1 年以上稼働しているスケジューラが多数あります。

ソフトウェアライセンス

LVS クラスター ソフトウェアは、GNU パブリック ライセンス (GPL) に基づいてリリースされるフリー ソフトウェアです。つまり、ソフトウェアのソース コードを入手して変更する権利がありますが、変更内容も GPL に基づいてリリースされることを確認する必要があります。

<<:  マルチクラウド戦略の長所と短所、および推奨事項

>>:  グラフィカル分散コンセンサスアルゴリズム

推薦する

2019年最新WeChat公式アカウント運用・プロモーションを徹底解説!

2019年の仕事初日、WeChat公式アカウントについてもっと情報を共有する必要があると思います。結...

UCloud ラゴス ノードがオンラインになり、ナイジェリアでクラウド サービスが開始

*116ms はナイジェリアをカバーする AWS アイルランドノードのネットワークレイテンシデータで...

「巨人の敵」元奇の森

「我々は必ず元斉の森を倒すと決意している。」 「今年は元斉森林炭酸水は市場に出回らなくなります。」元...

SEOにおけるアンカーポイントとリンクの役割についての簡単な説明

みなさんこんにちは。私はハルビンバーチャルリアリティウェブサイトデザインです。最近、最適化の詳細につ...

解決済みdos-6.75USD/512MB RAM/25GB HDD/500GB フロー/アンチDDoS

このプロモーションのホストはロサンゼルスにあり、デフォルトで 1Gbps の DDoS 保護を提供し...

25社のプログラマーの年収表:アップルは6位に留まり、マイクロソフトは18位

グラスドアマッピング25社のプログラマーの年収:アップルは6位に留まる海外メディアの報道によると、調...

知っておくべき百度入札の隠れたルール

昔は、SEO を通じてウェブサイトを作成することで、一人でも多額の収入を得ることができました。今は違...

extravm: オランダの VPS、10Gbps 帯域幅、無制限のトラフィック、無料の DDoS 保護、月額 5 ドル、1G メモリ/1 コア/15g NVMe

extravm は、オランダのアムステルダムに新しいデータセンターを設立しました。オランダの VPS...

ブロックチェーンと分散型台帳の違い

暗号通貨とブロックチェーンの分野では、業界関係者の間でよく話題になる新しい用語があります。それは、分...

インターネット業界は複数の規制当局に直面:複数の規制問題は未解決のまま

動画業界のライセンスは多種多様で、企業側はライセンスの違いに戸惑うほどです。各省庁や協会が数日おきに...

ウェブマスターはどのようにして正しいロボットを作成できるのでしょうか?

SEO最適化技術の品質は、コンテンツと外部リンクだけでなく、いくつかの詳細の処理にも左右されます。コ...

映画ウェブサイトの SEO を行うにはどうすればいいですか? ホームページがブロックされた後に素早く回復するにはどうすればいいですか?

今日は、映画のウェブサイトを最適化する方法と、映画のウェブサイトがブロックされたり、スナップショット...

インターネット上の無料戦略

世界で最も簡単なことと最も難しいことは何か知っていますか? 今から説明しましょう。最も簡単なのは自分...

ウェブマスターネットワークニュース: 12306 がチケット盗用ソフトウェアをブロック、Alipay ウォレットが財務管理セクションを改善

1.12306はオンラインチケット取得ソフトウェアをブロックします昨日、鉄道旅客乗車券システム監視セ...