Back Up and Restore VMware ESXi Host Configuration: A Step-By-Step Guide
On 12月 3, 2021 by adminバックアップは、あらゆる IT インフラストラクチャの継続的な運用のための最も重要なアクションの 1 つです。 vSphere の ESXi ホスト上で仮想マシン (VM) としてサーバーを実行すると、VM データをバックアップする際に大きな利点があります。 ホストレベルのバックアップでは、エージェントレスバックアップ、完全なVMバックアップ(VMデータ+VM構成)、スナップショットによる実行中のVMのバックアップ、サーバの低負荷といった便利な機能を利用することができます。 ESXiホストが健全であることは、仮想マシンの運用を成功させるための重要なポイントです。 そのため、ESXiの設定をバックアップしておくとよいでしょう。 このように、ESXiホストに何か問題が発生した場合、ESXiサーバを一から構成するために多くの時間を費やすことなく、数分でその構成を復元することができます。 本日のブログ記事では、ESXi のバックアップ構成を取り上げ、さまざまな方法を使用して ESXi ホストをバックアップする方法を探ります。
Using the ESXi Command Line to Backup ESXi Host
ESXi コマンドラインを使用する方法は、ESXi ホストの構成をバックアップする最も手頃な方法です。 ESXi コマンドラインを使用するために、追加のソフトウェアをインストールする必要はありません。 ESXiのシェルとESXiホストへのリモートSSHアクセスを有効にする必要があります。 このプロセスは、ESXCLI に関するブログ記事で説明されています。 SSH 経由で ESXi ホストに接続したら、コマンドを実行できます。
ESXi の設定は、1 時間ごとに /bootblank/state.tgz ファイルに自動的に保存されます。 このため、前回の自動保存以降にESXi構成に加えられたすべての変更が保存されていることを確認するために、現在のESXi構成が今すぐESXi構成ファイルに書き込まれることを確認する必要があります。
vim-cmd hostsvc/firmware/sync_config
Back up ESXi configuration:
vim-cmd hostsvc/firmware/backup_config
結果として configBundle.Bundle をダウンロードするリンクが届きますが、それはどのように行われますか。tgz アーカイブを ESXi ホストからダウンロードするリンクが表示されます。 アスタリスクは、ESXiホストのIPアドレスに置き換える必要があります。 ESXiの設定バックアップを含むアーカイブファイルは、/scratch/downloadsディレクトリに短時間(数分間)保存されます。 スクラッチパーティションについては、USBフラッシュドライブへのESXiのインストールについてのブログ記事で触れています。
ESXiホストのIPアドレスは、ESXiダイレクトコンソールインターフェースで、または次のコマンドで確認できます:
esxcli network ip interface ipv4 get
現在の例で使用しているESXiホストのIPアドレスは、192.1です。168.101.208.
できるだけ早く ESXi バックアップ アーカイブをダウンロードし、安全な場所に保管してください。
ESXi コマンド ラインで ESXi 構成のバックアップを自動化する方法
コマンド ライン インターフェイスの利点は、タスクを自動化できる可能性があることですが、それは ESXi 構成のバックアップも例外ではありません。 ESXi 設定のバックアップも例外ではありません。 ESXi データストアにバックアップファイルを格納するディレクトリを作成します。
mkdir /vmfs/volumes/datastore1/ESXi_backup
2. ESXi 構成をバックアップするスクリプトを作成します:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
3. スクリプトに次の行を追加します。
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \*.tgz -exec cp {}.sh
datastore1/esxi_backup.sh find /scratch/firmware/backup_config
datastore1/exec cp {}. /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +’%Y%m%d_%H%M%S’).tgz \;
4.Save and quit vi:
:wq
注:より便利にするには、バックアップファイル名に ESXi Host Name または IP Address も含めればよいのですが、その場合は、バックアップファイル名には、ESXi Host Name または IP Address が含まれます。 これは、複数のESXiホストを使用する際の混乱を避けるのに役立ちます。
5. スクリプトを実行可能にします:
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
6. スクリプトが置かれているディレクトリに移動します:
cd /vmfs/volumes/datastore1/ESXi_backup/
7.スクリプトが置かれているディレクトリに移動します: /vmfs/datastore1/ESXi_backup.sh
/vmfs/volumes/datastore1/esxi_backup.sh 7. スクリプトを実行します:
./esxi_backup.sh
8. バックアップ ファイルが作成されたことを確認します:
ls -al
9.バックアップ ファイルが作成されたことを確認します:
9. バックアップESXiホストスクリプトがスケジュール通り(自動的に)実行されていることを確認しましょう。 この目的のためにスケジューラ構成を編集します:
vi /var/spool/cron/crontabs/root
10.ESXiホストスクリプトをスケジュールで実行するようにします。 毎日午前2時10分にESXi構成のバックアップを実行するように次の文字列を追加します。
10 02 * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
11. ファイルに変更を保存します。 読み取り専用ファイルに変更を保存するには、:
:wq!:を入力します。
別の方法として、ファイルを編集する前にファイルのパーミッションを変更することもできます:
chmod +w /var/spool/cron/crontabs/root
その後、毎晩午前 02:10 に ESXi 設定が自動的に ESXi_config_bakup_date_time というファイルへバックアップされるようになります。tgz
ESXiコマンドラインでESXi構成を復元する方法
ESXi構成を復元したいマシンに、同じバージョンとビルド番号のESXiがインストールされている必要があります。 このルールは、このブログ記事で検討しているすべてのESXi構成の復元方法に当てはまります。 ゼロからインストールされた(明確にインストールされた)ESXiホスト上でESXi構成を復元する場合、ESXi管理ネットワークに使用するネットワークインターフェイスのIPアドレスを設定し、SSHアクセスを有効にする必要があります。 ESXiの初期設定については、こちらのブログ記事で解説しています。 バックアップしたESXiサーバと、設定を復元する必要のあるESXiサーバの両方で、UUIDが同じであることが必要です。 このセクションの下で、UUID 値が異なる場合の対処法をお読みください。
バックアップから ESXi 構成を復元するために、新しくインストールした ESXi ホストを準備したら、SSH で ESXi ホストに接続し、ホストをメンテナンス モードに設定します。
esxcli system maintenanceMode set -enable yes
or
vim-cmd hostsvc/maintenance_mode_enter
SCPクライアント、たとえばWinSCPを使用して、ESXi構成のバックアップが入ったアーカイブをESXiホストのいくつかのディレクトリにコピーしてください。 ローカルマシンから configBundle-xxxx.tgz アーカイブをコピー先の ESXi サーバーの /tmp/ ディレクトリにコピーしましょう。
ESXi 構成を復元するコマンドを入力する前に configBundle-xxxx.tgz ファイルの名前を configBundle.tgz に変更することです。 さもなければ、エラーメッセージが表示されます。 “File /tmp/configBundle.tgz was not found”.
SSHで接続したESXiシェルでファイル名を変更できます:
mv /tmp/configBundle-esxi6-7b.Tgz.localdomain.tgz /tmp/configBundle.tgz
ESXi構成を復元する:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz /tmp/configBundle.tgz
ESXi構成を復元する。tgz
このコマンドを実行すると、ESXi ホストが自動的に再起動します。
ESXi サーバーを再起動した後、メンテナンス モードを終了して、通常どおりホストを使用できるようにします。
esxcli system maintenanceMode set -enable no
or
vim-cmd hostsvc/maintenance_mode_exit
How to change the UUID to restore ESXi configuration
ESXi サーバの UUID は ESXi コマンド ライン インターフェイスでコマンドにより確認可能です。
esxcfg-info -u
バックアップされた ESXi ホストの UUID 値は、Manifest.Log に記載されています。
ESXi サーバーの UUID はハードウェアによって生成されるため、変更することはできません。 しかし、ESXi 構成のバックアップ アーカイブ configBundle.tgz に格納されている Manifest.txt ファイル内の UUID を変更すると、ESXi ホスト A の ESXi 構成を ESXi ホスト B に復元できます。
バックアップした構成を別の物理サーバで適用するには、UUID を変更するアルゴリズムを検討しましょう。 サーバAは構成がバックアップされたサーバ、サーバBは構成を適用する必要があるサーバです。
ステージ1
バックアップされた構成を適用するESXiホスト(サーバB)のUUIDを確認します。 これには少なくとも2つの方法がありますが、2番目の方法ではESXiのバージョンも確認できます。
1. esxcfg-info -u
2.1 ESXiサーバBの設定をバックアップする
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
2.2 ESXiサーバBの設定をバックアップする
3.2 バックアップアーカイブを一時ディレクトリにコピーし、そのディレクトリ
cp /scratch/downloads/_hash_value_/configBundle-localhost.Bundle に移動します。localdomain.tgz /tmp
cd /tmp/
2.3 アーカイブからファイルを取り出す
tar zxvf configBundle.tgz
2.4 Manifest.txt ファイルを vi で開いて UUID 値(UUID のある別の行に見えるでしょう)を確認します。 UUIDを書き留めます。
vi Manifest.txt
この場合、UUIDは1E9E4D56-B724-DFBE-D19D-4C2D827E0188
2.3UUIDは、1E9E4D56-B724-DFBE-D19D-4C2D827E0188となりました。5 /tmp/ディレクトリの一時ファイルを削除します。
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Stage 2
1. ESXiサーバAのconfigBundle.tgz構成バックアップアーカイブをサーバBに、たとえば/tmp/ディレクトリにコピーし、そのディレクトリに移動します。
2. configBundle.tgzからファイルを解凍します。tgz archive
tar zxvf configBundle.tgz
3. Manifest.txt ファイルを vi で開き、サーバー A の UUID 値をサーバー B の UUID に更新します.
vi Manifest.txt ファイルを vi で開き、サーバー A の UUID 値をサーバー B の UUID に更新します。txt
この例では、9EA94D56-7E39-96A8-AB45-DF31EF0971EC を 1E9E4D56-B724-DFBE-D19D-4C2D827E0188 に変更します。
ファイルを保存して、テキストエディター :wq
4.Rename your source configBundle.TXT
4.Rename your source configBundle.TXT
5.Rename your source configBundle.TXT
mv configBundle.tgz configBundle1.tgz
5. Manifest.txt、state.tgz、および jumpstrt.gz ファイルを新しい configBundle.tgz アーカイブに Tar します。
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz
6.新しい configBundle.gz アーカイブに Tar します。 ESXi ホストをメンテナンス モードにし、構成を復元します
esxcli system maintenanceMode set -enable yes
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.gz /tmp/configBundle.gz
6.tgz
vSphere CLI を使用して ESXi ホストをバックアップする方法
ESXi ホストを管理するために VMware が提供する別のコマンド ライン インターフェイスに vSphere CLI (VMware PowerCLI と混乱しないように) というものがあります。 ESXi ホストをリモートで管理するには、Linux または Windows を実行しているマシンに vSphere CLI をインストールする必要があります。 vSphere CLI をインストールするには、Perl が必要です。 vSphere CLI を使用する利点は、Linux での利便性と bash の威力を利用できることです。 今日の例では、Ubuntu Linux を使用します。
vCLIのインストールと設定
VMware の Web サイトから vSphere CLI をダウンロードします。
ダウンロードしたファイルがあるディレクトリに移動し、アーカイブからファイルを抽出します。
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.XXX.ZXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.YXX.XXX.XXXgz
必要なパッケージのインストール:
VMwareの公式推奨は、このパッケージ一式をインストールすることです。
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
展開したファイルがあるディレクトリに移動しインストーラーを実行します:
このパッケージをインストールすると次のようになります。/vmware-install.pl
使用許諾契約書を読み、同意します。 インストーラーがいくつかの必要なモジュールをインストールするように要求した場合、y を入力してモジュールをインストールします。
このケースでは、一部のモジュールは手動でインストールする必要があります。
Perl の対話型シェルに入る:
perl -MCPAN -e shell
必要な Perl モジュールをインストールするコマンドを実行:
install Devel::StackTrace
同様に他のモジュールをインストールする.Perl の対話的シェルでインストールを行うことができる.
対話的シェルを実行すると、モジュールのインストールが始まります。
Note: このケースでは、1 つのモジュールが対話型 Perl シェルでインストールできませんでしたが、Ubuntu コンソールのコマンドでそのモジュールをインストールできます。
apt-get install libcrypt-ssleay-perl
Perl モジュールをインストールしたら、再度 VMware vSphere CLI インストーラーを実行します。
インストールが正常に完了し、この場合は以下の画面が表示されます。:
ここで、vSphere CLIを使用して、Linuxコンソールでコマンドを入力して、ESXiサーバーのデバイス一覧を表示してみましょう(192.168.101.208 は ESXi サーバーの IP アドレスです)
esxcli -server 192.168.101.208 storage core device list
サーバーの SHA-1 サムプリントが信頼できないので ESXi ホストに接続できない。 これは、セキュリティ上の理由からサムプリントを定義する必要があることを意味します。 別のコマンドを試してみましょう。
esxcli -server 192.168.101.208 -thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get
対話モードでユーザー名とパスワードはコンソールで確認されることになります。
このようにユーザー名とパスワードが平文で入力されるコマンドは使用しないようにしてください:
これはセキュリティ上の理由によるものです。 実行されたコマンドは,history -c コマンドで履歴を消すまで,Linux に保存されます. インタラクティブ・モードの使用や、ログイン名とパスワードの手動入力を避ける必要がある場合は、ESXi セッションをファイルに保存し、コマンドを実行するときにこのファイルを使用することができます。 セッションの保存は、コマンドでパスワードを平文で入力するのとは異なり、安全です。 セッションの保存については、このブログの以下の記事で説明しています。
Saving a thumbprint for connecting to ESXi hosts
ESXi thumbprint をコマンド実行のたびに入力するのは便利ではありません。
ディレクトリに移動します。
cd /usr/lib/vmware-vcli/apps/general/
以下のコマンドを実行する必要があります:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint
この例では、コマンドは次のように実行されます。pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA
これで vSphere CLI で毎回サムプリントを入力せずにコマンドを実行することができるようになりました。
esxcli -server 192.168.101.208 system maintenanceMode get
ただし、ログインとパスワードを入力する必要がなくなったわけではありません – ログイン/パスワードの入力は依然として必要です。 毎回パスワードを入力せずにコマンドを実行するようにvSphere CLIを設定するにはどうすればよいのでしょうか。 この質問への回答は、以下のセクションで紹介されています。
ESXiホストへの接続にセッションファイルを使用する
保存したセッションファイルを使用することは、vSphere CLIを使用してリモートESXiホストでコマンドを実行するときに、ユーザー名とパスワードを入力しない方法の一つです。
最初に、例えば、/backup/といったESXi構成のバックアップファイルを格納するディレクトリを作成してください。
mkdir /backup
そのディレクトリに移動します。
cd /usr/lib/vmware-vcli/apps/session
コマンドで Perl スクリプトを使用して承認済み ESXi ホストのセッションをファイルに保存します。pl -savesessionfile /backup/192-168-101-208session -server 192.168.101.208 -username root -password TestPass_555
Where:
-savesessionfile /backup/192-168-101-208session is the name of the created session file
-server 192.168.101.208.208 はセッションが保存された ESXi ホストの名前です(この ESXi ホストは複数の例で使用されています)
-username root は ESXi ホストに接続しているユーザーの名前
-password TestPass_555 は ESXi ホストに接続しているユーザーのパスワード
これでパスワードを入力せずにコマンドを実行することができるようになりました。 ただし、-sessionfileキー(オプション)を入力し、セッションファイルのパスを定義する必要があります。 例:
esxcli -sessionfile /backup/192-168-101-208session system maintenanceMode get
Using a configuration file for connecting to ESXi hosts
この方法の考え方は、認証情報を平文として構成ファイル内に保存して、vSphere CLI で ESXiコマンドを実行する時にこのファイルを参照することです。 まず、設定ファイルを作成します。
vim /backup/vcli-config
次のような形式で資格情報を入力します:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
そのファイルを保存します。
リモート ESXi サーバーで vSphere CLI を使用してコマンドを実行します:
esxcli -server 192.168.101.208 -config vcli-config system maintenanceMode get
認証情報は平文で保存されるので、この方法は安全ではありません。
ESXiホストへの接続に認証情報ストアを使用
認証情報ストアとはvmwareサブディレクトリ ~/.vmware/credstore/vicredentials.xml にあるユーザーディレクトリの xml ファイルを指します。 リモート ESXi ホストでコマンドを実行するために資格情報ストアを使用する利点は、パスワードがプレーン テキストとして保存されないため、この方法はより高いセキュリティを提供します。
資格情報ストアに資格を追加するために、次のコマンドを実行します:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -server 192.168.101.208 -username root
必要な資格情報が存在することを確認するために資格情報ストアに保存された資格情報をリストアップします:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
資格情報ストアで、パスワードを入力せずにリモート ESXi ホストでコマンドを実行します。
# esxcli -server 192.168.101.208 -credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
root ユーザー以外を使用すると、認証情報ファイルは /home/user_name/.xml に格納されます。vmware/credstore/vicredentials.xml
以下のスクリーンショットでは、資格情報が資格情報ストア ファイルにどのように保存されるかがわかります。
Using vSphere CLI to back up ESXi host configuration
これで Ubuntu Linux マシンで vSphere CLI が設定できたので、コマンドを実行し ESXi 設定をバックアップすることが可能です。
/usr/bin/ディレクトリに移動
cd /usr/bin
これで、資格情報ストアに資格情報を保存後、ユーザ名とパスワードを入力せずにESXi設定のバックアップを作成することができます。
またはセッション ファイルにセッションを保存した後:
vicfg-cfgbackup -sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.X.S. /backup-192-168-101-208-esxi-cfg.X.S. /backup/192-168-101-208-esxi-cfg.tgz
Note: vicfg- コマンドは、非推奨です。 ESXi ホストで作業する場合は、コマンド ライン インターフェイスで ESXCLI 相当のコマンドを使用する方がよいでしょう。
注意: -sessionfile オプションを使用するデメリットは、vSphere CLI で最後のコマンドを実行してからアイドル時に 30 分のタイムアウトが発生することです。 その後、再度認証してセッションファイルを作成する必要があります。
対話モードでパスワードを入力しながら ESXi 構成のバックアップを作成する場合は、次のコマンドを実行できます。
vicfg-cfgbackup -server 192.168.101.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.208 -s /backup/192-168-101-208-esxi-cfg.tgz
How to make backup ESXi configuration automated
動的に変化する環境で ESXi ホストの構成が頻繁に変わる場合、 ESXi ホストの手動バックアップは合理的ではないかもしれません。 このような場合、バックアップコマンドや複数のコマンドを含むバックアップスクリプトをスケジューラに追加することで、バックアップESXiの設定を自動化することができます。
CrontabはLinuxにおけるスケジューラです。 Linuxのスケジューラ構成を編集して、ESXi構成のバックアップコマンドを定期的かつ自動的に実行します。
crontab -e
注意:初めてcrontab構成を編集する場合、crontab構成の編集に使用しなければならないデフォルトのテキストエディターを選択する必要があります。 この例では、この目的のために/usr/bin/vim.basicを使用します。
crontab構成の形式は次のとおりです。
分 時間 日_月 日_週 コマンド
毎晩午前03時25分にESXiホスト構成をバックアップしよう
25 03 * * /usr/bin/vicfg-cfgbackup -server 192.XXXXX.XXXXX.XXX.XXX.XXX.XXX.XXX.XXX.168.101.208 -config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz
スケジューラcrontabの設定を書き、テキストエディタvimを終了します。
:wq
午前03時25分を待って、ESXiバックアップ設定ファイルの保存先ディレクトリを確認しましょう。
ls -al
下のスクリーンショットにあるように、ESXiホスト設定のバックアップファイルは03:25に自動的に作成されました。
これでESXi設定のバックアップは自動的に作成されたので素晴らしいですが、欠点があります。 crontab が ESXi 設定のバックアップを作成するスケジュールコマンドを実行するたびに、以前の tgz ファイルが新しい tgz ファイルに上書きされます。 この状況は、昨日作成された正しいESXi構成のバックアップが、今日作成された間違ったESXi構成を含むファイルによって上書きされた場合、問題を引き起こす可能性があります。 このような問題を防ぐ正しい方法は、ESXi 構成を異なるファイルにバックアップすることです。
毎回 ESXi 構成を、ファイル名に ESXi 構成バックアップファイル作成日時を含む固有のファイル名を持つ別のファイルとして保存する簡単なスクリプトを作成しましょう。 スクリプトを作成することで、1つのスクリプトを実行することで複数のESXiホストをバックアップするためのコマンドを追加することができます。 /backup/ ディレクトリに esxi_backup.sh ファイルを作成します。
vim /backup/esxi_backup.sh
2. ファイルに次のように行を追加します:
#!/bin/bash
ESXI101_208_BACKUP_NAME=”192-168-101-208-$(date +’%Y%m%d_%H%M%S’)esxi-cfg.tgz”
vicfg-cfgbackup -server 192.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX168.101.208 -config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME
3. ファイルに変更を書き込み、テキスト エディター vim を終了します。
:wq
4.ファイルを実行可能にする:
chmod +x /backup/esxi_backup.sh
5.ファイルを終了する:
5. スケジューラ構成を編集します:
crontab -e
6. 次のような行を追加します:
50 06 * * /backup/esxi_backup.sh
午前 06:50 に ESXi 構成バックアップスクリプトを実行するように crontab を設定しましょう。 行頭に#文字を追加して、前に追加したスケジュール タスクを無効にします。
7. 設定した時間まで待って、ESXi 構成バックアップ アーカイブが作成されたかどうかを確認します。
これは自動化のアイデアを実証するシンプルなスクリプトです。 複数のESXiホストをバックアップするための複雑なスクリプトを作成することができます。
注意:各ESXi再起動または30分のアイドル時間の後、ESXiセッションは認証されない状態になります。 ESXi の自動バックアップのスクリプトを作成する場合は、この機能に留意してください。
vSphere CLI で ESXi 構成を復元する方法
vSphere CLI を使用して ESXi 構成を復元する要件は、他の方法の要件と類似しています。 ESXiの設定を復元するためには、SSHによるリモートアクセスが有効になっていることと、ESXiサーバのIPアドレスがわかっていること(バックアップしたESXiホストのIPアドレスと同じものを使用することを推奨)を確認し、次のようなコマンドを実行します。
vicfg-cfgbackup -server=ESXi_host_IP_address -username=root -l backup_file
この例では、コマンドは次のとおりです:
vicfg-cfgbackup -server=192.XXX.XXX.XXX.XXX.XXX.XXX.168.101.208 -username=root -l /backup/192-168-101-208-esxi-cfg.tgz
構成を復元するターゲット ESXi ホストの UUID が、バックアップされた ESXi サーバーの UUID (UUID は tgz バックアップ アーカイブ内の Manifest.txt ファイルで定義) と異なる場合、-f キー (force) で UUID を上書きすることが可能です。
思い出したように、コマンドで実行中の ESXi ホストの UUID を確認できます:
esxcfg-info -u
Using Power CLI to Backup ESXi Host
Windowsが好きなユーザーは、PowerShellコマンドレットのセットであるPowerCLIを使って ESXi構成をバックアップすることが可能です。 このブログ記事で、いくつかの基本的なPowerCLIコマンドを説明します。 まず、お使いのOSにPowerCLIをインストールする必要があります。 アルゴリズムは以下の通りです:
1. Windows で PowerCLI を管理者として実行します。
2. ESXi サーバに接続します。
Connect-VIServer ESXi_IP_address -user user_name -password your_password
この例では、コマンドを使用します:
Connect-VIServer 192.IP_address。168.101.208 -user root -password TestPass_555
Get-VMHostFirmware -vmhost 192.168.101.208 -user root -password testPass_555
このコマンドを使用します。208 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
ESXi ホストが vCenter Server によって管理されている場合、各ホストの構成をバックアップする前に毎回認証する必要がなく、最初に vCenter に接続してから PowerCLI でホスト上の ESXi の構成をバックアップすることが可能です。
Connect-VIServer 10.10.10.16
vCenter Server にアクセスするための管理者ログイン名とパスワードを入力します。 このためのポップアップウィンドウが表示されます。
Backup ESXi configuration of each host:
Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
Get-VMHostFirmware -vmhost 10.10.10.16
各ホストの構成をバックアップします。10.10.46 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
PowerCLI で ESXi の設定を復元する方法
管理者として VMware PowerCLI を実行します。 構成を復元したい ESXi ホストに接続します(この例では、IP アドレスが 192.168.101.208 である ESXi ホストの構成を復元します)。
Set-VMHost -VMHost 192.168.101.208 -State Maintenance
ESXi構成を回復する前に、そのESXiホストに存在するVMがパワーオフまたは別のESXiホストに移行されていることを確認します。 構成を復元するコマンドを実行すると、ESXiホストが自動的に再起動することに注意してください。 Set-VMHostFirmware restore コマンドを使用して構成を復元します:
Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath “C:\backup ESXi host
<6996>8.SourcePath “を指定します。tgz” -HostUser root -HostPassword TestPass_555
構成を復元する ESXi ホストのバージョン、ビルド番号、UUID は、構成の復元に使用するバックアップの ESXi ホストのバージョン、ビルド番号、UUID と一致する必要があります。 UUID チェックをスキップするには、コマンドで -force キーを使用します。
Manual Backup and Restore of ESXi Configuration
ESXi ホストにログインできない状況、または ESXi ホストが起動できない状況で、コマンド ライン インターフェイスを使って ESXi 構成をバックアップまたは復元するコマンドを実行できない場合にも備えておく必要があります。 これは、ハードウェアの障害やソフトウェアの問題で発生する可能性があります。 この場合、ESXi 構成を手動でバックアップおよび復元する方法を知っておくとよいでしょう。
注意: ESXi ホストのデフォルトの crontab 構成を思い出すと、/sbin/auto-backup.sh スクリプトが 1 時間ごとに、および ESXi ホストが再起動または停止したときに実行されることがわかると思います。 このスクリプトは、メモリに保存された ESXi 構成を /bootbank/state.tgz ファイルにバックアップ (保存) するためのものです。
ESXi サーバが動作している場合、ESXi 構成はコンピュータの RAM に保存されます (/etc/ ディレクトリに適切な RAM ディスクがマウントされている)。 ESXi が起動するとき、システムファイルは /bootbank/state.tgz アーカイブから /etc/ ディレクトリに展開されます。 ESXiホストが動作している場合、WinSCPなどのSCPクライアントを使用して、/bootbank/state.tgzファイルを手動でコピーできます(リモートSSHアクセスが有効である必要があります)。 代替案として、ESXi ホストが起動できない場合 (ハードウェア障害など)、Live DVD から起動して state.tgz ファイルを手動でコピーできます。
手動復旧ワークフロー
1.手動で復旧を行うには、次の手順に従います。 ESXiシェル、vSphere CLIまたはPowerCLIで以前作成したバックアップアーカイブを準備します。 当該ファイル名は、ここではconfigBundle-192-168-101-208.tgzとします。 このファイルを USB フラッシュドライブなどにコピーし、システム構成の復旧を行う ESXi サーバの USB ポートに挿入します。
2. ESXi がインストールされているマシンでライブ CD/DVD から起動します。 UbuntuのインストールディスクをライブCD/DVDとして使用できます。
3. Linuxのコンソール(端末)を開く
4. パーティションをリストアップします。
ls -al /dev/sd*
fdisk -l | grep /dev/sda
今回はMicrosoft basic dataとしてマークされている /dev/sda5/ パーティションが必要です。
ESXi ディスク パーティションについては、USB フラッシュ ドライブからの ESXi の起動と ESXi パスワード回復に関するブログ記事で触れています。
今回は /dev/sda5 パーティションに関心があります。 dev/sda5 パーティションをマウントするディレクトリを作成します:
mkdir /mnt/sda5
6. ディスクパーティションをそのディレクトリにマウントします:
mount /dev/sda5 /mnt/sda5
7. /mnt/sda5 ディレクトリには、 ESXi 構成が入った state.tgz ファイルを見つけることができます。 このディレクトリ(state.tgzが格納されている)は、ESXiホストが起動されると/bootblank/と呼ばれます。
8.このディレクトリは、ESXiホストが起動されると/bootblank/と呼ばれます。 ESXiの設定バックアップアーカイブをUSBフラッシュドライブからLive DVDから読み込んだUbuntuの/tmp/ディレクトリにコピーします。 この例では、次のようにコピーします。
cp /media/Ubuntu/Ubuntu 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz
9.Ubuntuの/mediaディレクトリにESXi構成のバックアップアーカイブをコピーします。 バックアップアーカイブからファイルを展開します:
tar zxvf /tmp/configBundle.tgz
10.バックアップアーカイブからファイルを展開します。 アーカイブからstate.tgzファイルが抽出されていることがわかります。
ls -al /tmp/
11.state.tgzファイルが抽出されていることがわかります。 mnt/sda5/
にマウントされた /dev/sda5 パーティションにあるオリジナルの state.tgz ファイルをリネームします。
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
12.このファイルは、/mnt/sda5/state.tgz にマウントされています。 ESXi設定バックアップアーカイブ(configBundle.tgz)から展開したstate.tgzファイルを/tmp/ディレクトリにコピーします
cp /tmp/state.tgz /mnt/sda5/
13. マウントされているパーティションをアンマウントします
umount /dev/sda5/
14. サーバーを再起動します。 Ubuntu Live DVDを取り出し、ESXiがインストールされているディスクから起動します。
init 6
15. これでESXiの設定が復元されたはずです。
まとめ
本日のブログでは、ESXiの設定をバックアップ、復元するための4つの方法を紹介しました。 ESXiのコマンドラインインターフェイスを使うのは、追加のソフトウェアをインストールする必要がないので良いですね。vSphere CLIの利点は、Linuxマシンを使ってリモートでコマンドを実行できることと、バックアップのESXi設定を自動化できることです。WindowsユーザにはPowerCLIが喜ばれるかもしれませんね。 ESXiホストが健全でなく、ホストを起動できない場合は、手動で設定をバックアップ、リストアする方法もあります。 ブートブランク情報やVMに関する情報は、ESXi構成のバックアップファイルには保存されないことに注意してください。 ESXi 構成を復元した後、仮想マシンをインベントリに登録する必要があるかもしれません。
ESXi ホストのバックアップ方法はわかりましたが、仮想マシンのバックアップも忘れないようにしましょう。 NAKIVO Backup & Replicationは、VMware VM、Hyper-V VM、Amazon EC2インスタンスだけでなく、LinuxやWindowsの物理サーバもバックアップできるユニバーサルバックアップソリューションです。 全機能の無料トライアルをダウンロードして、あなたの環境でのバックアップの信頼性をご確認ください。
コメントを残す