ESXiホスト構成のバックアップ方法4つ

仮想化は、データ保護、業務の継続性、可用性の基盤であるバックアップとリカバリー操作にいくつかの利点を提供します。最も重要なのは、仮想化がエージェントレスおよびイメージベースのホストレベルのバックアップを可能にすることです。この種のバックアップでは、VM構成およびVMデータを含む、完全なVMをキャプチャすることができます。

ただし、ホストも保護することが重要です。健全なESXiホストは、VMが正常に動作するために重要です。ESXi構成もバックアップすることをお勧めします。有効なホストバックアップを使用すると、ESXiサーバーをゼロから設定する必要なく、数分でホスト構成を復元できます。ESXiホストバックアップの異なる方法を学ぶには、以下をご覧ください。

方法1:ESXiコマンドラインを使用してESXiホストをバックアップする

ESXiコマンドラインを使用することは、ESXiホスト構成をバックアップするための最も手頃な方法です。ESXiコマンドラインを使用するには、追加のソフトウェアをインストールする必要はありません。ESXiシェルとリモートSSHアクセスをESXiホストに有効にするだけです。ESXiシェルとリモートSSHアクセスをESXiホストに有効にします。SSH経由でESXiホストに接続したら、コマンドを実行できます。

ESXi構成は、/bootblank/state.tgzファイルに1時間ごとに自動的に保存されます。そのため、現在のESXi構成がESXi構成ファイルに書き込まれるようにし、最後の自動保存以降にESXi構成で行われたすべての変更が保存されることを確認する必要があります。そのためには、次の手順を実行します。ESXi構成を永続的なストレージと同期させてチェックします:
vim-cmd hostsvc/firmware/sync_config

  1. ESXiの設定を永続ストレージと確認し、同期します:

    vim-cmd hostsvc/firmware/sync_config

  2. 同期が完了したらESXiの設定をバックアップします:

    vim-cmd hostsvc/firmware/backup_config

    その結果、ESXiホストからconfigBundle.tgzアーカイブのダウンロードリンクを受け取ります。

    http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz

  3. ESXiホストのIPアドレスでアスタリスク(*)を置き換えてください。 ESXi構成バックアップを含むアーカイブファイルは、一時的に(数分間)/scratch/downloadsディレクトリに保存されます。

    ESXiホストのIPアドレスは、ESXiダイレクトコンソールインターフェースまたは次のコマンドを使用してコマンドラインで見つけることができます:

    esxcliネットワークipインターフェイスipv4 get

    現在の例で使用されているESXiホストのIPアドレスは、192.168.101.208

  4. ESXiバックアップアーカイブをできるだけ早くダウンロードし、安全な場所に保存してください。

ESXiコマンドラインでESXi構成バックアップを自動化する方法

コマンドラインインターフェイスの利点は、自動化の能力であり、ESXi構成のバックアップも例外ではありません。これを行う手順を見ていきましょう:

  1. ESXiデータストアにバックアップファイルを保存するディレクトリを作成します。

    mkdir /vmfs/volumes/datastore1/ESXi_backup

  2. 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 {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +'%Y%m%d_%H%M%S').tgz \;

  4. ファイルを保存して終了してくださいvi:

    :wq

    注意:より便利にするために、バックアップファイル名にESXiホスト名またはIPアドレスを含めることもできます。これにより、複数のESXiホストでの混乱を避けることができます。

  5. スクリプトを実行可能にします:

    chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  6. スクリプトが配置されているディレクトリに移動します:

    cd /vmfs/volumes/datastore1/ESXi_backup/

  7. スクリプトを実行します:

    ./esxi_backup.sh

  8. バックアップファイルが作成されたことを確認します:

    ls -al

  9. ESXi構成バックアップスクリプトがスケジュール(自動的に)で実行されていることを確認します。この目的でスケジューラの設定を編集します:

    vi /var/spool/cron/crontabs/root

  10. 毎日02:10にESXi構成バックアップを実行するために、次の文字列を追加します:

    10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh

  11. ファイルの変更を保存するには、次のように入力します:

    :wq!

    代替手段として、ファイルのアクセス権を変更してからファイルを編集することもできます:

    chmod +w /var/spool/cron/crontabs/root

設定を完了すると、ESXiの構成が毎晩02:10 AMに自動的にバックアップされ、名前がESXi_config_bakup_date_time.tgzのファイルに保存されます。

ESXiコマンドラインでESXi構成を復元する方法

復元するESXi構成と同じバージョンおよびビルド番号のESXiを、ESXi構成を復元したいマシンにインストールしておく必要があります。このルールは、このブログ記事で考慮されているすべてのESXi構成の復元方法に対して真実です。

ESXi構成をゼロからインストールしたESXiホストに復元する場合(新しくインストールした場合)、ESXi管理ネットワークに使用されるネットワークインターフェイスのIPアドレスを設定し、SSHアクセスを有効にする必要があります。

UUIDは、バックアップされたESXiサーバーと構成を復元するESXiサーバーの両方で同じでなければなりません。UUID値が異なる場合の手順は、次のセクションで説明されています。

ESXi構成を復元する手順:

  1. バックアップからESXi構成を復元するために新しくインストールされたESXiホストを準備したら、SSHを介してESXiホストに接続し、ホストをメンテナンスモードに入れます(このモードではVMが停止します)。

    esxcli system maintenanceMode set --enable yes

    または

    vim-cmd hostsvc/maintenance_mode_enter

  2. ESXi構成バックアップを含むアーカイブを、SCPクライアント(WinSCPなど)を使用してESXiホストのディレクトリにコピーします。例えば、configBundle-xxxx.tgzアーカイブをローカルマシンから宛先ESXiサーバーの/tmp/ディレクトリにコピーします。
  3. configBundle-xxxx.tgz ファイルを configBundle.tgz に名前を変更してから、ESXi 構成を復元するコマンドを入力してください。そうしないと、エラーメッセージ「/tmp/configBundle.tgz ファイルが見つかりません」が表示されます。

    ESXi シェルで、SSH で接続したものにファイル名を変更できます:

    mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz

  4. ESXi 構成を復元します:

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

    このコマンドを実行すると ESXi ホストが自動的に再起動されます。

  5. ESXi サーバーを再起動した後、メンテナンスモードから退出し、その後、通常どおりホストを使用できます。

    esxcli system maintenanceMode set --enable no

    または

    vim-cmd hostsvc/maintenance_mode_exit

ESXi構成のUUIDを変更する方法

ESXiサーバーのUUIDを確認する方法は2つあります:

  1. ESXiコマンドラインインターフェースで:

    esxcfg-info -u

  2. 前述のコマンドで説明したコマンドで作成したconfigBundle.tgzバックアップアーカイブ内のManifest.txtファイル。

ESXiサーバーのUUIDを変更することはできませんが、識別子はハードウェアに依存して生成されるため、Manifest.txtファイル内のUUIDを変更して、別の物理サーバーにバックアップされたESXi構成を復元できます。configBundle.tgz ESXi構成のバックアップアーカイブ。

これで、バックアップされた構成を別の物理サーバーに適用するためのUUIDの変更方法を見ていきましょう。サーバーAは、構成がバックアップされたサーバーであり、サーバーBは、構成が適用されるサーバーです。

ステージ1

バックアップされた構成を適用するESXiホストのUUID(サーバーB)を確認します。これは少なくとも2つの方法で行うことができますが、2つ目の方法ではESXiのバージョンも確認できます:

  1. esxcfg-info -u
  2. ESXiサーバーBの構成をバックアップします:

    vim-cmd hostsvc/firmware/sync_config

    vim-cmd hostsvc/firmware/backup_config

  3. バックアップアーカイブを一時ディレクトリにコピーし、そのディレクトリに移動します:

    cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp

    cd /tmp/

  4. アーカイブからファイルを抽出します:

    tar zxvf configBundle.tgz

  5. Manifest.txtファイルをviで開き、UUIDの値を確認します(UUIDが含まれる別の行が表示されます)。UUIDを書き留めてください。

    vi Manifest.txt

    今回の場合、UUIDは1E9E4D56-B724-DFBE-D19D-4C2D827E0188です。

  6. 一時ファイルを/tmp/ディレクトリから削除できます:

    rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz

ステージ2

  1. ESXiサーバーAのconfigBundle.tgz設定バックアップアーカイブをサーバーBにコピーし、例えば/tmp/ディレクトリに移動します。
  2. configBundle.tgzアーカイブからファイルを抽出します:

    tar zxvf configBundle.tgz

  3. Manifest.txtファイルをviで開き、Server AのUUID値をServer BのUUID値に更新します:

    vi Manifest.txt

    今回の場合、9EA94D56-7E39-96A8-AB45-DF31EF0971ECを1E9E4D56-B724-DFBE-D19D-4C2D827E0188に変更します。

    ファイルを保存してテキストエディタを終了します:

    :wq

  4. ソースのconfigBundle.tgzファイルの名前を変更してconfigBundle1.tgzにします(ESXi構成バックアップファイルの名前がconfigBundle.tgzと異なる場合、この手順をスキップできます):

    mv configBundle.tgz configBundle1.tgz

  5. Manifest.txtstate.tgz、およびjumpstrt.gzファイルを新しいconfigBundle.tgzアーカイブに含めます:

    tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz

  6. ESXiホストをメンテナンスモードに設定して、構成を復元します:

    esxcli system maintenanceMode set --enable yes

    vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz

方法2:vSphere CLIを使用したESXiホストのバックアップ方法

VMwareが提供するESXiホストを管理するための別のコマンドラインインターフェースはvSphere CLIです(VMware PowerCLIとは異なります)。ESXiホストをリモートで管理するには、LinuxまたはWindowsを実行しているマシンにvSphere CLIをインストールする必要があります。PerlがvSphere CLIをインストールするために必要です。

vSphere CLIを使用する利点は、Linuxでのbashの利便性とパワーです。この方法は特にESXi 6.xに適しています。ESXi 8を使用している場合は、この記事で説明されている他の方法を選択してください。

vCLIのインストールと構成

  1. お使いのオペレーティングシステム用のvSphere CLIの必要なバージョンをVMwareのウェブサイトからダウンロードしてください。この例ではUbuntu Linuxが使用されています。
  2. ダウンロードしたファイルがあるディレクトリに移動し、アーカイブからファイルを抽出してください:

    tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz

  3. 必要なパッケージをインストールしてください:

    apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential

    公式の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

  4. 抽出したファイルがあるディレクトリに移動し、インストーラを実行してください:

    ./vmware-install.pl

  5. ライセンス契約書を読み、同意します。インストーラーが必要なモジュールのインストールを要求する場合は、yと入力してモジュールをインストールしてください。

  6. いくつかのモジュールは手動でインストールする必要があります。Perlの対話型シェルを使用してインストールできます。

    Perlの対話型シェルに入力してください:

    perl -MCPAN -e shell

  7. 必要なPerlモジュールをインストールするためのコマンドを実行してください:

    install Devel::StackTrace

    同様に、他のモジュールもインストールしてください。

    注意私たちの場合、1つのモジュールがPerlの対話型シェルでインストールできませんでしたが、Ubuntuコンソールで次のコマンドを使用してそのモジュールをインストールできます:

    apt-get install libcrypt-ssleay-perl

  8. Perlモジュールをインストールした後、VMware vSphere CLIインストーラーを再実行してください。
  9. インストールが正常に完了し、この場合には以下のスクリーンが表示されます:

  10. さて、vSphere CLIを使用してESXiサーバーのデバイスリストを表示するために、Linuxコンソールに次のコマンドを入力してみましょう(192.168.101.208はESXiサーバーのIPアドレスです)。

    esxcli --server 192.168.101.208 storage core device list

  11. サーバーの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

    ユーザー名とパスワードは、対話型モードでコンソールにプロンプトされます。

    このようにユーザー名とパスワードが平文で入力されるコマンドは使用しないでください:

    esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get

    注意:これはセキュリティ上の理由です。実行されたコマンドはLinuxに保存され、history -cコマンドを実行して履歴をクリアするまで保持されます。対話型モードを使用せずにログインとパスワードを手動で入力する必要がある場合は、ESXiセッションをファイルに保存し、コマンドを実行する際にこのファイルを使用できます。セッションの保存は、コマンドに平文のパスワードを入力するのとは異なり、安全です。セッションの保存方法については以下で説明します。

ESXiホストに接続するためのサムプリントの保存

コマンドを実行する際に毎回ESXiサムプリントを入力するのは便利ではありません。幸いなことに、サムプリントを保存し、vSphere CLIを使用してサムプリントを定義せずにさらにコマンドを実行することができます。

  1. 以下のディレクトリに移動します:

    cd /usr/lib/vmware-vcli/apps/general/

  2. /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s サーバー -t サムプリント

    特定の例では、コマンドは次のようになります:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.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

  3. これで、vSphere CLIで毎回サムプリントを入力せずにコマンドを実行できます:

    esxcli --server 192.168.101.208 system maintenanceMode get

ただし、ユーザー名とパスワードは引き続き入力する必要があります。ただし、以下のセクションに示すように、vSphere CLIをパスワードを入力せずに実行するように構成できます。

ESXiホストに接続するためのセッションファイルを使用

vSphere CLIを使用してリモートESXiホストでコマンドを実行する際にユーザー名とパスワードを入力しない方法の1つは、セッションファイルを使用することです。

  1. ESXi構成バックアップファイルを保存するディレクトリを作成します。例:/backup/

    mkdir /backup

  2. そのディレクトリに移動します:

    cd /usr/lib/vmware-vcli/apps/session

  3. Perlスクリプトを使用して、認証済みのESXiホストセッションをファイルに保存します。次のコマンドを使用します:

    perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555

    次のようになります:

    savesessionfile /backup/192-168-101-208session は、作成されたセッションファイルの名前です

    server 192.168.101.208 は、セッションが保存されるESXiホストの名前です(このESXiホストは複数の例で使用されます)

    username root は、ESXiホストに接続しているユーザーの名前です

    password TestPass_555 は、ESXiホストに接続しているユーザーのパスワードです

これでパスワードを入力せずにコマンドを実行できますが、sessionfileキー(オプション)を入力し、セッションファイルへのパスを定義する必要があります。

例:

esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get

ESXiホストへの接続に構成ファイルを使用する

この方法のアイデアは、クレデンシャルをプレーンテキストとして構成ファイルに保存し、vSphere CLIでESXiコマンドを実行する際にこのファイルを参照することです。

  1. 構成ファイルを作成します:

    vim /backup/vcli-config

  2. 以下にクレデンシャルを入力します:

    VI_USERNAME=root

    VI_PASSWORD=TestPass_555

  3. ファイルを保存します。
  4. esxcli --server 192.168.101.208 --config vcli-config システムメンテナンスモード get

注:資格情報が平文で保存されているため、この方法は安全ではありません。

ESXi ホストに接続するための資格情報ストアを使用

A credential store is the xml file located in the user directory in the vmware subdirectory ~/.vmware/credstore/vicredentials.xml. The advantage of using the credentials store to run commands on remote ESXi hosts is that the password is not saved as plain text. As a result, this method provides higher security.

  1. 資格情報を資格情報ストアに追加するには、次のコマンドを実行してください:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root

  2. 必要な資格情報が存在することを確認するために、資格情報ストアに保存された資格情報をリストアップします:

    /usr/lib/vmware-vcli/apps/general/credstore_admin.pl list

  3. リモートESXiホストでパスワードを入力せずに、資格情報ストアを使用してコマンドを実行します:

    # esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get

    非rootユーザーを使用する場合、資格情報ファイルは/home/user_name/.vmware/credstore/vicredentials.xmlに保存されます。

スクリーンショットで資格情報が資格情報ストアファイルに保存されている様子を確認できます。

ESXiホスト構成のバックアップにvSphere CLIを使用する

Ubuntu LinuxマシンでvSphere CLIを設定したので、コマンドを実行してESXi構成のバックアップを作成できます:

  1. /usr/bin/ディレクトリに移動します:

    cd /usr/bin

    • ユーザー名とパスワードが資格情報ストアに保存されている場合は、次のコマンドを使用してバックアップを作成します:
    • vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz

  2. または、セッションをセッションファイルに保存した後、次のコマンドを使用してバックアップを作成します:
  3. vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz

    注: vicfg- コマンドは非推奨です。vicfg が機能しない場合は、最新バージョンの ESXi ホストで作業する際に、コマンドラインインターフェースで ESXCLI の同等コマンドを使用してください。他の ESXi 構成バックアップ方法のコマンドを参照してください。

    –sessionfile オプションを使用する場合の欠点は、vSphere CLI で最後のコマンドを実行した後のアイドル状態のタイムアウトが 30 分であることです。その後、再度認証してセッションファイルを作成する必要があります。

  4. インタラクティブモードでパスワードを入力しながら ESXi 構成のバックアップを作成したい場合は、次のコマンドを実行できます:
  5. vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz

ESXi構成のバックアップを自動化する方法

環境が動的に変化し、ESXiホストの構成が頻繁に変更される場合、ESXiホストの手動バックアップは実用的ではありません。この場合、バックアップコマンドまたは複数のコマンドを含むバックアップスクリプトをスケジューラーに追加することで、ESXi構成のバックアップを自動化できます。CrontabはLinuxのスケジューラーです。

  1. Linuxのスケジューラー設定を編集して、ESXi構成バックアップコマンドを定期的かつ自動的に実行するようにします。

    crontab -e

    注意 crontabの設定を編集するのが初めての場合は、crontabの設定を編集するために使用するデフォルトのテキストエディタを選択する必要があります。この例では、/usr/bin/vim.basicを使用します。

    crontabの設定の形式は次のとおりです:

    分 時 日 月 曜日 コマンド 

  2. 毎夜03:25にESXiホスト構成をバックアップするために、以下の行をcrontabの設定に追加します:

    25 03 * * * /usr/bin/vicfg-cfgbackup server 192.168.101.208 config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz

  3. この例で使用されるcrontabスケジューラの構成を書き、テキストエディタvimを終了します:

    :wq

  4. ESXiバックアップ構成ファイルを保存するディレクトリを確認するために03:25 AM以降まで待ちます:

    ls -al

    以下のスクリーンショットで確認できるように、ESXiホスト構成のバックアップファイルが03:25に自動的に作成されました。

今、ESXiの設定バックアップが自動的に作成されましたが、これは素晴らしいことですが、欠点もあります。 crontabがスケジュールされたコマンドを実行してESXiの設定バックアップを作成するたびに、前のtgzファイルは新しいtgzファイルに上書きされます。前々日に正しいESXiの設定を作成したバックアップが、翌日に不正なESXiの設定を含むファイルに上書きされると問題が発生する可能性があります。この問題を防ぐために、ESXiの設定を異なるファイルにバックアップする必要があります。

これを防ぐために、各回ESXiの設定を個別のファイルとして保存する簡単なスクリプトを作成しましょう。ファイル名には、ファイルの作成日時を含む一意のファイル名を使用します。スクリプトを作成すると、単一のスクリプトを実行して複数のESXiホストのバックアップを追加するコマンドを追加できます。

  1. /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.168.101.208 config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME

  3. ファイルを編集してテキストエディタ vim を終了します:

    :wq

  4. ファイルを実行可能にします:

    chmod +x /backup/esxi_backup.sh

  5. スケジューラの設定を編集します:

    crontab -e

  6. 次のように行を追加します:

    50 06 * * * /backup/esxi_backup.sh

    この設定行により、cron を 06:50 AM に ESXi 構成バックアップスクリプトを実行するように設定できます。

    以前追加したスケジュールされたタスクを無効にするには、行の先頭に # 文字を追加します。

    設定を保存します。

  7. 待機時間が経過した後、ESXi構成バックアップアーカイブが作成されたかどうかを確認してください。

これは自動化のアイデアを示す単純なスクリプトです。複数のESXiホストのバックアップを行うための複雑なスクリプトを作成できます。

注意:各ESXi再起動または30分間のアイドル時間後、ESXiセッションの認証が切れます。自動化されたESXiバックアップのスクリプトを作成する際に、この機能を考慮してください。

vSphere CLIでESXi構成を回復する方法

vSphere CLIを使用してESXi構成を復元するための要件は、他の方法と類似しています。ESXi構成を復元するには、SSH経由のリモートアクセスが有効になっていること、およびESXiサーバーのIPアドレスがわかっていることを確認してください(バックアップされたESXiホストのIPアドレスと同じIPアドレスを使用することが推奨されます)。

ESXi構成を復元するには、次のようなコマンドを実行します:

vicfg-cfgbackup --server=ESXiホストのIPアドレス --username=root -l バックアップファイル

この具体的な例では、コマンドは次のようになります:

vicfg-cfgbackup --server=192.168.101.208 --username=root -l /backup/192-168-101-208-esxi-cfg.tgz

ターゲットのESXiホストのUUIDが、バックアップされたESXiサーバーのUUID(Manifest.txtファイル内のtgzバックアップアーカイブで定義されている)と異なる場合、-fキー(force)を使用してUUIDをオーバーライドすることができます。

実行中のESXiホストのUUIDは、以下のコマンドで確認できます:

esxcfg-info -u

注意:ESXi 7.0 U2から、ESXiホストにTPM(Trusted Platform Module)が使用されている場合、UUIDの強制オーバーライドは機能しません。

方法3:PowerCLIを使用してESXiホストのバックアップを作成する

Windows PowerShellが好きなユーザーは、vSphere管理のためのPowerCLIを使用してESXiの設定をバックアップできます。PowerCLIはPowerShellのコマンドレットのセットであり、基本的なPowerCLIコマンドについてはこのブログ投稿で説明されています。

PowerCLIを使用してESXiホストのバックアップを作成するには、まずPowerCLIをインストールする必要があります:

  1. Windowsで管理者としてPowerCLIを実行します。
  2. ESXiサーバーに接続します:

    Connect-VIServer ESXi_IP_address -user user_name -password your_password

    私たちの場合、次のコマンドを使用します:

    Connect-VIServer 192.168.101.208 -user root -password TestPass_555

    Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    • ESXiホストがvCenter Serverによって管理されている場合、PowerCLIで各ホストの構成をバックアップする前に毎回認証する必要なしに、まずvCenterに接続してからバックアップできます:
    • Connect-VIServer 10.10.10.16

      vCenter Serverにアクセスするための管理者ログインとパスワードを入力してください。このためにポップアップウィンドウが表示されます。

  3. 各ホストの ESXi 構成をバックアップします:

    Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

    Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:\backup ESXi host"

ESXi構成をPowerCLIで復元する方法

  1. 管理者としてVMware PowerCLIを実行します。
  2. 構成を復元したいESXiホストに接続します(この例では、IPアドレスが192.168.101.208のESXiホストの構成を復元します)。
  3. ESXiホストをメンテナンスモードにします:

    Set-VMHost -VMHost 192.168.101.208 -State Maintenance

  4. そのESXiホストに存在するVMが電源オフになっているか、別のESXiホストに移行されていることを確認してから、ESXi構成を復元します。構成を復元するコマンドを実行すると、ESXiホストが自動的に再起動されます。
  5. 構成をSet-VMHostFirmware restoreコマンドで復元します:

    Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:\backup ESXi host\configBundle-192.168.101.20

    8.tgz" -HostUser root -HostPassword TestPass_555

ESXiホストのバックアップを使用して構成を復元する場合、ESXiホストのバージョン、ビルド番号、およびUUIDが、構成を復元するために使用しているESXiホストのバージョン、ビルド番号、およびUUIDと一致する必要があります。コマンドでUUIDチェックをスキップするには、-forceキーを使用します。

方法4: ESXi構成の手動バックアップと復元

また、ESXiホストにログインできない場合や、ESXiホストが起動できず、コマンドラインインターフェイスを使用してESXi構成のバックアップまたは復元コマンドを実行できない場合に備えて準備しておく必要があります。これはハードウェアの故障やソフトウェアの問題による場合があります。この場合、ESXi構成を手動でバックアップおよび復元する方法を知っている方が良いでしょう。

ESXiホストのデフォルトcrontab構成からおぼえているように、/sbin/auto-backup.shスクリプトは毎時およびESXiホストが再起動またはシャットダウンされるたびに実行されます。このスクリプトは、メモリに保存されているESXi構成を/bootbank/state.tgzファイルにバックアップ(保存)することを意図しています。

注:この方法を使用するには、/bootbank/state.tgzファイルが暗号化されていてはいけません。

ESXiの設定は、ESXiサーバーが稼働しているときにコンピューターのRAMに保存されます(適切なRAMディスクが/etc/ディレクトリにマウントされます)。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パーティションに興味があります。

  5. /dev/sda5パーティションがマウントされるディレクトリを作成します:

    mkdir /mnt/sda5

  6. ディスクパーティションをそのディレクトリにマウントします:

    mount /dev/sda5 /mnt/sda5

  7. そのディレクトリで、/mnt/sda5 ESXi の構成が含まれているstate.tgzファイルを見つけることができます。このディレクトリ (に格納されているstate.tgz) は、ESXi ホストが起動したときに/bootblank/と呼ばれます。
  8. USB フラッシュドライブから Ubuntu Live DVD から読み込まれた Ubuntu の/tmp/ディレクトリに ESXi 構成バックアップアーカイブをコピーします。例では、次のようにコピーします。

    cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz

  9. バックアップアーカイブからファイルを抽出します。

    tar zxvf /tmp/configBundle.tgz

  10. state.tgzファイルがアーカイブから抽出されていることがわかります。

    ls -al /tmp/

  11. state.tgzファイルの元の名前を変更します。これは、/dev/sda5パーティションにあり、/mnt/sda5/にマウントされています。

    mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz

  12. state.tgzファイルをESXi構成バックアップアーカイブ(configBundle.tgz)から抽出した後、/tmp/ディレクトリにコピーしてください:

    cp /tmp/state.tgz /mnt/sda5/

  13. マウントされたパーティションをアンマウントしてください:

    umount /dev/sda5/

  14. サーバーを再起動してください。Ubuntu Live DVDを取り出し、ESXiがインストールされているディスクからブートしてください。

    init 6

これでESXiの構成が復元されるはずです。

結論

ESXiコマンドラインインターフェースを使用することは良いです。追加のソフトウェアのインストールは必要ありません。 vSphere CLIの利点は、Linuxマシンを使用してリモートでコマンドを実行できる能力と、ESXi構成バックアップを自動化できる能力です。一方、PowerCLIはWindowsユーザーにとって有用かもしれません。

ESXiホストが健康でない場合、およびホストを起動できない場合は、構成を手動でバックアップおよび復元できます。 ESXi構成バックアップファイルにはブートブランク情報やVMの情報が保存されていないことに注意してください。 ESXi構成を復元した後、仮想マシンをインベントリに登録する必要がある場合があります。

vSphere仮想マシンのバックアップのバックアップをバックアップすることをお勧めします。 NAKIVO Backup & Replicationは、VMware VM、Hyper-V VM、Amazon EC2インスタンス、および物理的なLinuxおよびWindowsサーバーをバックアップできる汎用のバックアップソリューションです。

Source:
https://www.nakivo.com/blog/back-up-and-restore-vmware-esxi-host-configuration-guide/