LVSの3つの動作モード(負荷分散)

A、LVS紹介

       LVS(Linuxの仮想サーバー)、Linuxの仮想サーバーは、博士張温曲プロジェクトのオープンソースの負荷分散によって導かれ、現在、LVSは、Linuxカーネルモジュールに統合されています。プロジェクトの実装IPベースのデータは、図1に示すアーキテクチャスケジューリング方式を、ロードバランシングを要求し、会社の外部のサーバロードバランシングは、エンドユーザーの要求がWeb LVS Linuxカーネルのスケジューラに送信され、外部のインターネットアクセスからユーザー端末エンドユーザアクセススケジューラがLVSいる間、スケジューラが予め設定されたアルゴリズムのその後端に応じてWebサーバに要求を送信することを決定し、例えば、ポーリングアルゴリズムは、後端部の全ての平均に外部サーバに要求することができますユーザーに実際のバックエンドサーバーに転送するが、実際のサーバ接続が同じメモリであれば、同じサービスにもかかわらず、その実サーバへのアクセスのエンドユーザーにサービスを提供され、サービスが得る同じですが、クラスタ全体すべて透明のために。最後に、LVSの伝送モードに応じて、実サーバは、ユーザが必要とするエンドユーザーのデータに別の方法を選択します、動作モードには、LVS NATモード、TUNモードとDRモードに分かれています。


第二に、解決の3つの動作モード。

NATモードのバランスをとるLVS負荷に基づいて1、

      NAT役割は、データパケットのヘッダを変更することです(ネットワークアドレス変換)、すなわち、ネットワークアドレス変換は、プライベートIPアドレスは、企業内、企業内に配置されたプライベートIPホストにアクセスできる外部のユーザーと同様に、インターネットにアクセスできるようになっています。図2に示されているVS / NAT動作モードトポロジー、LVS負荷スケジューラは、内部のスイッチング素子、eth1の機器と外部ネットワークのIPを介して相互に接続された2つの異なるIPアドレスをNIC構成は、eth0セットプライベートIPネットワークを使用することができます外部ネットワーク接続。

       実サーバとは反対に、会社の住所、上記ネットワーク負荷外のデバイスのバランスを解決するには、インターネットDNSサーバーを介して、ユーザは、また、VIP(仮想IPアドレス)として知られている外部ネットワークIPを、LVS最初のステップは、ユーザアクセスVIPを通じて、あなたは接続することができます実サーバ(実サーバ)を終了し、すべてこれはユーザーに対して透過的で、ユーザーは、彼が実サーバで訪れると思ったが、彼は自分自身のVIPアクセスがちょうどスケジューラです知りませんでした、それは本当のバックエンド不明ですどこのサーバ、実サーバの数。

   第二のステップは、ユーザは、124.126.147.168にLVSは実サーバ(〜192.168.0.3 192.168.0.1)が予め設定されたアルゴリズム、データ・パケットの実サーバへの転送要求に応じて選択された今回の後端に要求を送信し、そしてLVSは、パケットの宛先アドレスと宛先ポートを変更します転送する前に、宛先アドレスと宛先ポートが選択された実サーバのIPアドレスと対応するポートに変更されます。

    第三ステップの後、LVSスケジューラに実サーバの応答データパケットのバックには、スケジューラは、完成された送信元アドレスと送信元ポート意志の変更を取得するために、データパケットに応じて、スケジューラで対応するポートを変更し、スケジューラVIPですまた、エンドユーザに対する応答パケットバック、LVSハッシュテーブルスケジューラ接続があるので、記録され、接続要求メッセージ、ハッシュからディスパッチャへの接続を有する次のデータパケットを転送します表には、前のレコードに直接接続され、記録情報に基づいて同じ実サーバおよびポート情報を選出することができます。


2、ベースTUNのバランスをとるLVSロード

       数は、バックエンドサーバ10よりも大きい場合、クラスタ環境LVS(NAT)モードでは、前方スケジューラLVSを通過する必要性に応じて、すべてのデータ要求やデータパケットいるので、スケジューラは、クラスタ全体の環境のボトルネックになります。私たちは、データ要求パケットは、常に応答パケットのはるかに小さいサイズであることを知っています。応答パケットは、データの特定の顧客のニーズが含まれているため、LVS(TUN)は、アイデアはこれだけデータ要求プロセススケジューラことを、別々の要求と応答データにあり、直接クライアントに実サーバの応答データパケットのバックをしましょう。図3に示すように、トポロジーのVS / TUNモード。IPトンネル(IPの細く)は、データパケットのカプセル化技術であり、それは元のパケットをカプセル化することができ、目標を達成するように、(新しい送信元アドレスおよびポート、宛先アドレス及びポートを含む)は、新しいヘッダを付加しますパケットカプセル化VIPアドレススケジューラは、実サーバ(実サーバ)のバックエンドへのトンネルを介して転送され、クライアントを介して元のパケットのカプセル化のスケジューラに送られ、その根拠(修飾された標的に新しいヘッダを追加しますIPアドレスと対応するポートアドレスをディスパッチャ実サーバから選択される)、LVS(TUN)モードで、直接外部ネットワークに接続することができ、直接データパケットに対して要求データの受信に応答してクライアントホストに実サーバを実サーバを必要とします。


DR LVSに基づいて、図3に示すように、ロード・バランシング

LVSでも、サーバーの負担を増加させ、ディスパッチャとLVS実サーバ間のトンネルの必要性に起因する(TUN)モード、、。そしてLVS(TUN)は同様に、DRモードは、直接ルーティングモード、図4に示すアーキテクチャと呼ばれ、データモードが要求インバウンドやすくLVS、かつ合理的な実サーバに係るのみ選択されたアルゴリズムのままで、そして最終的には後端によって実サーバは、パケットがクライアントに返送される応答する責任があります。そして、トンネルモードでは、ダイレクトルーティングモード(DRモード)が異なるとバックエンドサーバーがあるため、最終的に実サーバクライアントに、ディスパッチャは、同じLANに、すべてのサーバー間で共有するためのVIPアドレスのニーズとバックエンドスケジューラでなければならない必要が私たちは、そのクライアントが送信元アドレスに応じて、VIPアドレススケジューラにアクセスできるようにしてもVIPアドレス(実サーバ上のVIP)のまま、時にVIPアドレス、宛先IPクライアントIPのための応答パケットのIPソースを設定する必要がありますクライアントは感知できないバックエンドサーバが存在です。多くのコンピュータが直接ルーティングモードでのスケジューラの要求ので、同じAのVIPアドレスが設けられているので、VIPアドレスは、スケジューラホストに要求パケットに対するクライアントのニーズの外側表示され、実サーバのすべてのVIPアドレス非ARPネットワークデバイス上に設定されている必要があり、あること、ネットワークデバイスは、自身のMACの外にブロードキャストしないと、対応するIPアドレスは、VIP実サーバは、外の世界には見えませんが、実サーバは、ターゲットアドレスを受け入れましたVIPアドレスとしてVIPのネットワーク要求、およびデータパケットに応答して、送信元アドレス。選択されたスケジューラ実サーバの後に、データパケットを変更せずに、データフレームは、選択されたアルゴリズムによれば、実サーバによってスイッチにデータフレームを実サーバのMACアドレスMACアドレスを変更します。プロセスを通じて、VIP実サーバは、外の世界に見えるようにする必要はありません。


三、LVS負荷分散スケジューリングアルゴリズム

      以前の報告によると、我々は3つの動作モードのLVSについて学んだが、関係なく、モードが使用される実際の環境の、戦略およびスケジューリングアルゴリズムスケジューリングアルゴリズムは、LVSのコア技術である、カーネルの主な成果を少しLVSスケジューリングアルゴリズムの10種類。

1.ラウンドロビンスケジューリング

ラウンドロビンスケジューリング(ラウンドロビンが「RR」と称する)アルゴリズムは別のサーバをスケジュールする要求のサイクルで方法で、アルゴリズムは最大の特徴は、簡単です。ポーリングアルゴリズムは、要求が同じサーバプロセスのすべての機能は、スケジューラは各実サーバに割り当てられたすべての要求を平均化することを前提としています。

2.重み付けラウンドロビンスケジューリング

加重ラウンドロビンは、(重量ラウンドロビンが「WRR」と呼ばれる)は、主に最適化アルゴリズムとサプリメントのポーリングアルゴリズムであり、LVSは、各サーバのパフォーマンスを考慮し、A場合は​​、サーバーに、各サーバーに重みを追加します値1、サーバBに値2、スケジューラのスケジュールサーバBへの要求は、サーバAは、二回になります。サーバーの高い重量は、より多くのリクエストを処理します。

3.最小接続スケジューリング

最小接続スケジューリング(最小接続が「LC」と称する)アルゴリズムは、現在接続の最小数とサーバへの新しい接続要求を割り当てることです。最小接続スケジューリングは、サーバに接続して、サーバーの数を推定する動的スケジューリングアルゴリズムが現在アクティブです。接続が失われたまたは接続の1マイナス数でタイムアウト、スケジューラは、要求が1プラス接続数でサーバに送出されたときに、各サーバーへの接続数は、確立された記録する必要があります。

(実サーバのクラスタシステムは、より良い負荷のバランスをとることができ、最小コネクションスケジューリングアルゴリズムと、同様の性能を持っています。)

4.加重最小コネクションスケジューリング

スケジューリング・アルゴリズムに接続された加重最小接続が(重量最小接続が「WLC」と呼ぶ)の重量に対応する最小のスーパーセットは、各サーバの処理性能を示しています。サーバーへの1のデフォルト値は、システム管理者が動的にサーバーの重みを設定することができます。サーバーは接続とその重みの数に比例した値として確立されているように、新しい接続をスケジュールにおける加重最小コネクションスケジューリング。クエリスケジューラは自動的に実サーバをロードし、動的に重みを調整します。

ローカル接続に基づく最小

キャッシュ・クラスタでは、顧客は、パケットの宛先を要求するので、局所最小コネクションスケジューリングに基づいて、スケジューリング要求パケットの宛先IPアドレス、キャッシュ・クラスタ・システムのためのキーをロードバランシングするためのアルゴリズム(地域ベースの最小接続は「LBLC」と呼びます) IPアドレスが変更されます。これは、任意のバックエンドサーバは、アルゴリズムは同じ宛先IPアドレスを要求するサーバが同じサーバにディスパッチされ、実質的にバランスの取れた負荷に設計され、各サーバは局所性を改善するために任意の要求を処理できるものとするとキャッシュは、全体のクラスタシステムの処理能力を強化するように、ヒット率。LBLCスケジューリングアルゴリズムは、最初のサーバーが利用可能で、オーバーロードされていない場合は、サーバに要求を送信し、最近使用される宛先IPアドレス要求に応じて、ターゲットサーバーのIPアドレスを見つけ、サーバが存在しない場合、またはサーバは、サーバが過負荷になっている場合と、半分にワークロードは、利用可能なサーバーを選択し、「最小接続の原則を使用して、サーバに要求を送信します。

6.バンドレプリケーション接続ベースの最小の産地

地域ベース最低-接続のコピー(複製と地域ベースの最小接続は「LBLCR」という)アルゴリズムは負荷分散対象IPアドレス、キャッシュ・クラスタ・システムのための鍵であり、それLBLCアルゴリズムが異なるということですサーバのグループにターゲットIPアドレスのマッピングを維持し、かつLBLCアルゴリズムは、サーバーへのターゲットIPアドレスからのマッピングを維持します。サーバが過負荷にされていない場合は、サーバーに要求を送信し、サーバーグループに11台のサーバーから選択を押して「最小接続」原則、サーバが過負荷になっている場合には、プレス「最小接続」サーバクラスタ全体から選ば原則その後、サーバーは、サーバーグループに追加されたサーバに要求を送信しています。一方、サーバーグループに変更されていないいくつかの時間のために、忙しいサーバは、複製の程度を低減させるためには、サーバーグループから削除されます。

7.送信先アドレスのハッシュスケジューリング

スケジューリング対象のアドレスハッシュ(先のハッシュの略語「DH」)アルゴリズムサーバーが利用可能な場合、ハッシュ静的割り当てのリストから該当するサーバーを見つけるために、ハッシュキー(ハッシュキー)として要求先IPアドレスに基づいてととオーバーロードされていない、要求が空にそれ以外の場合は、サーバーに送信されます。

8.ソースアドレスハッシュスケジューリングU

サーバーが利用可能な場合、ハッシュ静的割り当てのリストから該当するサーバーを見つけるために、ハッシュキー(ハッシュキー)として、要求の送信元IPアドレスに基づいて送信元アドレスのハッシュ(ソースハッシュの略語「SH」)アルゴリズムのスケジュールとし、オーバーロードされていない、要求が空にそれ以外の場合は、サーバーに送信されます。宛先アドレスのハッシュを持つハッシュ関数は、それがターゲットアドレスハッシュアルゴリズムプロセススケジューリングアルゴリズムと実質的に同様であり、同一のスケジューリング・アルゴリズムを使用します。

9.最短所望の遅延

最短予想遅延スケジューリング(最短予想遅延が「SED」という)WLCアルゴリズムアルゴリズム。それぞれ、たとえば、ABCの3台のサーバの重量1,2,3への権利を得ました。ですから、WLCのアルゴリズムを使用する場合は、新しい要求がそれに来るABCのいずれかを与えることができます。私たちは、使用後に計算アルゴリズムを実行しますSED

:(1 + 1)/ 1 = 2 B:(1 + 2)/ 2 = 3/2 C:(1 + 3)/ 3 = 4/3プット最小演算結果をもたらすサーバへの要求。

10.キュースケジューリング最小

キューなしの最小キュースケジューリング(決してキューは「NQ」という)アルゴリズム。接続数が0のRealServer直接割り当て過去に等しい場合は、動作はSED行われません。


公開された13元の記事 ウォンの賞賛3 ビュー4217

おすすめ

転載: blog.csdn.net/qq_43320461/article/details/105247781