NSX Data Center for vSphere では、制御プレーン エージェント (netcpa) がローカル エージェント デーモンとして動作し、NSX Manager やコントローラ クラスタと通信します。[通信チャネルの健全性 (Communication Channel Health)] 機能は、中央制御プレーンからローカル制御プレーンへのステータスを NSX Manager に定期的にレポートする健全性チェックで、NSX Manager のユーザー インターフェイスに表示されます。このレポートは、NSX Manager から ESXi ホスト netcpa チャネルへの稼動ステータスを検出する、ハートビートとしても機能します。この機能は、通信障害時のエラーの詳細を示し、チャネルが誤ったステータスになるとイベントを生成するほか、NSX Manager からホストへのハートビート メッセージを生成します。
問題
制御プレーン エージェントとコントローラ間の接続の問題
原因
見つからない接続がある場合は、制御プレーン エージェントが正しく動作していない可能性があります。
解決方法
- チャネルが誤ったステータスになったら、次の API 要求を使用して接続ステータスを確認します。
GET https://<NSX_Manager_IP>/api/2.0/vdn/inventory/host/{hostId}/connection/status
この API の使用方法については、『NSX API ガイド』を参照してください。
hostId を検索するには、 NSX Manager CLI または vCenter Server 管理対象オブジェクト ブラウザ (MOB) のいずれかを使用します。- vCenter Server MOB を使用するには、Web ブラウザで vCenter Server MOB の URL (http://vCenter-IP-Address/mob) を入力します。クラスタまたはホストの MOID を検索する手順については、『NSX API ガイド』を参照してください。
- NSX Manager CLI を使用する場合は、管理者ユーザーとしてログインして、show cluster all または show cluster clusterID コマンドを実行します。これらのコマンドの詳細については、『NSX コマンド ライン クイック リファレンス』を参照してください。
次に、API 応答の例を示します。
<?xml version="1.0" encoding="UTF-8"?> <hostConnStatus> <hostName>10.161.246.20</hostName> <hostId>host-21</hostId> <nsxMgrToFirewallAgentConn>UP</nsxMgrToFirewallAgentConn> <nsxMgrToControlPlaneAgentConn>UP</nsxMgrToControlPlaneAgentConn> <hostToControllerConn>DOWN</hostToControllerConn> <fullSyncCount>-1</fullSyncCount> <hostToControllerConnectionErrors> <hostToControllerConnectionError> <controllerIp>10.160.203.236</controllerIp> <errorCode>1255604</errorCode> <errorMessage>Connection Refused</errorMessage> </hostToControllerConnectionError> <hostToControllerConnectionError> <controllerIp>10.160.203.237</controllerIp> <errorCode>1255603</errorCode> <errorMessage>SSL Handshake Failure</errorMessage> </hostToControllerConnectionError> </hostToControllerConnectionErrors> </hostConnStatus>
次のエラー コードがサポートされています。
1255602:不完全なコントローラ証明書 1255603:SSL ハンドシェークに失敗しました 1255604:接続が拒否されました 1255605:キープ アライブ タイムアウト 1255606:SSL 例外 1255607:不正なメッセージ 1255620:不明なエラー
- 次のように、制御プレーン エージェントが停止している原因を特定します。
- ESXi ホストで /etc/init.d/netcpad status コマンドを実行して、ホストの制御プレーン エージェントのステータスを確認します。
[root@esx-01a:~] /etc/init.d/netcpad status netCP agent service is running
- more /etc/vmware/netcpa/config-by-vsm.xml コマンドを使用して、制御プレーン エージェントの設定を確認します。NSX Controller の IP アドレスが表示されます。
[root@esx-01a:~] more /etc/vmware/netcpa/config-by-vsm.xml <config> <connectionList> <connection id="0000"> <port>1234</port> <server>192.168.110.31</server> <sslEnabled>true</sslEnabled> <thumbprint>A5:C6:A2:B2:57:97:36:F0:7C:13:DB:64:9B:86:E6:EF:1A:7E:5C:36</thumbprint> </connection> <connection id="0001"> <port>1234</port> <server>192.168.110.32</server> <sslEnabled>true</sslEnabled> <thumbprint>12:E0:25:B2:E0:35:D7:84:90:71:CF:C7:53:97:FD:96:EE:ED:7C:DD</thumbprint> </connection> <connection id="0002"> <port>1234</port> <server>192.168.110.33</server> <sslEnabled>true</sslEnabled> <thumbprint>BD:DB:BA:B0:DC:61:AD:94:C6:0F:7E:F5:80:19:44:51:BA:90:2C:8D</thumbprint> </connection> </connectionList> ...
- ESXi ホストで /etc/init.d/netcpad status コマンドを実行して、ホストの制御プレーン エージェントのステータスを確認します。
- 次のコマンドを使用して、制御プレーン エージェントからコントローラへの接続を検証します。各コントローラにつき 1 つの接続が出力されます。
>[root@esx-01a:~] esxcli network ip connection list | grep 1234 tcp 0 0 192.168.110.51:16594 192.168.110.31:1234 ESTABLISHED 36754 newreno netcpa-worker tcp 0 0 192.168.110.51:46917 192.168.110.33:1234 ESTABLISHED 36754 newreno netcpa-worker tcp 0 0 192.168.110.51:47891 192.168.110.32:1234 ESTABLISHED 36752 newreno netcpa-worker
- 次のコマンドを使用して、制御プレーン エージェントからコントローラへの接続を検証し、CLOSED または CLOSE_WAIT ステータスを表示します。
esxcli network ip connection list |grep "1234.*netcpa*" | egrep "CLOSED|CLOSE_WAIT"
- 制御プレーン エージェントが長時間にわたって停止している場合は、接続が存在していない可能性があります。接続状態を確認するには、次のコマンドを実行します。各コントローラにつき 1 つの接続が出力されます。
esxcli network ip connection list |grep "1234.*netcpa*" |grep ESTABLISHED
- 制御プレーン エージェント (netcpa) の自動リカバリ メカニズム:制御プレーン エージェントの自動監視プロセスは、誤ったステータスの制御プレーン エージェントを検出します。制御プレーン エージェント ステータスが正しくない場合、応答を停止し、自動リカバリを試みます。
- 制御プレーン エージェントが応答を停止すると、ライブ コア ファイルが生成されます。このコア ファイルを次の方法で確認できます。
ls /var/core netcpa-worker-zdump.000
- vmkwarning.log ファイルに Syslog エラーがレポートされます。
cat /var/run/log/vmkwarning.log | grep NETCPA 2017-08-11T06:32:17.994Z cpu1:1000044539)ALERT: Critical - NETCPA is hanged Taking live-dump & restarting netcpa process!
注:ステータス チェックの応答遅延により制御プレーン エージェント モニターで一時的な障害が発生すると、VMkernel ログに次のような警告メッセージがレポートされる場合があります。
Warning - NETCPA getting netcpa status failed!
この警告は無視しても問題ありません。
- 制御プレーン エージェントが応答を停止すると、ライブ コア ファイルが生成されます。このコア ファイルを次の方法で確認できます。
- この問題から自動的に復旧しない場合は、次のように制御プレーン エージェントを再起動します。
- SSH またはコンソールを介して、ESXi ホストに root でログインします。
- /etc/init.d/netcpad restart コマンドを実行して、ESXi ホストで制御プレーン エージェントを再起動します。