ESXiホスト設定のバックアップ:4つの方法

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

しかし、VMが正常に動作するためには健全なESXiホストが不可欠であるため、ホスト自体も保護することが重要です。実用的なホストバックアップがあれば、ESXiサーバーを一からセットアップし直すことなく、数分でホスト構成を復元できるため、ESXi構成のバックアップも行うことをお勧めします。ESXiホストのバックアップに関するさまざまな方法については、以下をお読みください。

ESXi構成をバックアップするには、主に4つの方法があります:

  • VMware ESXi のコマンドラインの使用
  • VMware vSphere CLI の使用
  • Microsoft PowerCLI の使用
  • 手動によるバックアップと復元

複数の方法を習得しておけば、さまざまな状況下でESXi環境のバックアップおよび復旧作業をより柔軟に行うことができます。

NAKIVO for VMware vSphere バックアップ

NAKIVO for VMware vSphere バックアップ

VMware vSphere 仮想マシンの包括的なデータ保護と即時復旧機能。オンプレミス、オフサイト、クラウド上の安全なバックアップ先。ランサムウェア対策機能。

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

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

ESXiの設定は1時間ごとに自動的に /bootblank/state.tgz ファイル。このため、前回の自動保存以降に行われたすべての変更が確実に保存されるよう、現在のESXi設定を直ちにESXi設定ファイルに書き込む必要があります。その手順は次のとおりです:

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

    vim-cmd hostsvc/firmware/sync_config

  2. 同期が完了したら、ESXiの設定をバックアップしてください:

    vim-cmd hostsvc/firmware/backup_config

    How to back up ESXi host configuration in ESXi command line

    その結果、ダウンロード用のリンクが送られてきます。 設定バンドル.tgz ESXiホストからのアーカイブ。

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

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

    The ESXi configuration backup bundle is available for downloading

    ESXiホストのIPアドレスは、ESXiのダイレクトコンソール画面、またはコマンドラインで次のコマンドを実行して確認できます:

    esxcli network ip interface ipv4 get

    この例で使用しているESXiホストのIPアドレスは 192.168.101.208

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

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

コマンドラインインターフェースの利点は自動化が可能である点にあり、ESXiの設定のバックアップも例外ではありません。その手順を見ていきましょう:

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

    Creating a simple backup script to back up ESXi host configuration

  4. ファイルを保存して終了する vi:

    :wq

    NOTE: 利便性を高めるため、バックアップファイル名に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

    An ESXi configuration backup file is created

  9. ESXiの設定バックアップスクリプトがスケジュール通りに(自動的に)実行されていることを確認してください。そのためには、スケジューラーの設定を編集してください:

    vi /var/spool/cron/crontabs/root

  10. 毎日午前2時10分にESXiの設定バックアップを実行するには、次の文字列を追加してください:

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

  11. ファイルの変更を保存します。読み取り専用ファイルの変更を保存するには、次のように入力してください:

    :wq!

    別の方法として、ファイルを編集する前にファイルのアクセス権を変更することもできます:

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

    Scheduling the ESXi configuration backup process

設定が完了すると、ESXiの設定は毎晩午前2時10分に自動的に以下のファイル名でバックアップされます: ESXi_config_bakup_date_time.tgz

ESXi コマンドラインで ESXi の設定を復元する方法

ESXi構成を復元するマシンには、バックアップ元のESXiホストと同じバージョンおよびビルド番号のESXiがインストールされている必要があります。このルールは、本ブログ記事で取り上げるすべてのESXi構成復元方法に当てはまります。

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

バックアップ元のESXiサーバーと、設定を復元するESXiサーバーの両方で、UUIDが同一である必要があります。UUIDの値が異なる場合の対処手順については、次のセクションで説明します。

ESXiの設定を復元するには:

  1. 新しくインストールしたESXiホストでバックアップからESXiの設定を復元する準備が整ったら、SSH経由でESXiホストに接続し、ホストをメンテナンスモードに切り替えます(このモードではVMは停止されます)。

    esxcli system maintenanceMode set --enable yes

    または

    vim-cmd hostsvc/maintenance_mode_enter

  2. WinSCPなどのSCPクライアントを使用して、ESXi構成のバックアップが含まれるアーカイブをESXiホスト上のディレクトリにコピーします。それでは、 configBundle-xxxx.tgz ローカルマシンから /tmp/ 宛先のESXiサーバー上のディレクトリ。

    Copying the ESXi configuration backup archive to the destination ESXi host

  3. 名前を変更する configBundle-xxxx.tgz ファイルを configBundle.tgz ESXiの設定を復元するコマンドを入力する前に。そうしないと、次のエラーメッセージが表示されます: “ファイル /tmp/configBundle.tgz が見つかりませんでした“.

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

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

  4. ESXiの設定を復元します:

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

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

    How to restore ESXi configuration from a backup

  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. その Manifest.txt ファイル内の configBundle.tgz 上記の手順で作成したバックアップアーカイブ。

    The ESXi UUID is stored in the Manifest.txt file inside the configBundle.tgz file

ESXiサーバーのUUIDは、ハードウェアに基づいて生成されるため変更することはできません。ただし、でUUIDを変更した後、ESXiホストAのESXi構成をESXiホストBに復元することは可能です。 Manifest.txt ファイルは configBundle.tgz ESXi 構成のバックアップアーカイブ。

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

第1段階

バックアップした構成を適用するESXiホスト(サーバーB)のUUIDを確認してください。これには少なくとも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が記載された行が1つ表示されます)。そのUUIDをメモしておいてください:

    vi Manifest.txt

    今回のケースでは、UUIDは1E9E4D56-B724-DFBE-D19D-4C2D827E0188です

  6. 一時ファイルは、 /tmp/ ディレクトリ:

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

第2段階

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

    tar zxvf configBundle.tgz

  3. を開く Manifest.txt ~を含むファイル vi そして、サーバーAのUUID値をサーバーBのUUIDに更新します:

    vi Manifest.txt

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

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

    :wq

    Changing the UUID value in backup files of the ESXi host

  4. ソースの名前を変更してください configBundle.tgz ファイルを configBundle1.tgzたとえば(ESXi構成のバックアップファイル名が configBundle.tgz(この手順は省略可能です):

    mv configBundle.tgz configBundle1.tgz

  5. タール Manifest.txt, state.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ホストの管理用に提供するもう1つのコマンドラインインターフェースが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 そして、モジュールをインストールします。

    Installing modules for vSphere CLI

  6. 今回のケースでは、一部のモジュールは手動でインストールする必要があります。これらはPerlの対話型シェルを使用してインストールできます。

    Some modules must be installed manually

    Perlの対話型シェルに入ります:

    perl -MCPAN -e shell

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

    install Devel::StackTrace

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

    Manual installation of Perl modules to back up ESXi configuration

    NOTE: 今回のケースでは、対話型Perlシェルではあるモジュールをインストールできませんでしたが、Ubuntuのコンソールで次のコマンドを実行すれば、そのモジュールをインストールできます:

    apt-get install libcrypt-ssleay-perl

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

    The vSphere CLI installation has been completed successfully

  10. それでは、vSphere CLI を使って、Linux コンソールに次のコマンドを入力し、ESXi サーバーのデバイス一覧を表示してみましょう。

    esxcli --server 192.168.101.208 storage core device list

    ここで、192.168.101.208 は ESXi サーバーの IP アドレスです。

    Using vSphere CLI for managing an ESXi host

  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

    対話モードでは、コンソールにユーザー名とパスワードの入力を求められます。

    A username and password are needed to run the command on an ESXi server

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

    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

    NOTE: これはセキュリティ上の理由によるものです。実行されたコマンドは、 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 server -t thumbprint

    この例の場合、コマンドは次のとおりです:

    /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

    Saving a thumbprint for running commands in vSphere CLI

  3. これで、vSphere CLI でコマンドを実行する際に、毎回フィンガープリントを入力する必要がなくなりました:

    esxcli --server 192.168.101.208 system maintenanceMode get

    Entering a login and password to execute a command on an ESXi host remotely

ただし、ユーザー名とパスワードの入力は依然として必要です。以下のセクションで説明するように、vSphere CLI を設定することで、毎回パスワードを入力せずにコマンドを実行できるようになります。

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

vSphere CLI を使用してリモート ESXi ホストでコマンドを実行する際、保存済みのセッションファイルを使用すれば、ユーザー名やパスワードの入力の手間を省くことができます。

  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ホストに接続しているユーザーの名前です

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

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

例:

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

Running commands in vSphere CLI by using a session file

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

この方法の考え方は、認証情報を設定ファイルにプレーンテキストで保存し、vSphere CLIでESXiコマンドを実行する際にこのファイルを参照するというものです。

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

    vim /backup/vcli-config

  2. 以下の欄に認証情報を入力してください:

    VI_USERNAME=root

    VI_PASSWORD=TestPass_555

  3. ファイルを保存してください。
  4. vSphere CLI を使用して、リモート ESXi サーバーで次のコマンドを実行します:

    esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get

    Running commands in vSphere CLI by using a configuration file

NOTE: 認証情報はプレーンテキストで保存されるため、この方法は安全ではありません。

ESXiホストへの接続にクレデンシャルストアを使用する

資格情報ストアとは、ユーザーディレクトリ内にあるXMLファイルのことです。 VMware サブディレクトリ ~/.vmware/credstore/vicredentials.xml. リモートESXiホスト上でコマンドを実行する際に認証情報ストアを使用する利点は、パスワードが平文で保存されないことです。その結果、この方法ではより高いセキュリティが確保されます。

  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/ユーザー名/.vmware/credstore/vicredentials.xml

    Running commands in vSphere CLI without entering the credentials

    以下のスクリーンショットでは、認証情報が認証情報ストアファイルにどのように保存されているかを確認できます。

    ESXi credentials are saved in the credentials store

vSphere CLI を使用した ESXi ホスト構成のバックアップ

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

  1. [ここ](https://example.com)へ移動 /usr/bin/ ディレクトリ:

    cd /usr/bin

  2. ユーザー名やパスワードを入力せずにESXiの設定のバックアップを作成するには、以下のコマンドのいずれかを使用してください。
    • 認証情報ストアに保存されているユーザー名とパスワードについては、次のコマンドを使用してください:

      vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz

    • あるいは、セッションをセッションファイルに保存した後、次のコマンドを実行します:

      vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz

      Backup ESXi host configuration by using the session file for authentication

      NOTE: vicfg- これらのコマンドは非推奨です。もし vicfg がうまく動作しない場合は、 ESXCLI 最新バージョンのESXiホストを操作する際は、コマンドラインインターフェースで同等のコマンドを使用してください。その他のESXi構成バックアップ方法については、各コマンドを参照してください。

      この方法の欠点は、 セッションファイル このオプションは、vSphere CLIで最後のコマンドを実行してから30分間操作がない場合のタイムアウト時間を指定します。タイムアウト後は、再度認証を行い、セッションファイルを作成する必要があります。

    • 対話モードでパスワードを入力しながらESXiの設定のバックアップを作成したい場合は、次のコマンドを実行します:

      vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz

      Backing up ESXi configuration and entering a login and password in interactive mode

ESXiの設定バックアップを自動化する方法

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

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

    crontab -e

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

    crontabの設定形式は以下の通りです:

    minutes hours day_of_the_month month day_of_the_week command 

  2. crontabの設定に次の行を追加し、毎晩午前3時25分にESXiホストの設定をバックアップしましょう:

    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

    Automating ESXi config backup by using crontab

  4. ESXiのバックアップ設定ファイルを保存すべきディレクトリを確認するのは、午前3時25分を過ぎてからにしましょう:

    ls -al

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

    ESXi configuration backup is saved automatically

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

ESXi構成のバックアップファイル作成日時をファイル名に含めた一意のファイル名で、毎回個別のファイルとしてESXi構成を保存する簡単なスクリプトを作成しましょう。スクリプトを作成することで、1つのスクリプトを実行するだけで複数のESXiホストをバックアップするコマンドを追加できるようになります。

  1. 作成する esxi_backup.sh /backup/ ディレクトリ内のファイル:

    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

    この設定行により、ESXiの設定バックアップスクリプトを午前6時50分に実行するようにcrontabを設定できます。

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

    設定を保存してください。

    Cron configuration that creates ESXi config backup files with unique names

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

    ESXi configuration backup files have unique names

これは、自動化の概念を示す簡単なスクリプトです。複数のESXiホストをバックアップする複雑なスクリプトを作成することも可能です。

NOTE: ESXiが再起動するたびに、または30分間アイドル状態が続くと、ESXiセッションの認証は失効します。ESXiの自動バックアップ用スクリプトを作成する際は、この点に留意してください。

vSphere CLI で ESXi の設定を復元する方法

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

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

vicfg-cfgbackup --server=ESXi_host_IP_address --username=root -l backup_file

この例の場合、コマンドは次のとおりです:

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 キー(強制)を使用してUUIDを上書きする。

How to restore ESXi configuration from your backup

ご記憶の通り、次のコマンドで実行中のESXiホストのUUIDを確認できます:

esxcfg-info -u

NOTE: 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. PowerCLIを次のように実行します 管理者 Windowsで。
  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"

    How to take ESXi host backup with PowerCLI

    • ESXiホストがvCenter Serverによって管理されている場合、vCenterにまず接続し、その後PowerCLIを使用してホスト上のESXi構成をバックアップすることができます。これにより、各ホストの構成をバックアップするたびに認証を行う必要がなくなります:

      Connect-VIServer 10.10.10.16

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

      Connecting to the vCenter server in PowerCLI

  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"

    How to back up configuration of each ESXi host in PowerCLI

PowerCLI で ESXi の設定を復元する方法

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

    Set-VMHost -VMHost 192.168.101.208 -State Maintenance

  4. ESXi の構成を復元する前に、その ESXi ホスト上に存在する仮想マシンがすべてシャットダウンされているか、別の ESXi ホストに移行されていることを確認してください。構成を復元するコマンドを実行すると、ESXi ホストは自動的に再起動しますのでご注意ください。
  5. 設定を次のコマンドで復元します Set-VMHostFirmware restore コマンド:

    Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath "C:backup ESXi hostconfigBundle-192.168.101.20

    8.tgz" -HostUser root -HostPassword TestPass_555

    ESXi configuration is recovered in PowerCLI

設定を復元するESXiホストのバージョン、ビルド番号、およびUUIDは、設定の復元に使用するバックアップ元のESXiホストのバージョン、ビルド番号、およびUUIDと一致している必要があります。次の -force UUIDチェックをスキップするには、コマンドを入力してください。

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

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

既定の設定からご記憶の通り crontab ESXiホスト上の設定、 /sbin/auto-backup.sh このスクリプトは、1時間ごとに、およびESXiホストが再起動またはシャットダウンされるたびに実行されます。このスクリプトは、メモリに保存されているESXiの設定を /bootbank/state.tgz ファイル。

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

ESXiサーバーが実行されている間、ESXiの設定はコンピュータのRAMに保存されます(適切なRAMディスクが /etc/ ディレクトリ)。ESXiの起動時、システムファイルは /bootbank/state.tgz アーカイブへ /etc/ ディレクトリ。手動でコピーすることもできます。 /bootbank/state.tgz ESXiホストが稼働している場合は、WinSCPなどのSCPクライアントを使用してファイルをコピーしてください(リモートSSHアクセスが有効になっている必要があります)。あるいは、Live DVDから起動して、 state.tgz ESXiホストが起動できない場合(ハードウェア障害などによる場合)、手動でファイルを適用してください。

手動による復旧ワークフロー

  1. ESXiシェル、vSphere CLI、またはPowerCLIを使用して事前に作成したバックアップアーカイブを用意してください。ファイル名は configBundle-192-168-101-208.tgz 今回のケースでは、例えばファイルをUSBメモリにコピーし、システム構成の復元が必要なESXiサーバーのUSBポートにそのUSBメモリを接続します。
  2. ESXiがインストールされているマシンで、ライブCD/DVDから起動します。UbuntuのインストールディスクをライブCD/DVDとして使用できます。
  3. Linuxでコンソール(ターミナル)を開きます。
  4. パーティションの一覧を表示してください:

    ls -al /dev/sd*

    fdisk -l | grep /dev/sda

    この場合、必要なのは /dev/sda5/ “Microsoft 基本データ”としてマークされているパーティション。

    ESXiのディスクパーティションについては、以下のブログ記事で言及されていました USBフラッシュドライブからESXiを起動する そして ESXiのパスワード回復.

    Mounting the partition that contains the ESXi configuration archive

    私たちは、以下の点に関心を持っています。 /dev/sda5 この場合はパーティションです。

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

    mkdir /mnt/sda5

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

    mount /dev/sda5 /mnt/sda5

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

    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 構成のバックアップに関するベストプラクティス

ESXiホストのバックアップ作業を一般的なバックアップ戦略に組み込み、その戦略を効果的に機能させるには、ESXi構成のバックアップに関するベストプラクティスに従ってください。これらのプラクティスに従うことで、バックアップの一貫性と安全性を確保し、必要なときに確実に復元できるようになります。

定期的なバックアップスケジュール

ESXi 構成のバックアップを定期的に実行することは、ネットワーク構成、VM の登録、その他の設定などの変更が、バックアップに確実に反映されるようにするために重要です。ESXi 構成の最新のバックアップがあれば、最新の構成で ESXi ホストを復元でき、ダウンタイムを最小限に抑えることができます(直近の変更を手動で再設定する手間を省けるため)。

ESXi 構成のバックアップ頻度に関するベストプラクティスには、以下のものが含まれます:

  • ネットワーク設定の更新、仮想マシンの構成変更、データストアの構成変更など、大幅な変更を行った後は、ESXiの構成をバックアップしてください。
  • ESXiの設定を忘れずにバックアップできるよう、定期的なスケジュールを設定してください。環境におけるESXi設定の変更頻度に応じて、毎日、毎週、または毎月のスケジュールを設定してください。
  • ESXiのコマンドライン、PowerCLI、およびその他のサポートされているインターフェースでスケジュールされたスクリプトを使用して、バックアップを自動化します。
  • 異なる時期に作成したESXi構成のバックアップを複数バージョン保管しておいてください。この方法により、新しい構成に誤りがあった場合や、最新の構成が破損した場合でも、以前の正常な構成を復元することができます。

バックアップファイルの保護

ESXiのバックアップファイルを保護し、第三者、権限のないユーザー、または攻撃者がESXiの設定にアクセスできないようにしてください。これにより、セキュリティリスクを低減できるほか、バックアップが誤って削除されるリスクも最小限に抑えられます。

  • ディスクやクラウドに保存されたバックアップを保護するために、暗号化ツールを使用してください。ローカルバックアップにはAES-256暗号化を使用してください。
  • バックアップは、アクセスが制限された安全な場所(専用のバックアップサーバー、またはIAMポリシーが適用されたクラウドストレージなど)に保管してください。
  • アクセスを許可された担当者のみに限定してください。
  • バックアップを複数の場所に保存してください(例:ローカルストレージ、NAS、AWS S3などのクラウドサービス)。
  • システム間でバックアップファイルを転送する際は、SCPやSFTPなどの安全なプロトコルを使用してください。

復旧手順のテスト

ESXiのバックアップをテストすることで、復旧措置が必要なインシデントが発生した場合に、構成を確実に復旧できることを確認できます。テストは、復旧プロセスが想定通りに完了することを確認するために必要であり、潜在的な問題の特定にも役立ちます。

  • バックアップの整合性を確保するため、復旧手順を定期的にテストしてください。
  • テスト用のESXiホストまたはサンドボックス環境で構成を復元します。
  • ESXiの設定復元手順を説明するドキュメントを作成してください。コマンドや依存関係を含め、ESXiの設定を復元するための手順書を詳細に作成してください。
  • 復元された構成が正確かどうかを確認してください。これには、ネットワーク設定、データストアのマッピング、およびVMの登録が含まれます。

災害復旧のシナリオをシミュレーションし、バックアップおよび復旧戦略の有効性を確認します。

結論

ESXiのコマンドラインインターフェースを使用する利点は、追加のソフトウェアをインストールする必要がないことです。vSphere CLIの利点としては、Linuxマシンを使用してリモートでコマンドを実行できることや、ESXiの設定バックアップを自動化できることが挙げられます。一方、PowerCLIはWindowsユーザーにとって便利なツールとなるでしょう。

ESXiホストの状態が正常でなく、ホストを起動できない場合でも、手動で設定のバックアップと復元を行うことができます。なお、 ブートブランク ESXiの構成バックアップファイルには、VMに関する情報は保存されません。ESXiの構成を復元した後、インベントリに仮想マシンを登録する必要がある場合があります。

ESXiホストのバックアップに加えて、vSphere仮想マシンのバックアップも行うことをお勧めします。 NAKIVO Backup & Replication VMware VM、Hyper-V VM、Amazon EC2インスタンスに加え、物理LinuxサーバーやWindowsサーバーのバックアップも可能な、汎用的なバックアップソリューションです。

試してみてください NAKIVO Backup & Replication

試してみてください NAKIVO Backup & Replication

無料トライアルをご利用いただき、本ソリューションのデータ保護機能をすべてお試しください。15日間無料です。機能や容量の制限は一切ありません。クレジットカードも不要です。

People also read