ESXi7へのバージョンアップ準備が完了したので、ESXi6.7から起動しようとしたらロード中にCRCエラーが発生してしまいました。
どうやら、nsx_cfga.v00というファイルが壊れているようだったので、復旧した際の手順を紹介します。
USBメモリも容量が少なく古かったので、これを機に新しいものに交換しようと思います。
復旧方針
このホストはvCenterのデータが格納されているので、まずは復旧優先で、その後バックアップリストしていこうと思います。
1.旧USBメモリのESXiを復旧
2.旧USBメモリのバックアップ
3.新USBメモリへリストア
旧USBメモリのESXiを復旧
nsx_cfga.v00が読み込めないということなので、別のESXi6.7ホストの起動用USBメモリに同じファイルがあるはずなので、そこからコピーします。そのような環境がない場合は、新規にESXi6.7の起動用USBメモリを作成することでファイルを取り出せます。
環境としては以下となっています。
esxi20:正常なホスト
esxi21:壊れたホスト
まず、esxi20にssh接続しstorageの接続状態を確認します。
[root@esxi20:~] ★ストレージの接続状況をスキャンします [root@esxi20:~] esxcli storage filesystem rescan esxcli storage filesystem list [root@esxi20:~] [root@esxi20:~] [root@esxi20:~] ★ストレージの接続状況を表示します [root@esxi20:~] esxcli storage filesystem list Mount Point Volume Name UUID Mounted Type Size Free ------------------------------------------------- --------------- ----------------------------------- ------- ------ ------------- ------------ /vmfs/volumes/616bc6de-7639309c-7864-1cfd08727d86 datastore_qnap 616bc6de-7639309c-7864-1cfd08727d86 true VMFS-6 2147215212544 864519454720 /vmfs/volumes/627fa3b2-dc68fad1-9252-80615f17003e datastore1TB_20 627fa3b2-dc68fad1-9252-80615f17003e true VMFS-6 999922073600 664816058368 /vmfs/volumes/6276f470-3a39838e-09fb-80615f1703cc 6276f470-3a39838e-09fb-80615f1703cc true vfat 299712512 117448704 /vmfs/volumes/fa78cfef-9654fc82-d090-11c095603827 fa78cfef-9654fc82-d090-11c095603827 true vfat 261853184 73457664 /vmfs/volumes/26e4d3ee-927f8b7c-a9f0-3eae44bf1690 26e4d3ee-927f8b7c-a9f0-3eae44bf1690 true vfat 261853184 106221568 [root@esxi20:~] [root@esxi20:~] [root@esxi20:~] ★USBのパススルーを停止しUSBメモリが見えるようにします [root@esxi20:~] /etc/init.d/usbarbitrator stop UsbUtil: Releasing all USB adapters to VMkernel watchdog-usbarbitrator: Terminating watchdog process with PID 2098603 usbarbitrator stopped [root@esxi20:~] [root@esxi20:~] [root@esxi20:~] ★ここで壊れたesxi21のUSBメモリをesxi20に接続します [root@esxi20:~] [root@esxi20:~] [root@esxi20:~] ★ストレージの接続状況をスキャンします [root@esxi20:~] esxcli storage filesystem rescan [root@esxi20:~] [root@esxi20:~] [root@esxi20:~] ★ストレージの接続状況を表示します [root@esxi20:~] ★追加された下3つがesxi21のストレージになります [root@esxi20:~] esxcli storage filesystem list Mount Point Volume Name UUID Mounted Type Size Free ------------------------------------------------- --------------- ----------------------------------- ------- ------ ------------- ------------ /vmfs/volumes/616bc6de-7639309c-7864-1cfd08727d86 datastore_qnap 616bc6de-7639309c-7864-1cfd08727d86 true VMFS-6 2147215212544 864519454720 /vmfs/volumes/627fa3b2-dc68fad1-9252-80615f17003e datastore1TB_20 627fa3b2-dc68fad1-9252-80615f17003e true VMFS-6 999922073600 664815009792 /vmfs/volumes/6276f470-3a39838e-09fb-80615f1703cc 6276f470-3a39838e-09fb-80615f1703cc true vfat 299712512 117448704 /vmfs/volumes/fa78cfef-9654fc82-d090-11c095603827 fa78cfef-9654fc82-d090-11c095603827 true vfat 261853184 73457664 /vmfs/volumes/26e4d3ee-927f8b7c-a9f0-3eae44bf1690 26e4d3ee-927f8b7c-a9f0-3eae44bf1690 true vfat 261853184 106221568 /vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc 4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc true vfat 261853184 73449472 /vmfs/volumes/0fa880e4-48deba12-0143-8b27d81f5072 0fa880e4-48deba12-0143-8b27d81f5072 true vfat 261853184 73633792 /vmfs/volumes/614cc759-94e221ea-0dd8-001b21893ba4 614cc759-94e221ea-0dd8-001b21893ba4 true vfat 299712512 117424128 [root@esxi20:~] [root@esxi20:~]
nsx_cfga.v00ファイルは上記ストレージ領域のいずれかにあるので調べたところ、vfat領域の以下にありました。
esxi20(正常):vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc
esxi21(故障):vmfs/volumes/fa78cfef-9654fc82-d090-11c095603827
場所が確認できたので、esxi20からesxi21へnsx_cfga.v00をコピーします。
[root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] ★故障したUSBメモリ(esxi21)でnsx_cfga.v00を確認して削除していきます [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] ls -al | grep nsx_cfga.v00 -rwx------ 1 root root 1396512 Feb 4 2022 nsx_cfga.v00 [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] ★バックアップを取ってオリジナルを削除します [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] cp -p nsx_cfga.v00 nsx_cfga.v00_bak [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] rm nsx_cfga.v00 [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] ★オリジナルが削除されていることを確認します [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] ls -al | grep nsx_cfga.v00 -rwx------ 1 root root 1396512 Feb 4 2022 nsx_cfga.v00_bak [root@esxi20:/vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc] [root@esxi20:~] [root@esxi20:~] ★esx20からesxi21へnsx_cfga.v00をコピーします [root@esxi20:~] cp -a /vmfs/volumes/fa78cfef-9654fc82-d090-11c095603827/nsx_cfga.v00 /vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc/nsx_cfga.v00 [root@esxi20:~] [root@esxi20:~] ★コピーされたことを確認しました [root@esxi20:~] ls -al /vmfs/volumes/4b1735ef-f09b7cc0-a9ce-a6a4f89ff2cc | grep nsx_cfga.v00 -rwx------ 1 root root 1396512 May 16 2022 nsx_cfga.v00 -rwx------ 1 root root 1396512 Feb 4 2022 nsx_cfga.v00_bak [root@esxi20:~]
あとは、USBメモリを外して、esxi21に接続して起動します。
私はこれで復旧しました。
esxiのバックアップ
バックアップは、ESXIコマンドラインにて取得します。
手順はこちらを参考にしました。
kb.vmware.com
[root@esxi21:~] ★変更された構成を永続ストレージと同期するために次のコマンドを実行します [root@esxi21:~] vim-cmd hostsvc/firmware/sync_config [root@esxi21:~] [root@esxi21:~] ★ESXi ホストの構成をバックアップするために次のコマンドを実行します [root@esxi21:~] vim-cmd hostsvc/firmware/backup_config Bundle can be downloaded at : http://*/downloads/52bca3bb-67bc-3c17-d06d-1cb009c310a0/configBundle-esxi21.home.local.tgz [root@esxi21:~]
ここで上記URLの「*」に192.168.1.21を入力し、ブラウザからアクセスしバックアップファイルをダウンロードします。
リストア
新しいUSBメモリにESXi6.7をインストールします。この段階では、ホストにSSH接続できればいいので、ホスト名やIPなどの設定はデフォルトのままで構いません。
インストールが完了したら、USBメモリからesxi6.7を起動して、SSH接続しましょう。
ホストはDHCPで起動したので、DHCPの192.168.1.174を確認しておきます。
事前に、ntp、shell、SSHの設定を有効にすることを忘れずに。
先ほどバックアップしたファイルをWinSCPでESXiのtmpに転送します。
なお、 バックアップからリストアを行うためには、リストア先 ESXi ホストがバックアップを取得した ESXi と同じビルドである必要があるので、以下のコマンドで確認します。
[root@localhost:~] ★ビルドを確認します [root@localhost:~] esxcfg-info -u 9D89B0D4-DD2F-4F9B-8088-0AF307758D16 [root@localhost:~] [root@localhost:~] ★バージョン、パッチも確認しておきます。 [root@localhost:~] esxcli system version get Product: VMware ESXi Version: 6.7.0 Build: Releasebuild-14320388 Update: 3 Patch: 73 [root@localhost:~]
以下の手順でリストアを実行します。
[root@localhost:~] cd /tmp [root@localhost:/tmp] ls -al total 60 drwxrwxrwt 1 root root 512 Apr 15 09:36 . drwxr-xr-x 1 root root 512 Apr 15 09:26 .. -rw-r--r-- 1 root root 41054 Apr 15 07:34 configBundle-esxi21.home.local.tgz -rw------- 1 root root 40 Apr 15 09:35 probe.session drwx------ 1 root root 512 Apr 15 08:42 vmware-root [root@localhost:/tmp] [root@localhost:/tmp] [root@localhost:/tmp] ★リストアコマンドを実行する前にバックアップファイル名を「configBundle.tgz」にリネームします [root@localhost:/tmp] mv configBundle-esxi21.home.local.tgz configBundle.tgz [root@localhost:/tmp] [root@localhost:/tmp] ls -al total 60 drwxrwxrwt 1 root root 512 Apr 15 09:39 . drwxr-xr-x 1 root root 512 Apr 15 09:26 .. -rw-r--r-- 1 root root 41054 Apr 15 09:39 configBundle.tgz -rw------- 1 root root 40 Apr 15 09:35 probe.session drwx------ 1 root root 512 Apr 15 08:42 vmware-root [root@localhost:/tmp] ★ESXi ホストをメンテナンスモードに変更します [root@localhost:/tmp] ★ESXi ホストの構成をリストアします [root@localhost:/tmp] vim-cmd hostsvc/firmware/restore_config configBundle.tgz
リストアコマンドを実行するとリストアがかかって再起動します。
これで無事復旧と新しいUSBメモリへの移行が完了しました。
なお、後から分かったのですが、ESXiの設定はきれいに戻りましたが、NSX-Tの設定が戻っていませんでした。
他の方の記事を見ると同様の事象が発生しているので、仕様かなと思います。
考えてみると、NSX-Tの設定は、NSX Managerのほうからコントロールしているので妙に納得しました。
なので、NSX-Tは後日再インストールして復元させようと思います。