コントローラは、遅延の小さいディスクで実行する必要があります。クラスタの各ノードのディスク ストレージ システムでは、ピーク時の書き込み遅延を 300 ミリ秒未満に、平均書き込み遅延を 100 ミリ秒未満にする必要があります。

問題

  • デプロイした NSX Controller とコントローラ クラスタとの接続が切断されている。
  • ディスク パーティションがいっぱいになっているため、コントローラ ログを収集できない。
  • ストレージ システムがこれらの要件を満たしていない場合は、クラスタが不安定になり、システム停止の原因となる場合があります。
  • 正常に機能する NSX Controllerに適した TCP リスナーが、show network connections of-type tcp コマンドの出力に表示されなくなった。
  • 切断されたコントローラが、オールゼロの UUID を使用してクラスタに参加しようとしている(この方法は無効)。
  • show control-cluster history コマンドを実行すると、次のようなメッセージが表示される。

    INFO.20150530-000550.1774:D0530 13:25:29.452639 1983 zookeeper_client.cc:774] Zookeeper client disconnected!

  • NSX Controller コンソールで show log cloudnet/cloudnet_java-zookeeper*.log コマンドを実行すると、次のようなエントリが表示される。
    cloudnet_java-zookeeper.20150530-000550.1806.log-2015-05-30
    	 13:25:07,382 47956539 [SyncThread:1] WARN
    	 org.apache.zookeeper.server.persistence.FileTxnLog - fsync-ing the write ahead
    	 log in SyncThread:1 took 3219ms which will adversely effect operation latency.
    	 See the ZooKeeper troubleshooting guide
  • NSX Controllerのログに、次のようなエントリが表示される。
    D0525 13:46:07.185200 31975
    	 rpc-broker.cc:369] Registering address resolution for: 20.5.1.11:7777
    D0525 13:46:07.185246 31975
    	 rpc-tcp.cc:548] Handshake complete, both peers support the same
    	 protocol
    D0525 13:46:07.197654 31975
    	 rpc-tcp.cc:1048] Rejecting a connection from peer
    	 20.5.1.11:42195/ef447643-f05d-4862-be2c-35630df39060, cluster
    	 9f7ea8ff-ab80-4c0c-825e-628e834aa8a5, which doesn't match our cluster
    	 (00000000-0000-0000-0000-000000000000)
    D0525 13:46:07.222869 31975
    	 rpc-tcp.cc:1048] Rejecting a connection from peer
    	 20.5.1.11:42195/ef447643-f05d-4862-be2c-35630df39060, cluster
    	 9f7ea8ff-ab80-4c0c-825e-628e834aa8a5, which doesn't match our cluster
    	 (00000000-0000-0000-0000-000000000000)

原因

この問題はディスクのパフォーマンス遅延が原因で発生します。これは NSX Controller クラスタに悪影響を及ぼします。

  • /var/log/cloudnet/cloudnet_java-zookeeper log ファイルで fsync のメッセージを検索して、遅延が生じているディスクを確認してください。fsync が 1 秒を超える場合、Zookeeper は fsync の警告メッセージを表示し、これでディスクの大幅な遅延が発生していることがわかります。VMware では、遅延については論理ユニット番号 (LUN) をコントロール クラスタ専用にするか、ストレージ アレイをコントロール クラスタの近くに移動するか、またはその両方をお勧めしています。
  • 読み取り遅延を表示し、5 秒間 (デフォルト) 変動する平均は、順番に遅延制限に達したときにアラートをトリガーするためには、入力された計算を書き込み遅延できます。平均が低しきい値を下まわるとアラートはオフになります。デフォルトで、高しきい値は 200 ミリ秒に設定され、低しきい値は 100 ミリ秒に設定されています。show disk-latency-alert config コマンドを使用できます。出力は次のように表示されます。
    enabled=True   low-wm=51      high-wm=150
    nsx-controller # set disk-latency-alert enabled yes
    nsx-controller # set disk-latency-alert low-wm 100
    nsx-controller # set disk-latency-alert high-wm 200
  • GET /api/2.0/vdn/controller/<controller-id>/systemStats REST API を使用すると、コントローラ ノードの遅延アラート ステータスを取得できます。
  • GET /api/2.0/vdn/controller REST API を使用すると、ディスク遅延アラートをコントローラ ノードで検出したかどうかを示すことができます。

解決方法

  1. NSX Controllerを低遅延ディスクにデプロイします。
  2. コントローラはそれぞれ独自のディスク ストレージ サーバを使用する必要があります。2 台のコントローラで同じディスク ストレージ サーバを共有しないでください。

次のタスク

アラートの表示方法の詳細については、ディスク遅延アラートの表示を参照してください。