コントローラは、遅延の小さいディスクで実行する必要があります。クラスタの各ノードのディスク ストレージ システムでは、ピーク時の書き込み遅延を 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 を使用すると、ディスク遅延アラートをコントローラ ノードで検出したかどうかを示すことができます。
解決方法
- NSX Controllerを低遅延ディスクにデプロイします。
- コントローラはそれぞれ独自のディスク ストレージ サーバを使用する必要があります。2 台のコントローラで同じディスク ストレージ サーバを共有しないでください。
次のタスク
アラートの表示方法の詳細については、ディスク遅延アラートの表示を参照してください。