Shallow Dive by Dozono

ESXi 6.7から7.0へのアップグレード

Posted : 17 Apr 2020

ESXi 6.7サーバを7.0にアップグレードする。

ESXiのバージョン / アップグレード可否確認

ESXiのTSMに接続し、アップグレード前のESXiのバージョンを確認する。
参考:Using ESXi Shell in ESXi 5.x, 6.x and 7.x (2004746)

1
2
3
4
5
6
7
8
9
10
# 実行コマンド
vmware -l
vmware -v

# サンプル
[root@esxi03:~] vmware -l
VMware ESXi 6.7.0 Update 3
[root@esxi03:~] vmware -v
VMware ESXi 6.7.0 build-15160138
[root@esxi03:~] 

バージョンを確認できたら、VMware Product Interoperability Matricesよりアップグレードの可否を判断する。

Upgrade path

※ 画像は2020年4月17日時点の情報となる。最新情報はリンク先を参照のこと。

ESXi7.0インストール時の注意点として、本バージョンより対応しているCPUが変わっている。以下のCPUは使用できないため注意すること。

  • Intel ファミリ 6、モデル = 2C (Westmere-EP)
  • Intel ファミリ 6、モデル = 2F (Westmere-EX)

詳細はVMware vSphere 7.0 リリース ノート - 本リリースへのアップグレードおよびインストールをサポートしない CPUを参照のこと。

アップグレードファイルの取得

My VMwareより、ESXiのdepot.zipファイルを取得し、データストア(VMFS or NFS)に格納する。
SCPによるデータ格納も可能だが、Host Clientを使用した方がトラブルを防止できるだろう。
Host Clientより[ストレージ]-[データストア]-[データストアブラウザ]-[アップロード]と操作し、任意のディレクトリにdepot.zipファイルを格納する。

ファイルアップr-ド

アップグレード作業

TSMからアップグレード作業を行う。

メンテナンスモードへの移行

ESXiをメンテナンスモードに移行する。
アップグレード対象のESXi上で仮想マシンが稼働している場合は、事前にシャットダウンもしくはvMotionで他のホストに移動しておくこと。

【追記】実行コマンド①か②のいずれかを実行する。
実行コマンド②については @gowatanaさんに教えていただきました。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 実行コマンド①
vim-cmd hostsvc/maintenancemodeenter
vim-cmd hostsvc/hostsummary | grep inMaintenanceMode

# 実行コマンド②
esxcli system maintenanceMode set --enable=true
vim-cmd hostsvc/hostsummary | grep inMaintenanceMode

# サンプル
[root@esxi03:~] vim-cmd hostsvc/maintenancemodeenter
[root@esxi03:~] vim-cmd hostsvc/hostsummary | grep inMaintenanceMode
      inMaintenanceMode = true,  # trueと表示されたらメンテナンスモード状態である。
[root@esxi03:~]

プロファイルの確認

depot.zipファイルに格納されているプロファイルを確認する。

1
2
3
4
5
6
7
8
9
10
# 実行コマンド
esxcli software sources profile list -d <depot.zipファイルのパス>

# サンプル
[root@esxi03:~] esxcli software sources profile list -d /vmfs/volumes/Nutanix-CE/iso/VMware/vSphere/VMware-ESXi-7.0.0-15843807-depot.zip
Name                          Vendor        Acceptance Level  Creation Time        Modification Time
----------------------------  ------------  ----------------  -------------------  -------------------
ESXi-7.0.0-15843807-standard  VMware, Inc.  PartnerSupported  2020-03-16T10:48:54  2020-03-16T10:48:54
ESXi-7.0.0-15843807-no-tools  VMware, Inc.  PartnerSupported  2020-03-16T10:48:54  2020-03-16T10:48:54
[root@esxi03:~]

アップグレード

アップグレードコマンドを実行する。

1
2
# 実行コマンド
esxcli software profile update -d <depot.zipファイルのパス> -p <プロファイル名>

参考:依存関係エラーの対応

既存の環境でESXiのCustom Imageを使用していた環境では、依存関係を解決できずエラーが出力される場合がある。使用しているハードウェアのベンダーがESXi 7.0のCustom Imageを提供するまで座して待とう。

1
2
3
4
5
6
7
# 依存関係エラーのサンプル
[root@esxi03:~] esxcli software profile update -d /vmfs/volumes/Nutanix-CE/iso/VMware/vSphere/VMwar
e-ESXi-7.0.0-15843807-depot.zip  -p ESXi-7.0.0-15843807-standard
 [DependencyError]
 VIB CiscoSystemsInc.bootbankucs-tool-esxi1.0.2-1OEM requires esx-version << 6.7.1, but the requirement cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.
[root@esxi03:~]

座して待てない方は–force(-f)オプションを使ってアップグレードが可能。実施の際は自己責任

1
2
3
4
5
6
7
# 座して待てない方向けの--force(-f)オプション
[root@esxi03:~] esxcli software profile update -d /vmfs/volumes/Nutanix-CE/iso/VMware/vSphere/VMware-ESXi-7.0.0-15843807-depot.zip  -p ESXi-7.0.0-15843807-standard -f
Update Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: VMWbootbankbnxtnet216.0.50.0-4vmw.700.1.0.15843807, VMWbootbankbnxtroce216.0.58.0-1vmw.700.1.0.15843807,
<後略>

ESXiの再起動

アップグレードコマンドが正常終了したら再起動を行う。

【追記】実行コマンド①か②のいずれかを実行する。
実行コマンド②については @gowatanaさんに教えていただきました。

1
2
3
4
5
6
7
8
9
# 実行コマンド①
reboot

# 実行コマンド②
esxcli system shutdown reboot -r "Update to version 7.0"

# サンプル
[root@esxi03:~] reboot
[root@esxi03:~]

バージョン確認

ESXiの再起動が完了したらアップグレード完了を確認する

1
2
3
4
5
6
7
8
9
10
# 実行コマンド
vmware -l
vmware -v

# サンプル
[root@esxi03:~] vmware -l
VMware ESXi 7.0 GA
[root@esxi03:~] vmware -v
VMware ESXi 7.0.0 build-15843807
[root@esxi03:~]

メンテナンスモードの解除

メンテナンスモードを解除する。

【追記】実行コマンド①か②のいずれかを実行する。
実行コマンド②については @gowatanaさんに教えていただきました。

1
2
3
4
5
6
7
8
9
10
11
12
13
# 実行コマンド①
vim-cmd hostsvc/maintenancemodeexit
vim-cmd hostsvc/hostsummary | grep inMaintenanceMode

# 実行コマンド②
esxcli system maintenanceMode set --enable=false
vim-cmd hostsvc/hostsummary | grep inMaintenanceMode

# サンプル
[root@esxi03:~] vim-cmd hostsvc/maintenancemodeexit
[root@esxi03:~] vim-cmd hostsvc/hostsummary | grep inMaintenanceMode
      inMaintenanceMode = false, # falseと表示されたらメンテナンスモードが解除された状態である。
[root@esxi03:~]

おわりに

アドバイスを送付して下さった@gowatanaさんにこの場を借りてお礼申し上げます。