免責事項:これは英文の記事「Bare Metal Edge node hangs or loses management communication when exiting NSX Maintenance Mode」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
YYYY-MM-DDTHH:MM:SS.NNNZ ##### kernel - - - [#####.#####] INFO: task <Service_Name>:<PID> blocked for more than 120 seconds.
VMware NSX 4.2.3.3
この問題は、Edge 上の nsx-edge-nsd および nsx-edge-datapath systemd サービス間の競合状態に起因します。
これら 2 つのサービスは、メンテナンス モードを終了する際に並行して起動します。
両方のサービスが同時にカーネル ネットワーク インターフェイスを設定しようとするため、カーネル内でルーティング Netlink (RTNL) ミューテックスのデッドロックが発生し、複数のスレッド/コアがブロックされます。
Workaround:
この回避策は、プロセス間の競合状態を回避するために、nsx-edge-nsd systemd サービスを nsx-edge-datapath systemd サービスの後に起動するように設定するものです。
start engineer
sed -i '/PartOf=docker.service/a After=nsx-edge-datapath.service' /lib/systemd/system/nsx-edge-nsd.service
systemctl daemon-reload
注:
設定を元に戻すには、/lib/systemd/system/nsx-edge-nsd.service から追加した行を削除し、再度 systemctl daemon-reload を実行してください。
start engineer
sed -i '/After=nsx-edge-datapath.service/d' /lib/systemd/system/nsx-edge-nsd.service
systemctl daemon-reload