【A10 Thunder】負荷分散方式と動作確認 5.2.0

A10

A10 Thunderの負荷分散にて、クライアントからの初回リクエストをどのサーバに転送するのかを決定するのに、ラウンドロビン最小コネクションなど様々な方式が選択できます。

この記事では、下記の構成を前提としていますので、先にお読みいただくことをおすすめします。

  >> 参考記事 :  サーバ負荷分散(レイヤ4)の基本設定と動作確認 5.2.0
スポンサーリンク

ロードバランシング方式の設定箇所

ロードバランシング方式は、サービスグループで設定します。GUIでは、ADC >> SLB >> Service Groups より設定できます。

下記の例は、作成したsg-webというサービスグループで、グループ内に、Web-01Web-02がメンバとして所属しています。Algorithmというのが、ロードバランスシング方式で、デフォルトは下記のとおり、ラウンドロビン(Round Robin)となります。

今回は、実務でよく使用される、下記方式の設定と動作確認をします。

  • ラウンドロビンRound Robin)
  • 最小コネクションLeast Connection
  • 重み付けラウンドロビンWeighted Round Robin)
  • サービスポートレベルの重み付けラウンドロビンWeighted Round Robin on service port level
スポンサーリンク

ラウンドロビン(Round Robin)

デフォルトのロードバランシング方式です。この方式は、負荷分散対象のサーバに対して、順番かつ、均等に接続を振り分けます

下記のとおり、Web-01Web-02の2つのメンバーに対して、ラウンドロビンを適用した場合、クライアントからのリクエストが均等に分散します。

クライアントのリクエストがWeb-01Web-02にそれぞれ15,14 と均等に振り分けられています。

ロードバランスの状況をCLIで確認するには、show slb service-group で確認できます。

vThunder# show slb service-group 
Total Number of Service Groups configured: 1
                   Current = Current Connections, Total = Total Connections
                   Fwd-p = Forward packets, Rev-p = Reverse packets
                   Peak-c = Peak connections
Service Group Name
Service                         Current    Total      Fwd-p     Rev-p     Peak-c
-----------------------------------------------------------------------------------
*sg-web               State: All Up
Web-01:80                       1          15         94        49        0        
Web-02:80                       1          14         84        44        0
スポンサーリンク

最小コネクション(Least Connection)

現在、どれだけのコネクションがあるかを確認し、次のリクエストに対して、一番コネクションが少ないサーバへ接続を割り振ります。

サービスグループ設定(ADC >> SLB >> Service Groups)よりsg-webを選択し、Algorithmから、Least Connectionを選択し、設定を更新します。

CLIでは下記の通り設定します。

vThunder(config)# slb service-group sg-web tcp 
vThunder(config-slb svc group)# method least-connection 
vThunder(config-slb svc group)# exit 
vThunder(config)#

1台目のクライアントの接続で、複数のコネクションを張り(Web-01へ振られています)、2台目、3台目と端末から接続すると、コネクションの少ないWeb-02に振られます。

同様にCLIでも確認します。

vThunder# show slb service-group 
Total Number of Service Groups configured: 1
                   Current = Current Connections, Total = Total Connections
                   Fwd-p = Forward packets, Rev-p = Reverse packets
                   Peak-c = Peak connections
Service Group Name
Service                         Current    Total      Fwd-p     Rev-p     Peak-c
-----------------------------------------------------------------------------------
*sg-web               State: All Up
Web-01:80                       1          23         145       82        0        
Web-02:80                       3          8          71        51        0

重み付けラウンドロビン(Weighted Round Robin)

分散対象のメンバーサーバに対して、重みをつけて、ラウンドロビンWeighted Round Robin)することができます。

サービスグループ設定(ADC >> SLB >> Service Groups)よりsg-webを選択し、Algorithmから、Weighted Round Robinを選択し、設定を更新します。

CLIでは下記の通り設定します。

vThunder(config)# slb service-group sg-web tcp 
vThunder(config-slb svc group)# method weighted-rr 
vThunder(config-slb svc group)# exit 
vThunder(config)#

重み(Weight)は、サーバ単位で設定します。今回は、Web-01Web-02で、10:1になるように重みをつけてラウンドロビンします。

ADC >>  SLB >> Servers  で Web-01Editとし、Advanced FieldWeightを10に変更します。(デフォルトは1)

CLIでは下記の通り設定します。

vThunder(config)# slb server Web-01 10.0.200.100 
vThunder(config-real server)# weight 10

クライアントのリクエストがWeb-01Web-02にそれぞれ24, 2 で、おおよそ、10:1に振り分けられています。

同様にCLIでも確認します。

vThunder#show slb service-group 
Total Number of Service Groups configured: 1
                   Current = Current Connections, Total = Total Connections
                   Fwd-p = Forward packets, Rev-p = Reverse packets
                   Peak-c = Peak connections
Service Group Name
Service                         Current    Total      Fwd-p     Rev-p     Peak-c
-----------------------------------------------------------------------------------
*sg-web               State: All Up
Web-01:80                       2          24         148       80        0        
Web-02:80                       0          2            13        7         0

サービスポートレベルの重み付けラウンドロビン(Weighted round robin on service port level)

重み付けラウンドロビンWeighted Round Robin)は、リアルサーバ単位の重み設定によりラウンドロビンしました。サーバ単位ではなく、サービスポート単位で重みを付ける場合、サービスポートレベルの重み付けラウンドロビンWeighted round robin on service port level)を指定します。

今回は、Web-02のTCP80番の重みを20に変更します。

サービスグループ設定(ADC >> SLB >> Service Groups)よりsg-webを選択し、Algorithmから、Weighted round robin on service port level を選択し、設定を更新します。

CLIでは下記の通り設定します。

vThunder(config)# slb service-group sg-web tcp
vThunder(config-slb svc group)# method service-weighted-rr

重み(Weight)は、サーバのサービスポートで設定します。ADC >>  SLB >> Servers  で Web-02Port 80Editのうえ、Weightを20に変更し、設定を更新します。

下記のように値が更新されます。

CLIでは下記の通り設定します。

vThunder(config)# slb server Web-02 10.0.200.173 
vThunder(config-real server)#  port 80 tcp 
vThunder(config-real server-node port)# weight 20

クライアントのリクエストがWeb-01Web-02にそれぞれ4, 76 で、おおよそ、1:20で振り分けています。

同様にCLIでも確認します。

vThunder# show slb service-group 
Total Number of Service Groups configured: 1
                   Current = Current Connections, Total = Total Connections
                   Fwd-p = Forward packets, Rev-p = Reverse packets
                   Peak-c = Peak connections
Service Group Name
Service                         Current    Total      Fwd-p     Rev-p     Peak-c
-----------------------------------------------------------------------------------
*sg-web               State: All Up
Web-01:80                       0          4          24        12        0        
Web-02:80                       2          76         477       259       0

コメント

タイトルとURLをコピーしました