【vSphere7.0u2】ESXiのバックアップ・リストアを試してみる with VDS

どうも、Tです。

先日vCenterのバックアップリストアを確認しました。今回は、ESXiホストのバックアップリストアを確認してみます。

スポンサーリンク
アドセンス1

ここでの結論

詳細は記事をご確認ください。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ユーザーで操作しています。

How to back up and restore the ESXi host configuration

検証を行ったのは、VDS環境でKB2042141のリストアをしたらどうなるのだろうか?と疑問に思ったからです。

今回の検証のストーリーですが、ESXiホストのインストールのディスクが全損して、OSの再インストールをしてバックアップファイルから構成を戻すという流れを想定しています。

環境

ESXi

  • Version: 7.0.2 Build: Releasebuild-17867351
物理ESXiホストの上に、仮想マシンとして上記バージョンをNested ESXiとして構築しています。本手順内容は物理サーバーとは異なる場合があります。

仮想スイッチ構成

今回のバックアップ・リストア対象は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
正式な情報は見つかりませんでしたが、このUUIDはESXi側で生成しているIDではなく、サーバーのシステムボードのUUIDになっているようです。

バージョン情報取得

「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は、管理系につながるものを適当に選択しました。

ここでDNS、ホスト名は設定しませんでした。名前解決されて自動的にvCenterに再接続されるのを防ぐためです。

Host Clientへログインしてメンテナスモードにしておきます。

この後、必要に応じて、バックアップ時に取得していたビルドバージョンと同じになるようにパッチの適応などを行います。

ESXiホストのリストア

パッチ適応も終わり、ビルドバージョンが同じになっていることを確認後、リストアを開始します。

バックアップファイルをESXiホストにアップロードします。KBではデータストアにアップロードするように指示がありましたが、今回40GBのHDDのためローカルデータストアが存在しないためシステム領域の/tmpを使います。

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のインストール時に異なるパスワードを設定していましたが、バックアップファイルからリストアすると、元のパスワードにリストアされていました。

参考

ESXi ホストのバックアップからリストア時に復元されるデータ
今回は以下のKBの内容に基づき、”ESXi単体のバックアップで、リストアされるデータとされないデータ”について調査してみました。ESXi ホストの構成のバックアップ方法 (2042141)<検証方法/環境>今回はVMware H

まとめ

KBにvDSの記載がないため不安でしたがリストアできそうですね。この手順でvDSが戻るという正確な情報はありませんが・・・・。

少々面倒ではあるけど、1度慣れてしまうと驚くほど簡単にリストアできました。

コマンドじゃなくてホストプロファイルを利用してバックアップ・リストアっぽいことをする方法も試してみました。

【vSphere7.0u2】ホストプロファイルでESXiのバックアップ・リストアを試してみる with VDS
どうも、Tです。 先日ESXiのコマンドラインからのバックアップリストアを確認しました。 今回はホストプ...
スポンサーリンク
アドセンス1
アドセンス1
ブログランキング・にほんブログ村へ

シェアする

フォローする