どうも、Tです。
先日vCenterのバックアップリストアを確認しました。今回は、ESXiホストのバックアップリストアを確認してみます。
目次
ここでの結論
詳細は記事をご確認ください。VDSも含め驚くほどあっさりとリストアされました。
項目 | 結果 | 備考 |
ストレージアダプタ | 〇 | |
仮想スイッチ(VSS) | 〇 | |
仮想スイッチ(VDS) | 〇 | |
VMKernelアダプタ | 〇 | |
TCP/IP設定 | 〇 | |
ライセンス | 〇 | |
ホストプロファイル | 〇 | |
時間の設定 | 〇 | |
証明書 | 〇 | |
システム詳細 | 〇 | |
電源管理 | 〇 | |
データストア | 〇 | |
パスワード | 〇 |
1点補足すると、この記事はホストのリストアするときに、元のインベントリ情報を削除せずそのまま進める方針で行っています。
インベントリを削除した後に、リストアを行うと管理ネットワークがVDSにあったとしてもリストア後通信は行えますが、インベントリ削除後にVDSからホスト情報が消えています。vCenterとESXiホストのVDS情報が異なるため、VDSへ再度ホスト追加、アップリンク割当の設定が必要でした。
2021年9月2日追記
物理ホスト+VDS+NSXの環境で本手順のリストアを試してみたところ正常に戻りませんでした。
戻せなかった時の履歴を忘れぬように。
リストア後、起動はしますがpingなどの疎通が一切行えません。Host Clientへも繋げません。画面は、下記のようにIPやホスト名が何も表示されない不可思議な現象が発生しました。
ログインは行えますが、仮想スイッチのリストアオプションなどを実行してもFailとなってしまいました。
仮想スイッチの状況を見ようとesxcfg-vswitch -lオプションを実行しても何も表示されませんでした。
おそらくNSX絡みの問題かと考えています。リビルドを合わせてもリストア時にはNSXのVIBなどが欠落しているため・・・・。
やりたいこと
今回は、KB204214を参考に進めていきます。3種類のコマンド方法(ESXiコマンドライン、vSphere CLI、vSphere PowerCLI)がありますが、どの環境でも使えるESXiコマンドラインを使います。特筆しない限りESXiホストへSSH接続してrootユーザーで操作しています。
検証を行ったのは、VDS環境でKB2042141のリストアをしたらどうなるのだろうか?と疑問に思ったからです。
今回の検証のストーリーですが、ESXiホストのインストールのディスクが全損して、OSの再インストールをしてバックアップファイルから構成を戻すという流れを想定しています。
環境
ESXi
- Version: 7.0.2 Build: Releasebuild-17867351
仮想スイッチ構成
今回のバックアップ・リストア対象はtestesxi003を利用します。仮想スイッチはVDSスイッチ×3個とVSSスイッチ×1個の構成にしています。
1つ目のVDS-Mgmtの構成です。
2つ目のVDS-Serviceの構成です。このホストには仮想マシンがいないので、分散ポートグループが表示されていません。
3つ目のVDS-Storageの構成です。NFSストレージに接続するためのVMkernelを作成しています。
VSSの構成です。仮想マシン用のポートグループを作成しています。
前提
リストアできるバージョンは、バックアップ時と同じもの
リストアは同じビルド番号のみです。KB2042141に下記のように記載があります。
Note: バックアップからリストアを行うためには、リストア先 ESXi ホストがバックアップを取得した ESXi と同じビルドである必要があります。
リストアできるのは構成情報のみ
本手順でリストアできるのは、ESXiホストの構成情報だけです。KB2042141では状態と標準スイッチと記載されています。つまり、データストアの中身(ローカルに保存しているデータや仮想マシンファイル)はリストアできません。
ホスト構成を復元すると、ESXi の状態が vSphere 標準スイッチのネットワーク構成とともに復元されます。
TPMはUUIDをオーバーライドできない(7.0u2以降)
リストア時にUUIDをオーバーライドできるforce(数字の1を指定)するオプションがありますが、vSphere7.02u以降でTPMを搭載している場合、UUIDのオーバーライドはできないようです。
However, starting from vSphere 7.0 U2, the configuration could be encrypted using TPMs and in which case, the -force option will not work if the host got changed. We need the same TPM that was used on the host during backup, to restore. In other words,
from vSphere 7.0U2, the override will not work if the host has TPM enabled.
知っている限りはどのサーバーベンダーもTPMモジュールはオプション扱いなので、現時点では気にしすぎる必要もない気がしますが注意点の1つです。
ESXiホストのバックアップ
事前準備
この事前準備は必須ではありません。リストア時に同じバージョンにしか戻せないためバックアップ時の状態を取得しておいた方がいいだろうという考えから実施しています。バージョンとプロファイルおよびVIB情報があれば、リストアの際にバックアップの状態にもどsるようになります。
UUID情報取得
「esxcfg-info -u」コマンドでUUIDを取得します。
[root@testesxi003:~] esxcfg-info -u AF744D56-9DC9-7838-3A62-764417C60C55
バージョン情報取得
「esxcli system version get」コマンドでバージョン情報を取得します。
[root@testesxi003:~] esxcli system version get Product: VMware ESXi Version: 7.0.2 Build: Releasebuild-17867351 Update: 2 Patch: 0
プロファイル情報取得
「esxcli software profile get」コマンドで適応しているプロファイル情報を取得します。
[root@testesxi003:~] esxcli software profile get (Updated) ESXi-7.0U2a-17867351-standard Name: (Updated) ESXi-7.0U2a-17867351-standard Vendor: VMware, Inc. Creation Time: 2021-08-30T03:18:53 Modification Time: 2021-08-31T06:48:30 Stateless Ready: True Description: 2021-08-30T03:18:27.462475+00:00: The following VIBs are installed: vmware-fdm 7.0.2-17958471 ---------- The general availability release of VMware ESXi Server 7.0U2a brings whole new levels of virtualization performance to datacenters and enterprises. VIBs: atlantic 1.0.3.0-8vmw.702.0.0.17867351, bnxtnet 216.0.50.0-34vmw.702.0.0.17867351, bnxtroce 216.0.58.0-19vmw.702.0.0.17867351, brcmfcoe 12.0.1500.1-2vmw.702.0.0.17867351, -長いので割愛-
VIB情報取得
「esxcli software vib list」コマンドでVIBファイルの情報を取得します。
[root@testesxi003:~] esxcli software vib list Name Version Vendor Acceptance Level Install Date ----------------------------- ----------------------------------- ------ ---------------- ------------ atlantic 1.0.3.0-8vmw.702.0.0.17867351 VMW VMwareCertified 2021-08-30 bnxtnet 216.0.50.0-34vmw.702.0.0.17867351 VMW VMwareCertified 2021-08-30 bnxtroce 216.0.58.0-19vmw.702.0.0.17867351 VMW VMwareCertified 2021-08-30 brcmfcoe 12.0.1500.1-2vmw.702.0.0.17867351 VMW VMwareCertified 2021-08-30 brcmnvmefc 12.8.298.1-1vmw.702.0.0.17867351 VMW VMwareCertified 2021-08-30 elxiscsi 12.0.1200.0-8vmw.702.0.0.17867351 VMW VMwareCertified 2021-08-30 -長いので割愛-
バックアップ
ESXiホストのバックアップファイルを取得します。
SSHで接続し「vim-cmd hostsvc/firmware/sync_config」コマンドを実行します。このコマンドの詳細はわかりませんが、最新の設定情報を同期させるようです。十数秒程度で完了しました。
[root@testesxi003:~] vim-cmd hostsvc/firmware/sync_config [root@testesxi003:~]
「vim-cmd hostsvc/firmware/backup_config」コマンドを実行してバックアップファイルを生成します。十数秒程度で完了しました。ダウンロード先のURLが表示されます。
[root@testesxi003:~] vim-cmd hostsvc/firmware/backup_config Bundle can be downloaded at : http://*/downloads/523ff792-408b-b0b3-4a1e-7b481e876c7e/configBundle-testesxi003.testdev.lab.tgz [root@testesxi003:~]
出力されたURLをテキストにコピペし、アスタリスクをホストのFQDNもしくはIPアドレスに変更します。
http://*/downloads/523ff792-408b-b0b3-4a1e-7b481e876c7e/configBundle-testesxi003.testdev.lab.tgz
↓
http://testesxi003.testdev.lab/downloads/523ff792-408b-b0b3-4a1e-7b481e876c7e/configBundle-testesxi003.testdev.lab.tgz
変更したURLにWebブラウザでアクセスします。
バックアップファイルがダウロードされます。
バックアップファイルが取得できました。
ESXiホストのリストア事前準備
リストアをする前に疑似的に障害を発生させ、ディスク交換をした状態にします。
testesxi003の停止とディスク交換
正常に稼働している状態です。
「vsish -e set /reliability/crashMe/Panic 1」コマンドを実行してPSODを発生してESXiをハングアップさせます。
[root@testesxi003:~] vsish -e set /reliability/crashMe/Panic 1
ESXiがハングアップしたので切断状態になります。このまま放置しておきます。
ESXiホストをパワーオフさせて、既存のディスクを削除し新しいディスクを追加します。(物理サーバーでHDDを交換、もしくはRAIDの再構築をしたイメージです)
testesxi003のESXi再インストール
ESXiをインストールします。
インストール後SSHとShellを有効化しておきます。
管理系に接続できるようにIPアドレスを設定します。vvmnicは、管理系につながるものを適当に選択しました。
Host Clientへログインしてメンテナスモードにしておきます。
この後、必要に応じて、バックアップ時に取得していたビルドバージョンと同じになるようにパッチの適応などを行います。
ESXiホストのリストア
パッチ適応も終わり、ビルドバージョンが同じになっていることを確認後、リストアを開始します。
バックアップファイルをESXiホストにアップロードします。KBではデータストアにアップロードするように指示がありましたが、今回40GBのHDDのためローカルデータストアが存在しないためシステム領域の/tmpを使います。
vSphere7から128GB未満の場合、ローカルデータストアが作成できません。
WinSCPなどのSFTPクライアントでESXiに接続し/tmpにバックアップファイルをアップロードします。
バックアップファイルは、configBundle.tgzという名前だけ受け付けます。アップロードしたバックアップファイルには、ホスト名が含まれているためconfigBundle.tgzにファイル名をリネームします。
[root@localhost:/tmp] ls configBundle-testesxi003.testdev.lab.tgz vmware-root vmware-root_133659-2118006716 [root@localhost:/tmp] mv configBundle-testesxi003.testdev.lab.tgz configBundle.tgz [root@localhost:/tmp] ls configBundle.tgz vmware-root vmware-root_133659-2118006716 [root@localhost:/tmp]
下記のコマンドを実行してリストアを開始します。コマンド実行後に即時再起動が始まります。
[root@localhost:/tmp] vim-cmd hostsvc/firmware/restore_config configBundle.tgz
UUIDが異なっている場合は、上記コマンドではできません。UUIDをオーバーライドを強制するオプション1をつけて実行します。
vim-cmd hostsvc/firmware/restore_config 1 configBundle.tgz
2021年9月2日追記
KBに指定はありませんでしたが、ローカルデータストアにバックアップファイルをアップロードしてコマンドを実行したところ、下記のエラーができませんでした。バックアップファイル(configBundle.tgz)は、/tmpフォルダへ配置する必要があるようです。
[root@localhost:/vmfs/volumes/61305a9b-545ea520-1a8c-0025b5001a01] vim-cmd hostsvc/firmware/restore_config /vmfs/volumes/datastore1/configBundle.tgz
(vim.fault.FileNotFound) {
faultCause = (vmodl.MethodFault) null,
faultMessage = <unset>,
file = “/tmp/configBundle.tgz”
msg = “Received SOAP response fault from [<cs p:00000004974df660, TCP:localhost:8307>]: restoreConfiguration
File /tmp/configBundle.tgz was not found”
再起動中に設定の書き換えを行っているのか通常の起動と変わらない程度で起動状態になりました。この画面でホスト名が設定されているのがわかります。
Host Clientから確認すると、なんとVDSの構成もリストアされていました。
バックアップファイルがどうなったか確認してみると削除されておりました。これは/tmpに置いていたのかどうかわからないので、リストア後はバックアップの状態を確認して存在しているようなら手動で削除しましょう。
[root@testesxi003:/tmp] ls vmware-root vmware-root_133837-2083795211 [root@testesxi003:/tmp]
vSphere Clientに接続すると切断状態のインベントリをそのままにしていたので、自動的に接続されていました。
確認した項目
バックアップ前に取得していた画面ショットと見比べてみました。
ストレージアダプタ
リストアできました。iSCSI用のソフトウェアアダプタを追加していました。
仮想スイッチ(VSS)
リストアできました。
仮想スイッチ(VDS)
リストアできました。インベントリを削除していなかったためVDS側の追加設定も不要でした。
VMknerleアダプタ
リストアできました。
TCP/IP設定
リストアできました。
ライセンス
リストアできました。参考に記載しているサイトではリストアできないように記載されていましたが、手順の違いからか正常にライセンスがついたままになっていました。
ホストプロファイル
リストアできました。これはおそらくリストアできたというよりは、vCenterで保持していたものがそのまま残ってるかと思われます。
時間の設定
リストアできました。NTPを設定していました。
証明書
リストアできました。
システム詳細
リストアできました。テストのログの保存期間とサイズを最大に変更していました。
電源管理
リストアできました。テストのためポリシーを高パフォーマンスに変更していました。
データストア
リストアできました。特に操作の必要もなく使えるようになりました。
ESXiのrootパスワード
リストアできました。ESXiのインストール時に異なるパスワードを設定していましたが、バックアップファイルからリストアすると、元のパスワードにリストアされていました。
参考
まとめ
KBにvDSの記載がないため不安でしたがリストアできそうですね。この手順でvDSが戻るという正確な情報はありませんが・・・・。
少々面倒ではあるけど、1度慣れてしまうと驚くほど簡単にリストアできました。
コマンドじゃなくてホストプロファイルを利用してバックアップ・リストアっぽいことをする方法も試してみました。