このセクションでは、NSX Advanced Load Balancer CLI での一般的な管理タスクを実行する例を示します。
CLI:仮想サービスとプールの作成
仮想サービスを作成する際は、プールを構成する必要があります。このプールは、仮想サービスを作成する前に作成する必要があります。
CLI を使用して、以下を作成します。
プール
VsVIP
仮想サービス
次の例は、新しいアプリケーションを正常に展開するために必要な最小構成のみを示しています。仮想サービスとプールのカスタマイズでは、多くの追加オプションを使用できます。
プールの作成
: > configure pool Test : pool> servers ip 10.1.1.100 port 80 : pool:servers> save : pool> servers ip 10.1.1.101 port 80 : pool:servers> save : pool> where Tenant: admin +------------+------------+ | Field | Value | +------------+------------+ | name | Test | | servers[1] | | | ip | 10.1.1.100 | | port | 80 | | servers[2] | | | ip | 10.1.1.101 | | port | 80 | +------------+------------+ : pool> save
VsVIP の作成
: > configure vsvip Test_vsVip : vsvip> vip ip_address 10.10.10.10 : vsvip:vip> save : vsvip> save
仮想サービスの作成
: > configure virtualservice Test_VS : virtualservice> vsvip_ref Test_vsVip : virtualservice> pool_ref Test : virtualservice> services port 80 : virtualservice:services> save : virtualservice> save
プール サーバの変更
一般的なタスクは、既存のプールに対してサーバの追加や削除を行ったり、プール内のサーバを有効または無効にすることです。サーバはポートを指定せずにプールに追加できますが(プールまたは仮想サービスのポートを継承)、CLI では IP アドレスとポートを使用して、有効化や無効化などのタスクのためにサーバを操作する必要があります。
次のコマンドを実行すると、.101
サーバが削除され、Test という名前のプールに新しい .102
サーバが追加されます。
configure pool Test no servers ip 10.1.1.101 port 80 servers ip 10.1.1.102 port 80 [admin]: pool:servers save
次のコマンドを実行すると、.100
サーバのサブモードに切り替わり、それが無効になります。
ip 10.1.1.100 port 80 where Tenant: admin +-------+------------+ | Field | Value | +-------+------------+ | ip | 10.1.1.100 | | port | 80 | +-------+------------+ no enabled +---------+------------+ | Field | Value | +---------+------------+ | ip | 10.1.1.100 | | port | 80 | | enabled | False | +---------+------------+ save
構成のエクスポートまたはインポート
NSX Advanced Load Balancer Controller には、構成情報を格納するデータベースがあります。これには、テナント、仮想サービス、プール、ポリシー、およびアカウントに関連するすべての構成が含まれます。この構成をバックアップのために JSON ファイルとしてエクスポートするか、構成の一部を別の NSX Advanced Load Balancer Controller に移行します。
構成は CLI を介してバックアップするか、別の Controller クラスタに移動できます。エクスポートされる構成は、システム構成全体、現在のユーザーおよび管理者のテナントのアクセス権に基づいた限定的なバージョン、または単一の仮想サービスとその子プロパティです。
1 つの仮想サービスとその子オブジェクト(プールなど)のみをエクスポートするには、export
コマンドで configuration
フラグの代わりに virtualservice
フラグを使用します。
次のコマンドは、構成を config_export
という名前のファイルにエクスポートし、それをリモートの場所に対して SCP し、NSX Advanced Load Balancer シェルに戻します。
export configuration file config_export Completed writing the export configuration to config_export bash pwd /home/admin ls config_export scp ./config_export [email protected]:/root [email protected]'s password: config_export 100% 232KB 431.8KB/s 00:00 exit
構成のインポートを開始する前に、クラスタのすべてのコントローラ メンバーが起動しており、クラスタ リーダーに次の構成があることを確認します。
管理アカウント
クラスタ構成
OpenStack インフラストラクチャ(OpenStack のみ)
次のコマンドは、バックアップされた構成を Controller クラスタにインポートします。
import configuration file /home/admin/myconfig keep_uuid Successfully imported the configuration file
この構成の情報を空の NSX Advanced Load Balancer Controller にリストアできます。リストア手順は次のとおりです。
3 台の新しいコントローラ ノードを展開します。イメージ タイプ(OVA、qcow2、ami)は、構成のエクスポート元であるコントローラ ノードのイメージ タイプと一致する必要があります。
リーダーとしてコントローラを 1 つ選択し、初期セットアップ ページに移動して、初期セットアップ情報と冗長な Controller クラスタ情報を入力します。
CLI または API を使用して構成をインポートします。
これらの手順を実行すると、クラスタは元のクラスタと同じ実行状態に戻ります。
構成フィルタのエクスポート
フィルタを使用して、エクスポートしたファイルを調整することもできます。次のフィルタがサポートされています。
フィルタ名 |
説明 |
---|---|
full_system |
完全な構成(パーシステント ランタイムを含む)を、「構成のリストア」に記載されている形式でエクスポートします。この構成を、CLI または REST API を使用してインポートすることはできません。 |
obj_type |
エクスポートされたオブジェクトを特定のオブジェクト タイプのセットに制限します。 |
recurse |
オブジェクトの依存関係ツリー全体(一部のランタイムを含む)を、フィルタリングされた構成でエクスポートします。 |
パスフレーズ |
秘密データを暗号化します。構成をインポートするには、同じパスフレーズを指定する必要があります。 |
検索 |
特定の文字列を含むオブジェクトのみをエクスポートします。 |
skip_default |
エクスポートされた構成にあるオブジェクトのデフォルト値を削除します。 |
tenant_ref |
指定したテナント内のオブジェクトのみをエクスポートします。 |
例
すべての仮想サービスと依存関係をエクスポートするには、次のコマンドを使用します。
export configuration file config\_export obj\_type virtualservice recurse
テナント t1 のすべてのオブジェクトをエクスポートし、デフォルト値を除外するには、次のコマンドを使用します。
export configuration file config\_export tenant\_ref t1 skip\_default
パケット キャプチャ
NSX Advanced Load Balancer Controller は、SE によって処理されるデータ プレーン トラフィックをキャプチャするのに便利なメカニズムを提供します。管理者は、SE で実際のキャプチャが行われる間に、コントローラ CLI から capture コマンドを開始できます。パケット キャプチャは、コントローラに pcap
形式で保存されます。SE は、SE のクライアント側とサーバ側の両方でパケットをキャプチャします。仮想サービスが複数の SE にまたがってスケーリングされている場合は、該当するすべての SE がパケット キャプチャに参加します。コントローラはキャプチャを集約し、時間順にエントリを並べ替えます。キャプチャが完了すると、パーソナル コンピュータやその他のシステムにアップロードされ、tcpdump や Wireshark などの適切なツールを使用して分析されます。
指定した仮想サービスのパケット キャプチャ サブモードに入ります。
debug virtualservice Test-VS Updating an existing object. Currently, the object is: +-------+--------------------+ | Field | Value | +-------+--------------------+ | uuid | virtualservice-0-1 | | name | Test-VS | +-------+--------------------+
パケット キャプチャのパラメータを定義できます。デフォルトでは、キャプチャは選択した仮想サービスのコンテキスト内で実行され、クライアント側とサーバ側からのパケットを含む、仮想サービス トラフィックを処理するすべての SE でも実行されます。
パラメータ名 |
説明 |
---|---|
capture_params duration |
時間(分単位)。デフォルト値は「制限なし」です。 |
capture_params num_pkts |
収集するパケットの最大数。デフォルト値は「制限なし」です。 |
capture_params pkt_size |
キャプチャするパケット サイズ、またはスナップ長。デフォルト値は「制限なし」です。 |
debug_ip addrs |
IP4 アドレス形式 <x.x.x.x> |
debug_ip prefixes |
IP4 プレフィックス形式 <x.x.x.x/x> |
デフォルトでは、キャプチャする最大パケット数や所要時間は定義されていません。次の例に示すように、最大パケット キャプチャを含めることをお勧めします。制限がないと、SE ディスクがいっぱいになるまでキャプチャが実行され、サービスが中断される可能性があります。
キャプチャするパケットの最大数を含むパラメータを指定します。
capture_params num_pkts 1000 debug_ip addrs 10.10.10.10 save
以前に構成したパラメータに基づいてキャプチャを開始します。
capture save +----------------+--------------------+ | Field | Value | +----------------+--------------------+ | uuid | virtualservice-0-1 | | name | Test-VS | | debug_ip | | | addrs[1] | 10.10.10.10 | | capture | True | | capture_params | | | duration | 0 mins | | num_pkts | 1000 | +----------------+--------------------+
パケット キャプチャのサブモードに再度切り替え、実行中のパケット キャプチャを停止します。
debug virtualservice Test-VS no capture save
パケット キャプチャをリモート システムにエクスポートし、tcpdump や Wireshark などのツールを使用して表示します。
show debug virtualservice Test-VS capture Please specify the destination directory: /tmp Downloaded the attachment to /tmp/vs_virtualservice.20141205_192033.pcap bash scp /tmp/vs_virtualservice.192033.pcap [email protected]:/tmp
サーバへの同時接続のモニター
サーバへの同時接続数を追跡するには、プールのコンテキスト内でサーバを表示する必要があります。show
の前に watch
コマンドをプリペンドすることで、ほぼリアルタイムで接続数の最新情報を確認できます。接続が確立されてから、SE がコントローラに情報を返すポーリング間隔までの間には、ある程度の遅延があることに注意してください。Ctrl+C
で watch
をキャンセルします。
watch show pool Test-pool server detail | grep -e 'ip\|open_conns' | ip_addr | 10.1.1.17 | | open_conns | 50 | | ip_addr | 10.1.1.16 | | open_conns | 49 |