BIG-IPでのクライアントからの初回アクセスを負荷分散する際の方式は、大きく分けて、事前に定義された方式に基づいて接続を分散するスタティックとサーバの状態をみて接続を分散するダイナミックに分類されます。
この記事は、以下の構成を前提としていますので、先に読んでいただくことをおすすめします。
>> 参考記事 : 負荷分散の基本設定と動作確認(Node、Pool、VirtualServer)セッション維持(パーシステンス)については、下記の記事を参考にしてください。
>> 参考記事 : セッションパーシステンス と動作確認ロードバランシング方式の設定箇所
ロードバランシング方式の設定はPoolに対して行います。
Main >> Local Traffic >> Virtual Servers >> Pools へ移動し、Web-Poolをクリックします。
Membersタブを選択すると、Pool Memberの設定画面が表示され、各メンバーに対してのロードバランシング方式をLoad Balacing Methodで設定できます。
スタティック方式
スタティック方式はラウンドロビン(Roung Robin)と比率(Ratio)の2種類になります。
ラウンドロビン(Round Robin)
この方式は、負荷分散対象のサーバに対して、順番かつ、均等に接続を振り分けます。これはデフォルトの設定です。
Web-01:80 と Web-02:80 の2つのメンバに対して、ラウンドロビンを適用する際は、1つ目の接続をWeb-01:80に、2つ目の接続をWeb-02:80に、3つ目の接続はWeb-01:80に と均等に割り当てます。
では、端末からVirtualServer宛に複数回アクセスを試みます。 すると、Web-01とWeb-02が交互に表示されます。
Statistics >> Module Statistics >> Local Traffic >> Pools でコネクションの統計を確認します。
確認すると、Web-01:80 とWeb-02:80 がそれぞれ50ずつコネクションが接続されていたことがわかります。 つまり、Web-01:80 とWeb-02:80で均等に接続が振り分けられています。
均等にコネクションが割り振られることから、Pool Memberのそれぞれのスペック(性能)は同じであるものに対して、この方式を適用します。
もし、Pool Memberのそれぞれのスペック(性能)に差があれば、比率(Ratio)の適用を考えます。
比率(Ratio)
この方式は負荷分散対象のサーバに対して設定した比率で接続を割り振ります。
Pool設定の中のLoad Balacing MethodをRatio(member)に変更し、Updateをクリックします。
比率(Ratio)の設定は各Pool Memberで設定します。デフォルトの値は1で、これだとラウンドロビンと変わりません。
今回は、Web-01:80 の性能がWeb-02:80の性能より10倍あるとし、比率をWeb-01:80:Web-02:80 = 10 : 1にします。
Web-01:80をクリックします。
Ratioの値を10にして、Updateをクリックします。
Pool Memberの設定でもRatio が10:1であることが確認できます。
では、端末からVirtualServer宛に複数回アクセスを試みます。すると、ほとんどWeb-01ばかり表示され、Web-02 はたまにしか表示されません。
Statistics >> Module Statistics >> Local Traffic >> Pools でコネクションの統計を確認します。
トータル110回アクセスした結果、Web-01:80 が100 、Web-02:80 が10のコネクションが接続されていたことがわかります。 つまり、Web-01:80 とWeb-02:80の割合が10:1であることが確認できます。
ダイナミック方式
ダイナミック方式では、プール内の負荷分散対象のどのサーバに接続を割り振るのかを、サーバの接続状況をチェックしてから決定します。
赤枠がダイナミック方式として設定できる項目であり、かなり種類があります。
実際によく使われるダイナミック方式として、最小コネクション(Least Connection)と 最小セッション(Least Session)を紹介します。
最小コネクション(Least Connection)
現在のコネクションテーブル上で、どれだけのコネクションがあるかを確認し、次のリクエストに対して、一番コネクションが少ないサーバへ接続を割り振ります。
例えば、Webサーバ 3台のPoolMemberにて、現在のコネクションが
- Web-01:80:3コネクション
- Web-02:80:2コネクション
- Web-03:80:1コネクション
だとします。 この場合、次のリクエストの割り振り先は、一番コネクション数の少ないWeb-03:80に割り振ります。
以下の画面の通り、Least Connectionの判定で測定するコネクション数は、Node単位、およびPool Member単位のいずれでも可能です。
最小セッション(Least Session)
現在のパーシステンステーブルを見て、次のリクエストに対して、一番セッションが少ないサーバへ接続を割り振ります。
この方式はCookieパーシステンスでは使用できず、設定するとラウンドロビンと同様の動作になります。
Least Connectionと異なり、判定で使用するセッション数の測定でNode単位とPoolMember単位の使い分けができません。
コメント