負荷分散アルゴリズムの設定

動作確認バージョン

vThunder Version 6.0.7-P2

ここでは、ロードバランサーの振り分け方式(負荷分散アルゴリズム)の設定方法を紹介します。
当該設定により、クライアント(ユーザー)からのアクセスを複数のサーバーへ振り分ける際の方式(ルール)を決定します。

注釈

ROUND ROBIN方式の設定

ここでは、ROUND ROBINによる振り分け方式(負荷分散アルゴリズム)について紹介します。
ROUND ROBINは、クライアントからのリクエストを各サーバーに均等に転送する振り分け方式です。

サンプル設定のシナリオ

  • Virtual Server名「vserver01」の振り分け方式を「ROUND ROBIN」にしたい。

構成図
Fig9101

シナリオにおける設定のながれ

1.以下のコマンドで、サービスグループ名「servicegroup01」の振り分け方式を「ROUND ROBIN」として作成する

CLIにて入力するコマンド

vThunder(config)#slb service-group servicegroup01 tcp
vThunder(config-slb svc group)#method round-robin
vThunder(config-slb svc group)#health-check http
vThunder(config-slb svc group)#member server01 80
vThunder(config-slb svc group-member:80)#member server02 80
vThunder(config-slb svc group-member:80)#

2.以下のコマンドで、サービスグループ名「servicegroup01」をVirtual Server名「vserver01」へ紐づける。

CLIにて入力するコマンド

vThunder(config)#slb virtual-server vserver01 172.16.10.100
vThunder(config-slb vserver)#port 80 http
vThunder(config-slb vserver-vport)#service-group servicegroup01

注釈

  • VRRP-Aにて冗長構成を行っている場合、virtual-server 設定配下にて、 vrid <vrid> の設定が必要です。忘れず行ってください。

(例):vThunder(config-slb vserver)#vrid 1

  • VRRP-Aによる冗長設定 にてvridを未設定の場合、上記のコマンドを入力しても次のようなエラーが表示されます。VRRP-Aの設定の見直しをお願いします。

(例): invalid VRID secified.

  • virtual-server のプロトコル[TCP]を設定、かつVRRP-Aを用いた冗長構成を行っていた場合、以下の設定を行うことでセッション同期が可能となります。必要な場合、忘れず行ってください。

(例):vThunder(config-slb vserver-vport)#ha-conn-mirror


正しく設定が完了したときのコンフィグレーションは次のとおり。
vThunder#show run slb service-group servicegroup01
!Section configuration: 104 bytes
!
slb service-group servicegroup01 tcp
  health-check http
  member server01 80
  member server02 80
!
vThunder#show run slb virtual-server vserver01
!Section configuration: 97 bytes
!
slb virtual-server vserver01 172.16.10.100
  port 80 http
    service-group servicegroup01
!

動作確認結果

クライアント側のサーバーで次のコマンドを実行する。出力結果からアクセスが「server01」と「server02」に均等に振り分けられていることを確認する。

$ curl http://172.16.10.100
server01
$ curl http://172.16.10.100
server02
$ curl http://172.16.10.100
server01
$ curl http://172.16.10.100
server02

LEAST CONNECTION方式の設定

ここでは、LEAST CONNECTIONによるロードバランス方式について紹介します。
LEAST CONNECTIONは、コネクション数が少ないサーバーに対して転送する振り分け方式です。

サンプル設定のシナリオ

  • Virtual Server名「vserver01」の振り分け方式を「LEAST CONNECTION」にしたい。

構成図
Fig9201

シナリオにおける設定のながれ

1.以下のコマンドで、サービスグループ名「servicegroup01」の振り分け方式を「LEAST CONNECTION」として作成する

CLIにて入力するコマンド

vThunder(config)#slb service-group servicegroup01 tcp
vThunder(config-slb svc group)#method least-connection
vThunder(config-slb svc group)#health-check http
vThunder(config-slb svc group)#member server01 80
vThunder(config-slb svc group-member:80)#member server02 80
vThunder(config-slb svc group-member:80)#

2.以下のコマンドで、サービスグループ名「servicegroup01」をVirtual Server名「vserver01」へ紐づける。

CLIにて入力するコマンド

vThunder(config)#slb virtual-server vserver01 172.16.10.100
vThunder(config-slb vserver)#port 80 http
vThunder(config-slb vserver-vport)#service-group servicegroup01

注釈

  • VRRP-Aにて冗長構成を行っている場合、virtual-server 設定配下にて、 vrid <vrid> の設定が必要です。忘れず行ってください。

(例):vThunder(config-slb vserver)#vrid 1

  • VRRP-Aによる冗長設定 にてvridを未設定の場合、上記のコマンドを入力しても次のようなエラーが表示されます。VRRP-Aの設定の見直しをお願いします。

(例): invalid VRID secified.

  • virtual-server のプロトコル[TCP]を設定、かつVRRP-Aを用いた冗長構成を行っていた場合、以下の設定を行うことでセッション同期が可能となります。必要な場合、忘れず行ってください。

(例):vThunder(config-slb vserver-vport)#ha-conn-mirror


正しく設定が完了したときのコンフィグレーションは次のとおり。
vThunder#show run slb service-group servicegroup01
!Section configuration: 104 bytes
!
slb service-group servicegroup01 tcp
  method least-connection
  health-check http
  member server01 80
  member server02 80
!
vThunder#show run slb virtual-server vserver01
!Section configuration: 97 bytes
!
slb virtual-server vserver01 172.16.10.100
  port 80 http
    service-group servicegroup01
!

動作確認結果

クライアント側のサーバーで次のコマンドを実行する。出力結果からアクセスが「server01」へロードバランサー経由で多数のアクセスを発生している状態で、別クライアントからの接続が「server02」へ振り分けられていることを確認する。

$ curl http://172.16.10.100
server02
$ curl http://172.16.10.100
server02
$ curl http://172.16.10.100
server02
$ curl http://172.16.10.100
server02

SOURCE IP HASH方式の設定

ここでは、SOURCE IP HASHによるロードバランス方式について紹介します。
SOURCE IP HASHは、クライアントからの送信元IPヘッダーのハッシュ値に基づきサーバーに転送される振り分け方式です。
同じIPヘッダーを利用するクライアントは必ず同じサーバーに転送されます。

サンプル設定のシナリオ

  • Virtual Server名「vserver01」の振り分け方式を「SOURCE IP HASH」にしたい。

構成図
Fig9301

シナリオにおける設定のながれ

1.以下のコマンドで、サービスグループ名「servicegroup01」の振り分け方式を「SOURCE IP HASH」として作成する

CLIにて入力するコマンド

vThunder(config)#slb service-group servicegroup01 tcp
vThunder(config-slb svc group)#method src-ip-only-hash
vThunder(config-slb svc group)#health-check http
vThunder(config-slb svc group)#member server01 80
vThunder(config-slb svc group-member:80)#member server02 80
vThunder(config-slb svc group-member:80)#

2.以下のコマンドで、サービスグループ名「servicegroup01」をVirtual Server名「vserver01」へ紐づける。

CLIにて入力するコマンド

vThunder(config)#slb virtual-server vserver01 172.16.10.100
vThunder(config-slb vserver)#port 80 http
vThunder(config-slb vserver-vport)#service-group servicegroup01

注釈

  • VRRP-Aにて冗長構成を行っている場合、virtual-server 設定配下にて、 vrid <vrid> の設定が必要です。忘れず行ってください。

(例):vThunder(config-slb vserver)#vrid 1

  • VRRP-Aによる冗長設定 にてvridを未設定の場合、上記のコマンドを入力しても次のようなエラーが表示されます。VRRP-Aの設定の見直しをお願いします。

(例): invalid VRID secified.

  • virtual-server のプロトコル[TCP]を設定、かつVRRP-Aを用いた冗長構成を行っていた場合、以下の設定を行うことでセッション同期が可能となります。必要な場合、忘れず行ってください。

(例):vThunder(config-slb vserver-vport)#ha-conn-mirror


正しく設定が完了したときのコンフィグレーションは次のとおり。
vThunder#show run slb service-group servicegroup01
!Section configuration: 104 bytes
!
slb service-group servicegroup01 tcp
  method src-ip-only-hash
  health-check http
  member server01 80
  member server02 80
!
vThunder#show run slb virtual-server vserver01
!Section configuration: 97 bytes
!
slb virtual-server vserver01 172.16.10.100
  port 80 http
    service-group servicegroup01
!

動作確認結果

クライアント側のサーバーで次のコマンドを実行する。出力結果からアクセスが同一のクライアントのIPアドレスによるものである場合、すべての接続が「server01」へ振り分けられていることを確認する。

$ curl --local-port 50000 http://172.16.10.100
server01
$ curl --local-port 50000 http://172.16.10.100
server01
$ curl --local-port 50000 http://172.16.10.100
server01
$ curl --local-port 50000 http://172.16.10.100
server01