このセクションでは、NSX Advanced Load Balancer のサービス エンジンで、自動リバランス機能が期待どおりに動作しない場合の解決方法について説明します。この状態になると、サービス エンジンの負荷が、定義されたしきい値を上回った場合や下回った場合に、仮想サービスが他のサービス エンジンにスケールインまたはスケールアウトされません。
解決方法
auto-rebalance オプションは Elastic HA モードにのみ適用され、NSX Advanced Load Balancer では、デフォルトでオフになっています。オンにした場合、SE の負荷が最大しきい値を超えるか、最小しきい値を下回ると、仮想サービスが自動的に移行またはスケールアウト/スケールインされます。NSX Advanced Load Balancer Controller の /var/lib/avi/log ディレクトリに rebalance.log があります。自動リバランス関連のイベント メッセージは、rebalance.log ファイルにあります。
スケールアウト イベントが正常に完了すると、次のエラー メッセージが rebalance.log ファイルに記録されます。
[2017-09-14 20:00:18,539] DEBUG [seautoscale.autoscale:481] as: se_vs_cpu[avi-se-hq][ssl-vs-3#1]=100 (This depicts the SE is at 100%)
[2017-09-14 20:00:18,553] DEBUG [resource_monitor.get_scaleout_candidates:864] vs[ssl-vs-3] 1 candidate-se-host-list: rpc_status: 0
error_message:「No SE found」(これは、SE が使用可能な SE があるかどうかを確認して、スケールアウトしようとしていることを示します)。
[2017-09-14 20:00:19,554] DEBUG [seautoscale.create_new_se:246] as: scale-out from high to new se: avi_se_hq to NEW-SE with 1 cpu(s), vs = ssl-vs-3#1
上記のエラーは、仮想サービスが、負荷が高い CPU (avi_se_hq) を持つ SE から 1 つの CPU を持つ新しい SE に、スケールアウトされたことを示しています。
自動リバランスによってスケールアウトまたはスケールイン イベントが開始されない場合、次のエラー メッセージが表示されます。
[2017-09-13 16:44:00,976] DEBUG [resource_monitor.SeGroupRebalanceRpc:3250] [43837][] call later(1) [2017-09-13 16:44:01,977] DEBUG [resource_monitor.DeferSeGroupRebalance:3255] [43837][] Defer to Thread Pool [2017-09-13 16:44:01,978] DEBUG [resource_monitor.SeGroupRebalance:3266] [43837,PoolThread-worker-1][] START SEGROUP REBALANCE [2017-09-13 16:44:02,937] ERROR [resource_monitor.rebalance_task_err_callback:3245] [43837,MainThread] Error in rebalance task:Traceback (most recent call last):
問題をさらにトラブルシューティングする場合、または rebalance.log ファイルで同様のエラー メッセージが表示される場合は、VMware カスタマ サポートにお問い合わせください。
NSX Advanced Load Balancer サービス エンジン グループに対する自動リバランス機能の仕組みを理解するには、次の構成を検討してください。
[admin:Controller]: > show serviceenginegroup rebalance-segroup +---------------------------------------+---------------------------------------------------------+ | Field | Value | +---------------------------------------+---------------------------------------------------------+ | uuid | serviceenginegroup-2896bcb1-6e46-4213-b789-d83367cacda6 | | name | rebalance-segroup | | max_vs_per_se | 10 | | min_scaleout_per_vs | 1 | | max_scaleout_per_vs | 4 | | max_se | 10 | | vcpus_per_se | 1 | | memory_per_se | 2048 | | disk_per_se | 10 gb | | max_cpu_usage | 50 percent | | min_cpu_usage | 20 percent | | | | | se_deprovision_delay | 120 min | | auto_rebalance | True | | auto_rebalance_interval | 10 sec |
スケールアウト操作の場合、または自動リバランス機能をオフに設定するために、最大 CPU しきい値が 50% に設定されています。自動リバランス間隔は 10 秒に設定されています。仮想サービスの SE の CPU が 10 秒間継続して 50% を超えると、スケールアウト イベントが開始されます。
次のスクリーンショットでは、仮想サービスの SE の 1 つで CPU が 10 秒より長い期間 100% になっています。
SE の CPU が構成されたしきい値レベルを超えると、自動リバランス イベントがトリガされ、スケールアウト操作の結果として新しい SE が作成されます。
次の NSX Advanced Load Balancer CLI 出力は、スケールアウト イベントの成功を示しています。次の出力に示すように、状態が SCALEOUT_SUCCESS になっていることに注意します。
vs_scaleout_details se_assigned 0 standby: false connected: true name: avi-se-hooeb primary: true 1 standby: false connected: true name: avi-se-ktrez primary: false se_requested num_se: 2 num_standby_se: 0 vs_uuid: virtualservice-b70c8da3-2d14-47d6-a867-c15f1d9cb98c scale_status end_time_str: 2017-0914 20:00:02.661759 start_time_str: 2017-0914 19:59:57.901848 scale_se: avi-se-ktrez state: SCALEOUT_SUCCESS num_se_assigned: 2 action: SCALE_OUT num_se_requested: 2 ip: 10.1.1.1
自動リバランス オプションは、NSX Advanced Load Balancer ユーザー インターフェイスから削除されますが、NSX Advanced Load Balancer CLI から構成できます。詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「NSX Advanced Load Balancer ユーザー インターフェイスを使用して自動リバランス オプションを使用できない」のトピックを参照してください。
CLI を使用して自動リバランスを構成するには、『VMware NSX Advanced Load Balancer 構成ガイド』の「NSX Advanced Load Balancer CLI を使用した自動リバランスの構成方法」のトピックを参照してください。