VMware NSX-T v3.0 → v3.1 アップデート例


#はじめに

VMware NSX-T のバージョンを少しだけ (3.0.1 -> 3.1.0) にアップデートする必要に迫られ、対応しました。 
NSX-T のアップデートに関しては、さっと調べた限りではあまり情報がないように見受けられたため、記録の意味もかねて記載します。情報を探せていないだけかもしれません。
なお、VMware はたまに触る程度なので細かいところで理解できていない点もあるかもしれませんがご容赦ください。


[NSX-T Data Center アップグレードガイド](https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/3.1/upgrade/GUID-E04242D7-EF09-4601-8906-3FA77FBB06BD.html) は丁寧に記載してあるため、このマニュアルをよく見ていれば問題なく対応できると思います。
ただ、いくつか気になる点もあります。

- 網羅的なので関係のない部分が多い
- 文字での記載なので画面や操作のイメージがわかない

当記事では、下記の環境に限定し、作業内容を画像付きでまとめようと思います。
（バージョンの組み合わせは比較的レアなパターンではないかと思うので需要はないかもしれませんが。。。）

なお、 NSX-T v3.0 より前のバージョンからアップデートする場合は前提条件等が異なりますので前述のマニュアルをよく確認してください。

#環境

- vCenter 6.7
- ESXi 6.7 U3
- NSX-T 3.0.1

ESXi は Management Cluster で 3台、Workload Cluster で2台の構成です。
（今回は Workload Cluster の2台が対象）
NSX-Controller は 3VM 構成です。
NSX の機能としては N-VDS 並びに Load balancer だけを利用しているシンプルな構成です。
また、今回の大きな特徴として、 ESXi 6.7 U3 が  NSX 3.0、3.1 両方をサポートしているため、
ESXi 自体を Upgrade しなくてよい、という点です。
また、 設計上 DRS は Off にしているのですが、アップデートの際は DRS On のほうがスムーズにいくため、一時的にでも On にするのがおススメです。

#前提

##作業時の影響・制約

[NSX-T Data Center のアップグレードによる運用上の影響](https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/3.1/upgrade/GUID-4CD72B28-0EF3-49F8-9F85-556A37FCE206.html) に、各種作業時に発生する影響についての記載があります。
疎通が切れる、ユーザーインターフェースが一時的に使えなくなる、といった作業時に発生する影響や、制限事項などが記載されています。よく確認しておく必要があります。


#作業の流れ（今回のケース）

1. 事前作業
    1. サービス状況・バージョンの確認
    1. NSX-T のアラートの解消
    1. NSX Manager のバックアップ
    1. アップデート用のファイルの Upload
    1. Upgrade Coordinator のアップデート
    1. NSX アップデートの Pre-Check
1. Update 当日作業
    1. DRS 有効化（必要時）
    1. NSX Edge VM のアップデート
    1. ESXi の NSX カーネルモジュールのアップデート
    1. NSX Control plane のアップデート
    1. DRS 無効化（必要時）

#事前作業

##サービス状況・バージョンの確認

NSX の各種サービスの稼働状況を確認しておきます。
admin ユーザーで NSX Manager に SSH を使ってログインします。
その後、 `get service` コマンドでサービス状況を見ておきます。

以下のサービスの状況は把握しておきましょう (running のはずです）
確認後は、 ssh セッションは閉じておいてください。（前提に SSH つないでいないこと、とあります）

- install-upgrade
- http
- manager

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/62d87a47-58b5-da56-be24-f08724601b0f.png)

また、 install-upgrade サービスに記載されている "Enabled on" となっているIP アドレスを確認し、NSX-Manager にアクセスする際はその IP を使用するようにします。（これも前提です）

![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/657bd728-4145-22b1-3a61-8c92f7fb3f2e.png)

次に、`get cluster status` コマンドで Cluster の状態が すべて Up, Stable であることを確認します。

![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/bd105ed4-1140-f02b-c0af-a03980a3e971.png)


また、NSX Manager 上でもクラスターの状態を確認しておきます。
NSX Manager ＞ システム ＞ アプライアンス を選択し、クラスタが「安定」状態であることを確認します。

![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/3f133c08-1732-e163-3b0c-662d880bdcd2.png)

次に ESXi に ssh でログインし、 `esxcli software vib list | grep -i nsx` コマンドで各種コンポーネントのバージョンを確認しておきます。

![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/05efafff-d486-41de-aed7-df4ef8e5e22f.png)





## NSX-T アラートの解消

アップデート作業開始までに NSX マネージャー上に表示されるアラートを解消しておきましょう
今回の環境では、 admin や root ユーザーのパスワード切れ関連がほとんどでした。
図の「アラームの状態」が「解決済み」になっていればOKです。パスワードの変更手順は割愛します。
（なお、 Load balancer 配下のサーバーがダウンしている、などは放置でOKです）

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/30f8a188-f23e-6fc6-e7af-5b95846c5ed6.png)

## NSX Manager のバックアップ

NSX Manager のデータをバックアップします。
NSX Manager ＞ バックアップとリストア　を選択し、 SFTP サーバの 「編集」リンクを押します。

![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/f5439a13-2b52-2212-ba12-abc17d5f222c.png)

SFTPサーバーの設定画面が表示されるため、適宜入力して「保存」を押します。
この際、初回アクセスであれば「警告：フィンバープリントが見つかりません」と表示されます。
その際は、「追加」ボタンを押し、上記画面の 「SSH フィンガープリント」欄に入力されたことを確認のうえ、再度「保存」ボタンを押します。

![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/c23665ad-57f5-2178-6873-276d9eee97b8.png)


バックアップとリストア画面で、「バックアップの開始」ボタンが有効化されるため、
ボタンを押してバックアップします。

![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/263a23f1-4802-bca6-8c81-37c1f1d17397.png)

バックアップが成功し、履歴に表示されることを確認します。

![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/c529a265-40a6-282f-2e9e-e2714fe1055d.png)

なお、バックアップファイルサイズは 8.6MB でした。時間は5分程度。
また、ここで定期バックアップのスケジュールを設定することもできるようですが、
アップデート作業の前提として、スケジュール設定がされていないこと、というものがあるのでスケジュールは無効状態になっている必要があります。

## アップデート用のファイルの Upload

今回は、NSX-T 3.1.0 へのアップデートが必要であったため、
入手したファイルは `VMware-NSX-upgrade-bundle-3.1.0.0.0.17107167.mub` でした。（約 7.2GB）
これは、MyVMware 等から入手します（手順は割愛）

それを、 NSX Manager からアップロードします。
NSX Manager ＞ システム ＞ アップグレード　を選択し、
「NSX のアップグレード」ボタンを押します。　
（なお、ここでバージョンも確認できます）

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/643484cd-8914-a084-7054-cff057d8c0b7.png)

ファイルのアップロード画面が表示されるため、「参照」ボタンを押して、 入手した mub ファイルを選択のうえ、「アップロード」ボタンを押します。


![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/8274e03f-fc79-65f5-ae72-00f154104e36.png)

アップロード完了後、アップグレードバンドルファイルの検証が行われ、問題がなければ「アップグレード」ボタンが有効化されます。アップロード開始からファイル検証の完了まで、1Gbps で約 15分弱でした。

![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/0cfb1ee5-7dc6-f9de-21fa-a5dbc103097f.png)


## Upgrade Coordinator のアップデート

Upgrade Coordinator は、 一連の NSX-T アップグレードの処理を自動的に行ってくれるコンポーネントのようです。これに関しては、 NSX-T の通常の動作には関係ないので、事前作業として実施しています。
Upgrade Coordinator のアップデートを行わないと、 次の Pre-Check ができないため、
ここは事前に実施する必要があります。

1つ前の画像の「アップグレード」ボタンを押します。
すると、「エンドユーザー使用許諾契約書（EULA）」が表示されるため、
内容を一読し「使用許諾契約書の条件を確認し、同意しました」にチェックを入れ、「続行」ボタンを押します。

「アップグレード」のポップアップ画面が表示されます。
画面本文にも記載がありますが、これはアップグレードの準備であって、
実際に NSX-T をアップグレードするわけではありません。
「はい、続行します」ボタンを押します。

![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/854b9c45-11da-038a-ec44-3c6e3a330ccd.png)

## NSX アップデートの Pre-Check

アップグレードの準備画面が表示されるため、「事前チェックの実行」をプルダウンし、「すべての事前チェック」を押します。
（※右下の「次へ」を押すと、 2.Edge, 3.ホスト と移っていくのですが、前段階が終わっていない場合は結局何もできません）

![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/2a4f4799-564c-6fc5-517d-9bba77efbaa3.png)

![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/dd9da6e2-5425-f8fb-f8c5-8a582862a748.png)

「アップグレードの事前チェックの実行」画面が表示されるため、「事前チェックの実行」ボタンを押します。

![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/7034f731-1d9f-e908-865e-28f69e6a371a.png)

事前チェック（数分）完了後、画面上に問題の数が表示されるため、リンクをクリックして内容を確認のうえ、対応を行います。

![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/33ad57cf-cedf-40ca-4bcf-f343c0fe1ae0.png)

今回の環境では、 DRS が Off に設定されているため、それについてのチェックが行われています。
DRS（完全自動化）にするか、手動でメンテナンスモードにするか、どちらかの対応が必要です。
今回は、作業当日に DRS を一時的に On に変更して対応しています。

![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/5161f906-1a0e-0b3a-02c8-a87217e65d42.png)

ここまでが、事前準備の作業になります。
NSX Manager が状態を覚えているため、ブラウザを閉じてもまた戻ってくることが可能です。
また、事前チェックも何度も実施できます。

# Update 当日作業

## DRS 有効化（必要時）

DRS は vCenter から有効化します。
対象のクラスターを選択し、「設定」＞ 「vSphere DRS」　を選択し、 「編集」ボタンを押します。 

![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/2f38092c-41a4-2dd4-b2ba-34a0ab421c7f.png)

DRSの設定画面では、 DRS のスイッチを入れ（緑にする）、自動化レベルが「完全自動化」になっていることを確認のうえ、「OK」を押します。（その他のタブはデフォルトのままにしました）

![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/4b644de1-a81b-392b-e438-a8e3119637b7.png)


## NSX Edge VM のアップデート

ここからが実際のアップデート作業になります。
必要に応じて、 ESXi 上で稼働している VM の停止等の作業を行ってから実行してください。
また、事前準備から日が空いている場合は、 NSX-T の状態の確認を再度行ってください。
追加の確認として、 ping レベルでの North-South, East-West の疎通確認を行っておきます。
（North-South, East-West とは？という話は割愛します。VMware 界隈ではよく聞きますが
一般用語なのかどうかわかりません。。。）

アップデート開始前に、この段階での 当環境の VM の状況を参考に記載しておきます。

|VM|数量|状態|
|:-:|:-:|:-:|
|vCenter|1|起動状態|
|NSX Controller|3|起動状態|
|NSX Edge|4|起動状態|
|業務VM|4|起動状態（他は事前停止済み）|

アップデートは NSX Manager から実施します。

「システム」　＞　「アップグレード」　を選択してください。
アップグレードの開始画面が表示されます。前回アクセス時と違うのは「進行中」となっている点、バージョンの From-To が表示されている点等です。

![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/3d140327-2a78-dfa1-0270-3b91c9b70d42.png)

:::note warn
もしここで、下図のような警告が出ている場合は、指定されているIP で NSX Manager に接続しなおしてください。
:::
![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/9417423b-feaa-d8f4-1e7d-8075cac6795c.png)


「アップグレードを続行」　リンクを押します。
再び、「アップグレードの準備」画面が表示されるため、再度事前チェックを行ってください。
下図では、 Edge 部分に問題が出ていますが、 Load balancer 配下の VM を止めている状態なので、仮想サーバーやプールの問題が検出されています。
こちらは意図通りなので無視します。
「次へ」ボタンを押します。
（なお、ここで「アップグレードバンドルのアップロード」を行う必要はありません。）

![26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/1768b620-a9d1-8aaa-1d2b-12149d6d1a3c.png)

Edge のアップグレード画面に遷移します。
検出された edge のグループごとにアップグレードするか、並行でアップグレードするかを選択できます。
今回は、念のため「連続」を選択し、「各グループのアップグレード完了後」に一時停止する設定とし、「開始」ボタンを押しました。

![27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/8b7c75d5-8d27-a54c-badb-2c68d40faa4a.png)

1つ目のグループのアップデートが開始されます。自動的に Edge の新OS をインストールし、現新OS をスイッチしているようです。
完了後、一時停止するため、続けてまた「開始」ボタンを押します。

![28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/f9b840f5-426c-6328-bb16-777591c7f679.png)


アップグレードの続行画面が表示されるため、「続行」を押します。

![29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/6e2f91b1-2cc4-bd4a-ec88-ec29bc9f4cb6.png)

「進行状況」欄でアップグレード成功を確認し、　「事後チェックの実行」を押します。

![30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/ecb3e120-5f9d-bba3-2794-f905af210201.png)


「事後チェックの実行」画面が表示されるため、「事後チェックの実行」ボタンを押します。

![31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/083a5d06-dc8f-45ac-397e-78e5af66d800.png)

事後チェックの完了後、問題がないことを確認して「次へ」を押します。

![32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/6273a3cd-a9fe-f4bb-52a6-e2fdb1c92bf4.png)

ここまでで Edge のアップグレードが完了です。 （ Edge 4台で　約 45分程度でした ）

##ESXi の NSX カーネルモジュールのアップデート

続いて ホストのアップグレードです。

![33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/d56ea328-c4aa-895b-5f10-a4df1288e32a.png)

Edge のアップグレードとほぼ同様に、プラン部分を選択し、「開始」ボタンを押します。
ここで、自動的に 各 ESXi 上の VM を DRS で移動させ、 ESXi をメンテナンスモードにしたうえで NSX カーネルモジュールを入れ替えているようです。

進行状況欄で、成功を確認し、「事後チェックの実行」リンクを押します。

![34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/12a7a8ee-7c21-4360-bf51-5daee7006e75.png)


「アップグレードの事後チェックの実行」画面が表示されるため（画像割愛）、「事後チェックの実行」ボタンを押します。

![35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/9a71563f-a3a8-ef3d-e40a-04924d3f8b91.png)

事後チェックに問題がなければ ESXi の NSX カーネルモジュールのアップグレードは完了です。
「次へ」ボタンを押して、 NSX Manager のアップグレードに移ります。
今回、 2台の ESXi 上で 4VM 稼働している状況で、約 30分かかりました。

##NSX Control plane のアップデート

NSX Control plane のアップデートです。　具体的には 3VM 稼働している Contoller がアップグレードされます。
注意点としては、 Controller 上で提供されている NSX Manager のサービスが停止するタイミングがあるため、 NSX Manager のコンソールが切断されるタイミングがあります。
今回の作業では 2回の切断があり、うち1回目は 「数分後にブラウザを再ロードしてください」と表示されたものの実際には 40分近く再表示されませんでした。

NSX Manager のアップグレード画面で、 「開始」ボタンを押します。
ここでは、プラン設定などはなく、3つ一度に開始されます。
ただし、 Orchestrator ノード（要はメインのノード）より先に Non-Orchestrator ノードがアップグレードされるようです。

![36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/2c52eea7-982b-429a-3789-bdbe46655831.png)

アップグレードの開始画面が表示されるため、「開始」ボタンを押します。

![37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/59b54513-6a4d-01ac-35e4-ae25372d903a.png)

![38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/a3f32fc5-2b53-1f75-4ac7-32978ff68def.png)

2台のアップグレードが完了し、3台めが再起動するタイミングで、
ブラウザ上にエラーメッセージが表示されます。

![39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/adb1dc0b-ca85-f052-d718-39e993f46da4.png)


ここで 「再ロード」を押すと、画面が再表示されるはずではありますが、
今回の例では、 40分間ぐらい応答がなく、下図の画面が表示された状態でした。

![40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/2ce3b9e6-c3c6-fdbf-11a0-d95440aa603d.png)

この間、状況を確認したい場合は NSX Manager に admin ユーザで ssh ログインし、
コマンドを実行することにより、進捗の状況を確認することが可能です。

NSX CLI 上で `get upgrade progress-status` コマンドを打ちます。
（なお、変更はしないように、という警告も出ています）

![41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/cf1e65ac-cd46-ef10-29c6-305f79db63a8.png)

また、 サービスの状況を確認することも可能です。
（ http が running になれば、画面は表示されます。（ただし、Manager サービスが起動しないとログインしても何もできないですが。。））

![42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/d7eb2576-4785-f393-8d52-8856a8f62616.png)

http や manager サービスなど一通り起動したタイミングで ブラウザから NSX Manager にアクセスしてください。
今回の例では、再度ブラウザにアクセスできた後に、また再び数分切断される、ということがありました。
（2回目は数分でした）

その後、画面上の進行状況が 「成功」で 100% になっていれば完了です。
「完了」ボタンを押します。
3VM の controller を更新するのに、上記待ち時間も含め 約1 時間かかりました。

![43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/1f9ad4ce-f934-8d76-f733-47702166d8a9.png)

アップグレードの最初の画面に戻るため、
バージョンを確認します。

![44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310495/a69588db-bb90-90de-b44f-b6458841f901.png)

この後、当記事の最初のほうで確認したシステムの状態や、バージョンを参考にしながら
アップグレード後の状態、バージョンを確認してください。

##DRS 無効化（必要時）

最後に、DRS を無効化（手順割愛）し、各種VM を起動、稼働確認を行って完了です。

#終わりに

VMware NSX-T のアップデートという、あまりなさそうな作業をする機会があったため
参考例としてまとめました。
NSX-T は多数の機能を持っているため、利用している機能によっては、前提条件や手順が異なる可能性がありますが、基本的な流れは変わらないと思います。
少しでも参考になれば幸いです。

# 参考情報

■NSX-T Data Center アップグレードガイド
https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/3.1/upgrade/GUID-E04242D7-EF09-4601-8906-3FA77FBB06BD.html

■VMware NSX-T: How to upgrade to NSX-T Data Center v3.1.1
https://www.youtube.com/watch?v=Dgx1Jc-9wtk

---