ここでは、いくつかの問題と解決方法について説明します。

NSX のロード バランシングを使用するときに発生する一般的な問題は、次のとおりです。
  • TCP ポート(ポート 443 など)でのロード バランシングが機能しない。
    • トポロジを確認します。詳細については、『NSX 管理ガイド』を参照してください。
    • ping コマンドを使用して仮想サーバの IP アドレスにつながるかを確認する、またはアップストリーム ルーターを調べて ARP テーブルが設定されていることを確認します。
    • ユーザー インターフェイスの設定を確認します。
    • CLI の設定を確認します。
    • パケットをキャプチャします。
  • ロード バランシング プールのメンバーが使用されない。
    • サーバがプール内にあり、有効になっていることを確認し、健全性ステータスを監視します。
  • Edge トラフィックのロード バランシングが行われない。
    • プールとセッション維持の設定を確認します。セッション維持が設定されており、使用しているクライアント数が少ないと、バックエンド プール メンバーへの接続が均等に分散しているように見えない場合があります。
  • レイヤー 7 のロード バランシング エンジンが停止する。
  • 健全性監視エンジンが停止する。
    • ロード バランサ サービスを有効にします。『NSX 管理ガイド』を参照してください。
  • プール メンバー監視ステータスが警告/重大になる。
    • アプリケーション サーバがロード バランサからアクセス可能であることを確認します。
    • アプリケーション サーバのファイアウォールまたは分散ファイアウォール (DFW) がトラフィックを許可していることを確認します。
    • アプリケーション サーバが、指定された健全性検査に応答できることを確認します。
  • プール メンバーのステータスが無効になる。
    • プール メンバーがプール設定で有効になっていることを確認します。
  • レイヤー 7 スティッキー テーブルがスタンバイ Edge と同期されない。
    • 高可用性 (HA) が設定されていることを確認します。
  • クライアント接続はあるが、アプリケーション トランザクションを完了できない。
    • アプリケーション プロファイルで適切なセッション維持が設定されていることを確認します。
    • アプリケーションがプール内の 1 台のサーバ(2 台ではない)に対してのみ動作している場合、最も可能性が高いのはセッション維持の問題です。

基本的なトラブルシューティング

  1. vSphere Web Client でロード バランサ設定のステータスを確認します。
    1. [ネットワークとセキュリティ(Networking & Security)] > [NSX Edge] をクリックします。
    2. NSX Edge をダブルクリックします。
    3. [管理 (Manage)] をクリックして、[ロード バランサ (Load Balancer)] タブをクリックします。
    4. ロード バランサのステータスおよび設定されているログ レベルを確認します。
  2. ロード バランサ サービスのトラブルシューティングを実行する前に、NSX Manager で次のコマンドを実行して、サービスが稼動していることを確認します。
    nsxmgr> show edge edge-4 service loadbalancer
    haIndex:              0
    -----------------------------------------------------------------------
    Loadbalancer Services Status:
    
    L7 Loadbalancer     : running
    -----------------------------------------------------------------------
    L7 Loadbalancer Statistics:
    STATUS     PID        MAX_MEM_MB MAX_SOCK   MAX_CONN   MAX_PIPE   CUR_CONN   CONN_RATE  CONN_RATE_LIMIT MAX_CONN_RATE
    running    1580       0          2081       1024       0          0          0          0               0
    -----------------------------------------------------------------------
    L4 Loadbalancer Statistics:
    MAX_CONN   ACT_CONN   INACT_CONN TOTAL_CONN
    0          0          0          0
    
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    
    注: show edge all を実行すると、 NSX Edge の名前を検索できます。

設定の問題のトラブルシューティング

ロード バランサの設定操作が NSX ユーザー インターフェイスまたは REST API 呼び出しにより拒否されると、設定の問題として分類されます。

データ プレーンの問題のトラブルシューティング

ロード バランサの設定は NSX Manager で受け入れられますが、クライアント、Edge ロード バランサ、およびサーバ間に接続またはパフォーマンスに問題があります。データ プレーンの問題には、ロード バランサのランタイム CLI の問題とロード バランサのシステム イベントの問題が含まれます。

  1. 次の REST API 呼び出しを使用して、NSX Manager での Edge のログ レベルを INFO から TRACE または DEBUG に変更します。
    URL: https://NSX_Manager_IP/api/1.0/services/debug/loglevel/com.vmware.vshield.edge?level=TRACE 
    Method: POST
  2. vSphere Web Client でプール メンバーのステータスを確認します。
    1. [ネットワークとセキュリティ(Networking & Security)] > [NSX Edge] をクリックします。
    2. NSX Edge をダブルクリックします。
    3. [管理 (Manage)] をクリックして、[ロード バランサ (Load Balancer)] タブをクリックします。
    4. 設定されたロード バランサ プールのサマリを表示するには、[プール (Pools)] をクリックします。
    5. ロード バランサ プールを選択します。[プール統計の表示 (Show Pool Statistics)] をクリックして、プールが稼動していることを確認します。
  3. 次の REST API 呼び出しを使用して、NSX Manager からさらに詳細なロード バランサ プールの設定の統計を取得できます。
    URL: https://NSX_Manager_IP/api/4.0/edges/{edgeId}/loadbalancer/statistics 
    Method: GET
    
    <?xml version="1.0" encoding="UTF-8"?>
    <loadBalancerStatusAndStats>
        <timeStamp>1463507779</timeStamp>
        <pool>
            <poolId>pool-1</poolId>
            <name>Web-Tier-Pool-01</name>
            <member>
                <memberId>member-1</memberId>
                <name>web-01a</name>
                <ipAddress>172.16.10.11</ipAddress>
                <status>UP</status>
                <lastStateChangeTime>2016-05-16 07:02:00</lastStateChangeTime>
                <bytesIn>0</bytesIn>
                <bytesOut>0</bytesOut>
                <curSessions>0</curSessions>
                <httpReqTotal>0</httpReqTotal>
                <httpReqRate>0</httpReqRate>
                <httpReqRateMax>0</httpReqRateMax>
                <maxSessions>0</maxSessions>
                <rate>0</rate>
                <rateLimit>0</rateLimit>
                <rateMax>0</rateMax>
                <totalSessions>0</totalSessions>
            </member>
            <member>
                <memberId>member-2</memberId>
                <name>web-02a</name>
                <ipAddress>172.16.10.12</ipAddress>
                <status>UP</status>
                <lastStateChangeTime>2016-05-16 07:02:01</lastStateChangeTime>
                <bytesIn>0</bytesIn>
                <bytesOut>0</bytesOut>
                <curSessions>0</curSessions>
                <httpReqTotal>0</httpReqTotal>
                <httpReqRate>0</httpReqRate>
                <httpReqRateMax>0</httpReqRateMax>
                <maxSessions>0</maxSessions>
                <rate>0</rate>
                <rateLimit>0</rateLimit>
                <rateMax>0</rateMax>
                <totalSessions>0</totalSessions>
            </member>
            <status>UP</status>
            <bytesIn>0</bytesIn>
            <bytesOut>0</bytesOut>
            <curSessions>0</curSessions>
            <httpReqTotal>0</httpReqTotal>
            <httpReqRate>0</httpReqRate>
            <httpReqRateMax>0</httpReqRateMax>
            <maxSessions>0</maxSessions>
            <rate>0</rate>
            <rateLimit>0</rateLimit>
            <rateMax>0</rateMax>
            <totalSessions>0</totalSessions>
        </pool>
        <virtualServer>
            <virtualServerId>virtualServer-1</virtualServerId>
            <name>Web-Tier-VIP-01</name>
            <ipAddress>172.16.10.10</ipAddress>
            <status>OPEN</status>
            <bytesIn>0</bytesIn>
            <bytesOut>0</bytesOut>
            <curSessions>0</curSessions>
            <httpReqTotal>0</httpReqTotal>
            <httpReqRate>0</httpReqRate>
            <httpReqRateMax>0</httpReqRateMax>
            <maxSessions>0</maxSessions>
            <rate>0</rate>
            <rateLimit>0</rateLimit>
            <rateMax>0</rateMax>
            <totalSessions>0</totalSessions>
        </virtualServer>
    </loadBalancerStatusAndStats>
    
  4. ロード バランサの統計情報をコマンド ラインから確認するため、NSX Edge で次のコマンドを実行します。

    特定の仮想サーバを対象とする場合は、最初に show service loadbalancer virtual を実行して仮想サーバ名を取得します。次に show statistics loadbalancer virtual <virtual-server-name> を実行します。

    特定の TCP プールを対象とする場合は、最初に show service loadbalancer pool を実行してプール名を取得します。次に show statistics loadbalancer pool <pool-name> を実行します。

  5. ロード バランサの統計に障害の兆候が示されていないかどうかを確認します。