Appliance Technical Notes No.131 ArrayAPV TMX 負荷分散機能の基本 対象製品 対象バージョン 概要 ArrayAPV シリーズ ArrayTMX シリーズ 6.5.2.x, 8.1.x 以降 ArrayAPV/TMX の負荷分散設定は 実サーバ グループ 仮想サービス ポリシー の 4 つの要素で成り立っています これらの組み合わせにより 様々な種類の実サーバに対して様々な負荷分散アルゴリズムを定義することが可能です 本書では 実サーバ 2 台へのラウンドロビンによる負荷分散という 最も単純な設定を例として ArrayAPV/TMX の負荷分散設定の基本を解説します 前提条件など シリアルコンソール接続による CLI によって ArrayAPV/TMX の設定ができること 負荷分散対象の実サーバ 2 台 および Web サイトへアクセスするクライアント PC の準備ができ なおかつそれらを ArrayAPV/TMX と接続できること 開示範囲 一般 本書のご利用に関して 本ドキュメントは作成時点の最新情報を基に記載しています ご使用機器の OS バージョン等必ずご確認の上でご活用をお願いいたします また 本書の正確さに最大限の努力をはらっていますが 本書の無謬性 その他について一切保証はいたしません 本書の利用に基づくいかなる結果 損害にも責任を負いかねますので ご了承ください 文書名... ATN-131 ArrayAPV TMX 負荷分散機能の基本.doc リビジョン... 34 初版... 2010/10/05 Y.Shinto 最新版... 2012/12/20 E.Uchida All rights reserved, 2005-2012, Hitachi Solutions, Ltd. 1
目次 1. はじめに... 3 1.1. ArrayAPV/TMX シリーズの負荷分散設定概要... 3 1.2. 本書での想定構成... 4 2. 負荷分散設定の流れ... 5 3. 設定確認... 6 4. 実サーバの登録... 7 5. グループの定義... 8 6. 仮想サービスの定義... 9 7. ポリシーの定義... 10 8. 負荷分散動作の確認... 11 8.1. 設定確認... 11 8.2. 負荷分散動作の確認... 11 2 ATN-131 ArrayAPV/TMX 負荷分散機能の基本
1. はじめに ArrayAPV/TMX シリーズの負荷分散設定は 実サーバ グループ 仮想サービス ポリシー の 4 つの要素で成り立っています このうち 一般に負荷分散アルゴリズムと呼ばれるものは グループ および ポリシー によって構成されます 本書では 実サーバ 2 台のラウンドロビンによる分散設定という単純な構成での設定を例にとり 基本的な負荷分散設定を解説します 各負荷分散アルゴリズムの詳細につきましては ATN-127 ArrayAPV TMX 負荷分散アルゴリズム詳細 や製品マニュアルを別途ご参照ください 1.1. ArrayAPV/TMX シリーズの負荷分散設定概要 上述のとおり ArrayAPV/TMX シリーズの負荷分散設定は 実サーバ グループ 仮想サービス ポリシー の 4 つの要素で成り立っています 各要素は図 1.1 のように紐付いております 実サーバ 実サーバ グループ ポリシー 仮想サービス 図 1.1 ArrayAPV/TMX の負荷分散設定要素 設定の流れとしては 図 1.1 の各要素を上から順番に定義していく形となります クライアントからのアクセス時にはその逆に 図の下の要素から順番に評価が移ります クライアントが ArrayAPV/TMX の仮想サービスに対してリクエストを送ると ArrayAPV/TMX はその仮想サービスに紐付けられたポリシーを評価し マッチするものを探します マッチするポリシーが見つかると そのポリシーに紐付けられたグループに評価が移ります グループでは そのメンバの実サーバから各グループの種類に応じたアルゴリズムでリクエストの振り分け先サーバを選択します ArrayAPV/TMX はその選択された実サーバに対してリクエストを振り分けます 図 1.1 では実サーバが 2 つ その他の要素が 1 つしか書かれていません しかし 実際には各要素は 1 つ以上の任意の数だけ定義可能です また 各要素にはタイプが存在します 実サーバ 仮想サービスであればそのサービスのプロトコル (HTTP など ) ですが 特にグループ ポリシーの種類は負荷分散アルゴリズムの種類と同義です All rights reserved, 2005-2012, Hitachi Solutions, Ltd. 3
1.2. 本書での想定構成 本書では 図 1.2 のような構成を想定しています これにあわせ クライアント PC やサーバを準備してください Array の仮想 IP アドレス 172.16.0.50 ArrayAPV/TMX Server1/HTTP サーバ クライアント PC 192.168.1.1 Array クライアント側 インタフェースの IP アドレス 172.16.0.100 Array サーバ側インタフェースの IP アドレス 192.168.1.254 Server2/HTTP サーバ 192.168.1.2 図 1.2 本書での想定構成 負荷分散対象の実サーバは 2 台 ArrayAPV/TMX の持つ仮想サービスは 1 つ クライアントから仮想サービスへのリクエストをラウンドロビン (2 台の実サーバへ順番に ) で振り分け 4 ATN-131 ArrayAPV/TMX 負荷分散機能の基本
2. 負荷分散設定の流れ 本書では 下記の流れで ArrayAPV/TMX の負荷分散設定を行います 1. Array の設定確認 2. 実サーバの登録 3. グループ定義 4. 仮想サービスの設定 5. ポリシー定義 終了 All rights reserved, 2005-2012, Hitachi Solutions, Ltd. 5
3. 設定確認 Array へログインし Enable モードに移行します その後 設定変更が可能な Config モードに移行します Array Networks Login (AN): array Password:admin 工場出荷状態のユーザ名 およびパスワードは下記のとおりです ユーザ名 : array パスワード : admin ArrayOS Rel.APV.8.3.0.39 build on Mon Sep 17 11:26:32 2012 パスワードは実際には画面上に表示されません Copyright (c) 2000-2012 Array NetWorks Inc. All rights reserved. Type "?" for available commands AN>enable Enable password: 工場出荷状態ではパスワードは設定されていないので そのままエンターキーを押してください AN#config terminal コンフィグモード ( 設定変更可能なモード ) に移行します AN(config)# show running コマンドにて 現在動作している設定を表示します その中で 負荷分散設定を確認します 負荷分散設定は #slb configuration 以下の slb ではじまるコマンドです デフォルトの何も設定していない状態ですと 下記のようにデフォルト値のみがコンフィグに現れます (OS のバージョンにより 多少異なります ) また # で始まる行はコメントであり 動作には影響しません AN(config)#show running : 中略 : #slb configuration slb mode ircookie plainname slb mode icookie always slb virtual health off #default policy order: # qos-clientport 1 # qos-network 2 # pu 3 : 略 6 ATN-131 ArrayAPV/TMX 負荷分散機能の基本
4. 実サーバの登録 負荷分散対象となる実サーバを定義します ここでは 192.168.1.1 および 192.168.1.2 で動作する HTTP サーバ 2 台を定義する例を示します AN(config)#slb real http server1 192.168.1.1 80 1000 http 3 3 実サーバを識別する名前を指定します サーバと Array 間の Max コネクション数を設定します ヘルスチェックの UP と DOWN の判定回数を指定します ヘルスチェックの形式を指定します 残りの負荷分散対象サーバも同様に定義します AN(config)#slb real http server2 192.168.1.2 80 1000 http 3 3 All rights reserved, 2005-2012, Hitachi Solutions, Ltd. 7
5. グループの定義 グループを定義し それに対して実サーバをメンバとして割り当てます AN(config)#slb group method group-rr rr グループを識別する名前を指定します 振り分け方式を指定します rr はラウンドロビンです 定義したグループに対し 実サーバをメンバとして割り当てます AN(config)#slb group member group-rr server1 AN(config)#slb group member group-rr server2 ArrayAPV/TMX では ラウンドロビン以外にも様々なグループが存在します グループの種類によって メンバの実サーバのうちリクエストを振り分けるものを決定する方式は異なります 詳細は別途 製品マニュアルなどをご参照ください 8 ATN-131 ArrayAPV/TMX 負荷分散機能の基本
6. 仮想サービスの定義 クライアントからアクセスを受ける HTTP の仮想サービスを定義します AN(config)#slb virtual http virtual-http 172.16.0.50 80 仮想サービスを識別する名前を指定します All rights reserved, 2005-2012, Hitachi Solutions, Ltd. 9
7. ポリシーの定義 ポリシーを定義し 仮想サービスとグループを紐付けます AN(config)#slb policy default virtual-http group-rr 紐付ける仮想サービス およびグループの名前を指定します ポリシーには default ポリシー以外にも下記のような様々なものが存在します 1. static 2. qos clientport 3. qos network 4. persistent url 5. rewrite cookie 6. insert cookie 7. persistent cookie 8. qos cookie 9. qos hostname 10. qos url 11. regex 12. header 13. hash url 14. default 15. backup 1 つの仮想サービスに対して複数のポリシーが定義されている場合 ArrayAPV/TMX は Policy Order の順に各ポリシーを評価します デフォルトの Policy Order は上記の 1~15 の順です これを変更する場合 下記コマンドにて設定します slb policy order <order-template-name> <policy-type> <precedence> * 各ポリシーの詳細 および Policy Order の詳細につきましては 製品マニュアルなどを別途ご参照ください 10 ATN-131 ArrayAPV/TMX 負荷分散機能の基本
8. 負荷分散動作の確認 8.1. 設定確認 これまでで ArrayAPV/TMX の基本的な負荷分散の設定は完了です show slb all コマンドにて 正しく設定がなされているかを確認します AN(config)#show slb all slb mode ircookie plainname slb mode icookie always slb real http "server1" 192.168.1.1 80 1000 http 3 3 slb real http "server2" 192.168.1.2 80 1000 http 3 3 slb group method "group-rr" rr slb group member "group-rr" "server1" 1 slb group member "group-rr" "server2" 1 slb virtual http "virtual-http" 172.16.0.50 80 arp 0 slb virtual health off #default policy order: # qos-clientport 1 # qos-network 2 # pu 3 # rc 4 # ic 5 # pc 6 # qos-cookie 7 # qos-hostname 8 # qos-url 9 # regex 10 # header 11 # hu 12 slb policy default "virtual-http" "group-rr" AN(config)# 8.2. 負荷分散動作の確認 クライアントから ArrayAPV/TMX の仮想サービスに対してアクセスします 下記のようにブラウザへ仮想サービスの IP アドレスを入力してください Web ページが正しく表示されない場合は ArrayAPV/TMX の設定 および Web サーバの設定を確認してください http://172.16.0.50/ All rights reserved, 2005-2012, Hitachi Solutions, Ltd. 11
本書では 2 台の実サーバに対してラウンドロビンでの振り分け設定を行っております ブラウザを更新すると 2 台の実サーバに対して順番にリクエストが振り分けられます show statistics slb real all コマンドにて 各実サーバに対してどれだけのリクエストが振り分けられたのかを確認します AN(config)#show statistics slb real all Real service server1 192.168.1.1 80 UP ACTIVE Main health check: 192.168.1.1 80 http UP Max Conn Count: 1000 Current Connection Count: 0 Outstanding Request Count: 0 Total Hits: 3 Total Bytes In: 3274 Total Bytes Out: 1018 Total Packets In: 5 Total Packets Out: 6 Average Response time: 0.886 ms server1 へリクエストが振り分けられた回数 Real service server2 192.168.1.2 80 UP ACTIVE Main health check: 192.168.1.2 80 http UP Max Conn Count: 1000 Current Connection Count: 0 Outstanding Request Count: 0 Total Hits: 2 Total Bytes In: 1046 Total Bytes Out: 612 Total Packets In: 8 Total Packets Out: 2 Average Response time: 0.010 ms server2 へリクエストが振り分けられた回数 AN(config)# 12 ATN-131 ArrayAPV/TMX 負荷分散機能の基本