メモを兼ねた備忘録。
NSX-T を使用していて、いったん既存のネットワーク構成を削除したい(コンピュートマネージャを消したい時など)ようなシチュエーションでは、まず使用しているセグメントを消すことになるが、たまにセグメントが一向に消せない時がある。
よく見てみると、セグメントのポート/インターフェイスがカウントされており、
詳細を確認すると、セグメントから削除したはずの VM がゾンビのようにずっと残り続けている。
NSX Manager のアプライアンスを再起動したりしても、消えることがない。
対処法
上記のようになった場合は NSX API より、当該の接続先(Logical Port)を削除する。
まずは認証情報を取得:
[root@example ~]# CRED='admin:yourpassword'
[root@example ~]# MGR_IP=<NSX Manager IP address>
[root@example ~]# curl -ks -u $CRED -X GET https://$MGR_IP/api/v1/node/version /* 動作を確認 */
{
"node_version": "3.2.1.2.0.20541216",
"product_version": "3.2.1.2.0.20541212"
}
続けて、Logical Port を取得し、上記「セグメント ポート名」にマッチする「display_name」のエントリを探し、対応する「id」を控える。
[root@example ~]# curl -ks -u $CRED -X GET https://$MGR_IP/api/v1/logical-ports
:
"ignore_address_bindings" : [ ],
"internal_id" : "1abc773e-c04b-40f6-b80b-a2e756390892",
"resource_type" : "LogicalPort",
"id" : "1abc773e-c04b-40f6-b80b-a2e756390892", <---★
"display_name" : "centos-test-001.vmx@9c3f5f1c-e02e-4396-86c9-89360e94310e",
"tags" : [ {
"scope" : "policyPath",
"tag" : "/infra/segments/seg50x/ports/default:1abc773e-c04b-40f6-b80b-a2e756390892"
:
snip
API を使用して、対象 Logical Port の削除を実行する(エラーが返らないことを確認)。控えた id の後ろに "?detach=true" を指定与する。
[root@example ~]# curl -ks -u $CRED -X DELETE https://$MGR_IP/api/v1/logical-ports/1abc773e-c04b-40f6-b80b-a2e756390892?detach=true
その後、NSX UI よりセグメントの削除をリトライする。
23/01/25 追記
のちに NSX UI からも Logical Port の削除が可能なことに気づいた。
少しわかりづらいが、右上のトグルスイッチからマネージャモードに変更し、ネットワーク項目から対象の Logical Port を探し出し、削除する。
なお、ポリシー/マネージャモードの切り替えトグルスイッチがデフォルトでは UI に表示されない場合がある。その際は、
システム > 設定 > 全般設定 > ユーザー インターフェイス > ユーザー インターフェイス モードの切り替え
よりスイッチの有効化を行っておく。