Linux仮想サーバLVSの3つの負荷等化方式の比較
LVSはLinux Virtual Serverの略であり、Linux仮想サーバを意味し、仮想サーバクラスタシステムである。IP負荷等化技術とコンテンツリクエスト配信技術を採用したクラスタ技術です。スケジューラはスループットに優れ、要求を異なるサーバに均等に移行して実行し、スケジューラはサーバの障害を自動的に遮断し、高性能で高可用性の仮想サーバを構成します。サーバクラスタ全体の構造は、クライアントとサーバ側のプログラムを変更する必要がなく、クライアントに対して透過的です。本プロジェクトは1998年5月に章文嵩博士によって設立され、中国国内で最も早く現れたフリーソフトウェアプロジェクトの一つである。
このため、システムの透明性、伸縮性、高可用性、管理性を考慮して設計する必要があります。一般的に、LVSクラスタは3層構造を採用し、そのアーキテクチャは図に示す通りである。
LVSクラスタのアーキテクチャ
2、LVSの主要な構成部分は以下の通りである。負荷スケジューラ(load balancer/Director)は、クラスタ全体が外部のフロントエンドマシンに対して、顧客の要求をサーバのセットに送信して実行する責任を負い、顧客はサービスがIPアドレス(仮想IPアドレスと呼ぶことができる)から来ていると考えている。
サーバプール(server pool/Realserver)は、実際に顧客要求を実行するサーバのセットであり、実行するサービスは一般的にWEB、MAIL、FTP、DNSなどがある。
共有ストレージ(shared storage)は、サーバプールに共有ストレージ領域を提供し、サーバプールが同じコンテンツを持ち、同じサービスを提供しやすいようにします。
3、LVS負荷等化方式: Virtual Server via Network Address Translation NAT(VS/NAT)VS/NATは最も簡単な方法であり、すべてのRealServerは自分のゲートウェイをDirectorに向けるだけでよい。クライアントは任意のオペレーティングシステムであってもよいが、この方式ではDirectorが牽引できるRealServerは限られている。VS/NAT方式では、Directorを1台のRealServerに兼用することもできます。VS/NATのアーキテクチャを図に示す。
VS/NATのアーキテクチャ
Virtual Server via IP Tunneling(VS/TUN)IPトンネル(IP tunneling)は、1つのIPメッセージを別のIPメッセージにカプセル化する技術であり、これにより、1つのIPアドレスをターゲットとするデータメッセージを別のIPアドレスにカプセル化および転送することができる。IPトンネル技術はIPパッケージ技術(IP encapsulation)とも呼ばれる。IPトンネルは主にモバイルホストと仮想プライベートネットワーク(Virtual Private Network)に用いられ、トンネルは静的に構築され、トンネルの一端にはIPアドレスがあり、他端にも唯一のIPアドレスがある。その接続スケジューリングと管理はVS/NATと同様であるが,そのメッセージ転送方法は異なる.スケジューラは、各サーバの負荷状況に応じて、動的に1台のサーバを選択し、要求メッセージを別のIPメッセージにカプセル化し、カプセル化されたIPメッセージを選択したサーバに転送する。サーバはメッセージを受信した後、まずメッセージを解封して元のターゲットアドレスがVIPであるメッセージを取得し、サーバはVIPアドレスがローカルのIPトンネル装置に配置されていることを発見したので、この要求を処理し、ルーティングテーブルに基づいて応答メッセージを直接顧客に返す。
VS/TUNのアーキテクチャ
VS/TUNのワークフロー:VS/DR方式は、要求メッセージのMACアドレス部分を書き換えることにより実現される。DirectorとRealServerは、物理的に1つのNICが無停止のローカルエリアネットワークで接続されている必要があります。RealServerにバインドされたVIPは、loやtunlなどのNon-ARPのネットワークデバイス上に構成されており、DirectorのVIPアドレスは外部に表示されますが、RealServerのVIPは外部に表示されません。RealServerのアドレスは、内部アドレスであってもリアルアドレスであってもよい。
VS/DRのアーキテクチャ
VS/DRのワークフローVS/DRのワークフローは図に示すように、その接続スケジューリングと管理はVS/NATとVS/TUNと同様に、そのメッセージ転送方法はまた異なり、メッセージをターゲットサーバに直接ルーティングする。VS/DRでは、スケジューラは、各サーバの負荷状況に応じて動的に1台のサーバを選択し、IPメッセージを変更もカプセル化もせず、データフレームのMACアドレスを選択サーバのMACアドレスに変更し、変更後のデータフレームをサーバグループとのローカルエリアネットワーク上で送信する。データフレームのMACアドレスは選択されたサーバであるため、サーバはこのデータフレームを受信することができ、そこからIPメッセージを取得することができるに違いない。サーバがメッセージの宛先アドレスVIPがローカルのネットワークデバイス上にあることを発見すると、サーバはこのメッセージを処理し、ルーティングテーブルに基づいて応答メッセージを直接顧客に返す。
VS/DRのワークフロー
4、3種類の負荷等化方式の比較: Virtual Server via NATVS/NATの利点は、サーバがTCP/IPをサポートするオペレーティングシステムを実行できることであり、スケジューラ上にIPアドレスを1つだけ構成する必要があり、サーバグループはプライベートIPアドレスを使用することができる。欠点は、サーバノード数が20に上昇すると、VS/NATで要求および応答メッセージが負荷スケジューラを通過する必要があるため、スケジューラ自体がシステムの新しいボトルネックになる可能性があることである。Pentium 166プロセッサのホストで、書き換えメッセージの平均遅延を60 usと測定し、よりパフォーマンスの高いプロセッサでは遅延が短くなります。TCPメッセージの平均長さが536 Bytesであると仮定すると、スケジューラの最大スループットは8.93 MBytes/sである。各サーバのスループットは800 KBytes/sであり、このようなスケジューラは10台のサーバを牽引することができると仮定する。(注:これは以前に測定されたデータです)
VS/NATベースのクラスタシステムは、多くのサーバのパフォーマンス要件に適合することができる。負荷スケジューラがシステムの新しいボトルネックになると,この問題を解決するには,混合法,VS/TUN,VS/DRの3つの方法がある。DNSハイブリッドクラスタシステムには、いくつかのVS/NAT負のスケジューラがあり、各負荷スケジューラは独自のサーバクラスタを有し、これらの負荷スケジューラはRR-DNSを介して簡単なドメイン名を構成する。
しかし、VS/TUNおよびVS/DRは、システムのスループットを向上させるより良い方法である。
IPアドレスまたはポート番号をメッセージデータに転送するネットワークサービスでは、メッセージデータのIPアドレスまたはポート番号を変換するために、対応するアプリケーションモジュールを記述する必要がある。これにより、モジュールを適用してメッセージをチェックするコストが発生し、システムのスループットが低下します。
Virtual Server via IP TunnelingVS/TUNのクラスタシステムでは,負荷スケジューラは要求を異なるバックエンドサーバにのみスケジューリングし,バックエンドサーバは応答したデータを直接ユーザに返す.これにより、負荷スケジューラは大量の要求を処理することができ、システムのボトルネックにならない100台以上のサーバ(同規模のサーバ)をスケジューリングすることもできます。負荷スケジューラが100 Mbpsのフルデュプレクスネットワークカードしかない場合でも、システム全体の最大スループットは1 Gbpsを超えることができる。従って、VS/TUNは、負荷スケジューラがスケジューリングするサーバ数を大幅に増加させることができる。VS/TUNスケジューラは100台以上のサーバをスケジューリングできますが、それ自体がシステムのボトルネックにならず、高性能のスーパーサーバを構築するために使用できます。VS/TUNテクノロジーは、すべてのサーバが「IP Tunneling」または「IP Encapsulation」プロトコルをサポートする必要があるサーバに要求されます。現在、VS/TUNのバックエンドサーバは主にLinuxオペレーティングシステムを実行しており、他のオペレーティングシステムをテストしていません。「IP Tunneling」は各オペレーティングシステムの標準プロトコルとなっているため、VS/TUNは他のオペレーティングシステムを実行するバックエンドサーバに適用されるはずです。
Virtual Server via Direct RoutingVS/TUNメソッドと同様に、VS/DRスケジューラはクライアントからサーバへの接続のみを処理し、応答データは独立したネットワークルーティングから直接クライアントに返すことができる。これはLVSクラスタシステムの伸縮性を極めて高めることができる。VS/TUNと比較して、この方法はIPトンネルのオーバーヘッドがないが、負荷スケジューラが実際のサーバと同じ物理ネットワークセグメントに接続されていることが要求され、サーバネットワークデバイス(またはデバイス別名)はARP応答を行わないか、メッセージをローカルのSocketポートにリダイレクトすることができる。
3種類のLVS負荷等化技術の長所と短所を以下の表にまとめる。注意:以上の3つの方法でサポートできる最大サーバ数の推定は、スケジューラが100 Mネットワークカードを使用すると仮定し、スケジューラのハードウェア構成はバックエンドサーバのハードウェア構成と同じであり、一般的なWebサービスである。ギガビットNICや高速プロセッサなど、より高いハードウェア構成をスケジューラとして使用すると、スケジューラがスケジューリングできるサーバの数が増加します。アプリケーションが異なる場合、サーバの数もそれに応じて変わります。従って,以上のデータ推定は主に3つの方法の伸縮性の量子化比較である.
5、負荷等化スケジューリングアルゴリズム 1)最小限の接続方法(Least Connection): 2)最速モード(Fastest): 3)観察モード(Observed): 4)予測モード(Predictive): 5)動的性能配分(Dynamic Ratio-ACM): 6)動的サーバ補完(Dynamic Server Act.): 7)サービス品質(QoS): 8)サービスタイプ(ToS): 9)ルールパターン: