Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.3. LVS スケジューリングの概要

LVS を使用する利点の1つとして、実サーバー群で柔軟な IP レベルのロードバランシングを実行できる能力があります。この柔軟性は、管理者が LVS を設定している時に選択できるスケジューリングアルゴリズムの多様性によるものです。LVS ロードバランシングは、クライアントマシンによる DNS の階級的性格とそのキャッシングがロードのアンバランスになり易い、ラウンドロビン(Round-Robin) DNS などの他の柔軟性の低いメソッドに比べて優れています。更に、ネットワークパケットレベルでのロードバランシングは少々の演算負担と なる代わりに、より大きな拡張性を与えるため、LVS router で使用される低レベルのフィルタリングはアプリケーションレベルの要求転送よりも優れています。
Using scheduling, the active router can take into account the real servers' activity and, optionally, an administrator-assigned weight factor when routing service requests. Using assigned weights gives arbitrary priorities to individual machines. Using this form of scheduling, it is possible to create a group of real servers using a variety of hardware and software combinations and the active router can evenly load each real server.
LVS 用のメカニズムは IP 仮想サーバー いわゆる IPVS モジュールと呼ばれるカーネルパッチの集合によって提供されます。これらのモジュールは 単独 IP アドレス上で複数のサーバーとうまく動作するように設計されている レイヤー(layer) 4 (L4)トランスポートレイヤーを有効にします。
パケットを見つけて実サーバーまで効率的に回送する為に、 IPVS はカーネル内に IPVS 表 を構成します。この表はアクティブ LVS router が 仮想サーバーアドレスからの要求を実サーバー群とやり取りするのに使用されます。 IPVS 表は ipvsadm と呼ばれるユーティリティで常時更新 されており、使用可能状態に応じてクラスタメンバーを追加したり削除したりします。

1.3.1. スケジューリングアルゴリズム

The structure that the IPVS table takes depends on the scheduling algorithm that the administrator chooses for any given virtual server. To allow for maximum flexibility in the types of services you can cluster and how these services are scheduled, Red Hat Enterprise Linux provides the following scheduling algorithms listed below. For instructions on how to assign scheduling algorithms refer to 仮想サーバー サブセクション」.
Round-Robin Scheduling
それぞれの要求を連続的に実サーバーの集合体を回って分配します。このアルゴリズムを 使用すると、全ての実サーバーは能力や負荷に関係なく、平等に取り扱われます。 このスケジューリングモデルは、ラウンドロビン DNS に似ていますが、それがネットワーク接続 ベースでありホストベースでないと言う事実で、より小粒状になっています。LVS ラウンドロビン スケジューリングはまた、キャッシュ化した DNS クエリによって起こるアンバランスの害を 受けません。
Weighted Round-Robin Scheduling
Distributes each request sequentially around the pool of real servers but gives more jobs to servers with greater capacity. Capacity is indicated by a user-assigned weight factor, which is then adjusted upward or downward by dynamic load information. Refer to 「サーバー能力分別とスケジューリング」 for more on weighting real servers.
実サーバーの集合体の中でその能力に重要な格差がある場合は、能力別ラウンドロビンスケジューリングが 優先されるべきです。しかし、要求ロードが劇的に変化する場合、より大きな能力を持つサーバーが 要求の分担以上に対応する可能性があります。
Least-Connection
少ないアクティブ接続を持つ実サーバーにより多くの要求が分配されます。 IPVS 表を通じて実サーバーへの活動中接続の記録を取るため、最低稼働機接続は 動的スケジューリングアルゴリズムの一種であり、要求負荷に大幅な変化がある 状況にはより良い選択になります。これは各メンバーノードがおよそ同様な 能力を持つ実サーバー群に最適なものです。サーバー群が異なる能力を持つ場合、 能力別最低稼働機接続スケジューリングがより良い選択となります。
Weighted Least-Connections (default)
Distributes more requests to servers with fewer active connections relative to their capacities. Capacity is indicated by a user-assigned weight, which is then adjusted upward or downward by dynamic load information. The addition of weighting makes this algorithm ideal when the real server pool contains hardware of varying capacity. Refer to 「サーバー能力分別とスケジューリング」 for more on weighting real servers.
Locality-Based Least-Connection Scheduling
目的地 IP に関連してより少ないアクティブ接続を持つサーバーにより多くの要求が 分配されます。このアルゴリズムはプロキシキャッシュサーバークラスタ内での使用に 設計されています。ある IP アドレス用のサーバーがその能力超過になっていなくて、 負荷が半分のサーバーがない場合、そのアドレス用のパケットをそのアドレスのサーバーに 回送します。その状況では、 IP アドレスは最低稼働の実サーバーに割り当てられます。
Locality-Based Least-Connection Scheduling with Replication Scheduling
目的地 IP に関連してより少ないアクティブ接続を持つサーバーにより多くの要求を 分配します。このアルゴリズムもプロキシキャッシュサーバークラスタ内での 使用の為に設計されています。これは、目的地 IP を実サーバーノードのサブセットに マップすることでローカリティベース最低稼働機接続スケジューリングと区別されます。 要求は、最低数の接続を持つサブセット内のサーバーに回送されます。目的地 IP の 全てのノードが能力を超過している場合、実サーバー群の全集合体の中から最低接続を持つ サーバーを、目的地 IP 用の実サーバーサブセットに追加することにより、その IP アドレス 用に新規サーバーを再生します。最大負荷を持つノードはその後、実サーバーサブセットから 排除されて過剰再生を防止します。
Destination Hash Scheduling
静的ハッシュ表内で目的地 IP を見つけることにより実サーバーの集合体に要求を 分配します。このアルゴリズムはプロキシキャッシュサーバークラスタ内での使用に 設計されています。
Source Hash Scheduling
静的ハッシュ表内でソース IP を見つけることにより実サーバーの集合体に要求を分配 します。このアルゴリズムは複数ファイアウォールを持つ LVS router 用に設計されて います。