Bare Metal Edge node にてNSXメンテナンスモードの終了時に、ハングアップや管理通信が途絶が発生する。
search cancel

Bare Metal Edge node にてNSXメンテナンスモードの終了時に、ハングアップや管理通信が途絶が発生する。

book

Article ID: 449667

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

免責事項:これは英文の記事「Bare Metal Edge node hangs or loses management communication when exiting NSX Maintenance Mode」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

 

  • Bare Metal Edgeにてi40eベースのPNIC経由でインバンド管理インターフェイスを使用しています。
  • インバンド管理インターフェイスを使用するBare Metal EdgeがNSX メンテナンスモードから復帰する際、以下の現象のいずれか、またはすべてが発生する可能性があります。
    • データプレーンでのパケット損失。
    • コンソール操作が応答しなくなる。
    • カーネルログ(/var/log/kern.log)に、以下のようなログが記録される場合があります。
      YYYY-MM-DDTHH:MM:SS.NNNZ ##### kernel - - - [#####.#####] INFO: task <Service_Name>:<PID> blocked for more than 120 seconds.

Environment

VMware NSX 4.2.3.3

Cause

この問題は、Edge 上の nsx-edge-nsd および nsx-edge-datapath systemd サービス間の競合状態に起因します。
これら 2 つのサービスは、メンテナンス モードを終了する際に並行して起動します。
両方のサービスが同時にカーネル ネットワーク インターフェイスを設定しようとするため、カーネル内でルーティング Netlink (RTNL) ミューテックスのデッドロックが発生し、複数のスレッド/コアがブロックされます。

Resolution

Workaround:

この回避策は、プロセス間の競合状態を回避するために、nsx-edge-nsd systemd サービスを nsx-edge-datapath systemd サービスの後に起動するように設定するものです。

  1. CLI を使用して admin ユーザーとして Edge にログインし、次のコマンドを実行して root ユーザーに切り替えます。
    start engineer
  2. nsx-edge-nsd.service ファイルを更新して nsx-edge-datapath.service の後に起動するようにし、systemd デーモンをリロードします。
    sed -i '/PartOf=docker.service/a After=nsx-edge-datapath.service' /lib/systemd/system/nsx-edge-nsd.service
    systemctl daemon-reload
  3. Edge が問題なくメンテナンスモードを終了できることを確認します。

Additional Information

注:

設定を元に戻すには、/lib/systemd/system/nsx-edge-nsd.service から追加した行を削除し、再度 systemctl daemon-reload を実行してください。

  1. CLI 経由で admin ユーザーとして Edge にログインし、次のコマンドを実行して root ユーザーに切り替えます。
    start engineer
  2. 次のコマンドを実行して、サービスの起動順序を元に戻します。
    sed -i '/After=nsx-edge-datapath.service/d' /lib/systemd/system/nsx-edge-nsd.service
    systemctl daemon-reload