BackupZit

VMware ESXi バックアップ:無償版 ESXi ライセンスでも

ESXi ホスト(ライセンス済み、無償版、または vCenter 管理下)から、その VM のスケジュール済み・暗号化・重複排除バックアップまでを解説する完全ガイドです。変更ブロック追跡(CBT)、静止(quiesce)スナップショット、オフサイトコピー、そして新しい VM・元の VM の代わり・ファイル単位・バックアップから直接実行する復元を扱います。

構築するもの

BackupZit は VMware ESXi の仮想マシンを、ESXi にも VM 内にも何もインストールせずにバックアップします。ネットワーク上の任意のマシンにある BackupZit エージェントがホストのプロキシとして動作し、スナップショットを作成し、仮想ディスクの変更されたブロックだけを読み取ってストレージに書き込みます。Web コンソールがジョブのスケジュール、履歴の保持、復元の実行を担当します。BackupZit は無料のオープンソース(AGPLv3)で、ホスト数や VM 数の制限はありません。

無償版 ESXi ライセンスでは、ホストの API が読み取り専用になります。API から VM を読み取ることはできても、変更はできません。そのため BackupZit は、無償版ホストではスナップショットと復元を SSH 経由で、ライセンス済みホストと vCenter では vSphere API 経由で行います。適切な方法はコンソールが自動で選びます。

必要なもの

  • 直接接続する ESXi 6.7、7 または 8、または ESXi ホストを含む vCenter Server 7 または 8。
  • 管理者権限を持つユーザー:ホストでは通常 root、vCenter では administrator@vsphere.local または Administrator ロールを持つユーザー。
  • BackupZit コンソールの設置場所:2 vCPU、2〜4 GB RAM、16〜20 GB ディスクの小さな Linux VM。コンソール自体はバックアップデータを保存しません。
  • プロキシエージェント:BackupZit エージェントを入れた任意の Windows または Linux マシンで、ポート 443(SSH を使う場合は 22 も)でホストに到達できるもの。
  • ホスト外のバックアップストレージ:たとえば SFTP 経由の Linux サーバーや NAS、SMB 共有、S3 互換バケット、BackupZit の堅牢化リポジトリ。
  • ネットワーク:エージェントは TCP ポート 8443 でコンソールに接続します。

無償版 ESXi ライセンスで変わること

無償版ライセンスでも動作します。準備は次の 3 つです。

  • ホストで SSH を有効にする:ESXi Host Client で Host → Actions → Services → Enable Secure Shell。ライセンス済みホストと vCenter では SSH は不要です。
  • 変更ブロック追跡(CBT)は VM の電源がオフのときにしか有効にできません。BackupZit は VM がオフの状態を見つけた最初のバックアップで有効にします。それまでは毎回ディスク全体を読み取り、実行結果に警告が表示されます。メンテナンス時間などに各 VM を一度シャットダウンし、バックアップを実行させてください。
  • データストアの空き容量:稼働中の VM をバックアップする間、そのディスクは VM のデータストア上にシン形式でコピーされます。そのため、ディスクが実際に使用している分の空き容量が必要です。

後からライセンスを取得したホストは、追加設定なしで vSphere API に切り替わります。

ステップ 1 — コンソールをインストールする

ESXi で最も手早いのは、ダウンロードページにある既製の VM イメージ backupzit-appliance.ova です(Debian、PostgreSQL、コンソールが設定済みで、VMware Tools も含まれます)。

  1. ESXi Host Client で Create / Register VM → Deploy a virtual machine from an OVF or OVA file を選び、OVA ファイルを指定します。vCenter では Deploy OVF Template を使います。VM には 2 vCPU と 2〜4 GB RAM を割り当てます。
  2. VM を起動します。画面に Web コンソールのアドレスとユーザー admin の初期パスワードが表示されます。https://<アドレス>:8443 を開いてサインインし、パスワードを変更します。

VM の画面では bzadmin で固定アドレスとタイムゾーンを設定できます(スケジュールはコンソールのタイムゾーンで動作します)。既存の Linux サーバーを使う場合は、ダウンロードページのインストールスクリプトを使ってください。

ステップ 2 — ストレージを追加する

コンソールでストレージを開き、保存先を追加します。VM バックアップでよく使われる選択肢:

種類向いている用途
SFTPSSH が使える任意の Linux サーバーや NAS。サーバーのホスト鍵は固定されます。
SMB 共有Windows ファイルサーバー、Synology や QNAP の NAS(SMB 2/3)。
S3 互換オフサイトコピー:AWS S3、Wasabi、Backblaze B2、MinIO、Ceph。Object Lock で変更不可にできます。
堅牢化リポジトリbackupzit-repo を動かす Linux サーバー:変更不可期間が終わるまでバックアップを削除できません。

バックアップを暗号化(AES-256)はオンのままにしてください(既定)。コンソールにリカバリーキーが表示されます。リカバリーシートを印刷するか、キーをパスワードマネージャーに保存し、バックアップとは別の場所に保管してください。キー、ストレージの場所、その認証情報があれば、コンソールを失っても復元できます。

ステップ 3 — プロキシエージェントをインストールする

バックアップデータはプロキシエージェントを経由するため、ESXi ホストとストレージに近い高速なネットワークに置いてください。Linux がより良い選択です。インスタントリカバリーを実行できるのは Linux のプロキシだけです。

  1. コンソールでエージェントを開き、登録トークンを作成をクリックします。7 日間有効な登録コード(BZ1-…)が発行されます。
  2. エージェントのページからエージェントパッケージをダウンロードします。Debian または Ubuntu では:
    apt install ./backupzit-agent_*.deb
    backupzit-agent enroll --code "BZ1-..."
    systemctl enable --now backupzit-agent
    Windows ではエージェントの MSI を実行し、コードを貼り付けます。コンソールからエージェントをインストールすることもできます:エージェント → ここからマシンにインストール。

ステップ 4 — ESXi ホストまたは vCenter を追加する

エージェントの VMware ESXi ホストセクションで、ESXi ホストまたは vCenter Server を追加に アドレス、ユーザー、パスワード、プロキシエージェントを入力し、ESXi ホストまたは vCenter を追加をクリックします。コンソールは一度接続して VM の一覧とライセンスを読み取り、ホストの HTTPS 証明書と SSH ホスト鍵を固定します。後で同じアドレスに別のマシンが応答した場合、BackupZit はパスワードを送らずに接続を拒否します。パスワードは暗号化して保存されます。

モード列にホストの扱い方が表示されます:

  • vSphere API(ライセンス済みホスト、SSH 不要) — スナップショット、ディスクのコピー、復元、インスタントリカバリーは API 経由で行われます。
  • 無償ライセンス: SSH 経由のスナップショットと復元 — API が読み取り専用のため、これらの処理は SSH 経由で行われます。

ホストの変更方法は既定で自動で、常に SSH または常に vSphere API に固定することもできます。再インストール、新しい証明書、vCenter への追加など、理由がわかっている形でホストの証明書が変わった場合は、フィンガープリントをホストと照合したうえで新しい証明書を受け入れるをクリックします。

vCenter Server の場合

vCenter もホストと同じように追加します。BackupZit はこの 1 つの接続で、データセンター内のすべての ESXi ホストとクラスターの VM を参照できます。SSH 経由での変更は一切行いません。vMotion で移動した VM もバックアップされ続けます。VM はホストではなくインスタンス UUID で識別されるためです。同じ ESXi ホストを直接と vCenter 経由の両方で追加しないでください。VM が二重にバックアップされます。

ステップ 5 — バックアップジョブを作成する

  1. バックアップ ジョブを開いてジョブを作成し、ESXi ホストを選びます。エージェント一覧の VMware ESXi ホストの下にあります。
  2. 仮想マシン(Proxmox VE、Hyper-V、VMware)を選び、続いてホスト上のすべての VM(およびコンテナー)を選びます(後から作成した VM も自動的に含まれます)。個別の VM にチェックを付けることもできます。
  3. ステップ 2 のストレージを選び、スケジュールを設定します。たとえば平日の 22:00。
  4. バックアップの保持を設定します。例:最新 3、日次 7、週次 4、月次 6 で、約半年分の履歴を約 20 の復元ポイントで保持できます。

ジョブはホストのプロキシエージェントで実行されます。各実行での処理:

  1. VM の変更ブロック追跡がオフならオンにします。ライセンス済みホストでは自動で、無償版ホストでは VM がオフの状態を見つけた最初のバックアップで行います。
  2. スナップショット backupzit_… を作成します。ゲストで VMware Tools が動いていれば静止(quiesce)されます(ステップ 6 を参照)。
  3. CBT が読み取るブロックを示します。最初のバックアップでは使用中のブロックのみ、以降は前回のバックアップ以降に変更されたブロックのみです。
  4. 稼働中の VM はディスクをロックしているため、ディスクをデータストア上にシン形式でコピーし、スナップショットはすぐに削除されます(通常は数秒後)。プロキシはそのコピーを HTTPS で読み取ってから削除します。電源オフの VM は直接読み取ります。
  5. VM の構成(.vmx)と NVRAM はバックアップと一緒に保存されます。

BackupZit のテストラボでの例:8 GB ディスクのうち 1.6 GB を使用している Debian VM。最初のバックアップは 1.6 GB を読み取りました。50 MB の新しいデータの後の次のバックアップは 70 MB を読み取り、23 秒で完了しました。

ステップ 6 — アプリケーション整合性のあるバックアップ

ゲストで VMware Tools が動作していると、スナップショットは静止(quiesce)されます。アプリケーションとファイルシステムが先にデータを書き出すため、バックアップはアプリケーション整合性を持ちます。VMware Tools がない場合はクラッシュ整合性(停電後と同じ状態)になります。Linux VM には open-vm-tools、Windows VM には VMware Tools をインストールしてください。

ステップ 7 — オフサイトコピーを保持する(3-2-1)

3-2-1 ルール:データのコピーを 3 つ、2 種類の異なる媒体に、そのうち 1 つをオフサイトに置きます。種類がバックアップ コピーの 2 つ目のジョブを追加し、ソースに VMware ジョブを、保存先にオフサイトのターゲット(Object Lock 付きの S3 バケットや別の建物にある堅牢化リポジトリなど)を選びます。

  • エージェントは既存のバックアップをコピーします。VM を再度読み取ることはありません。
  • 既定ではソースジョブの各バックアップの後にコピーが実行され、独自の保持設定を持ちます。例:NAS に日次 7、クラウドに月次 12。

VM 全体も個別のファイルも、元のバックアップと同じようにコピーから復元できます。設定 → 復元テストでは、自動復元テスト(既定は毎週)と保存データを確認(既定は毎月)でバックアップを検証します。変更不可のコピーについてはランサムウェア対策をご覧ください。

復元

バックアップの実行(ジョブのページまたはアクティビティから)を開いて VMware VM を復元を選ぶか、復元ウィザードで仮想マシン全体を選びます。ESXi ホストに復元で復元先を選び(vCenter の場合は VM を実行する ESXi ホストも)、必要に応じて別のデータストアを選びます。

元の VM と並べて新しい VM として

新しい名前、UUID、MAC アドレスを持つコピーを作成します。既定の名前は元の名前に -restored- と日付を付けたものです。古い MAC アドレスに結び付いたゲストのネットワーク設定(クラウドイメージの netplan の match: macaddress など)はコピーには適用されません。

元の VM の代わりに

電源を切ってディスクを置き換えるにチェックを付けます。BackupZit は VM の電源を切り、スナップショットを削除し、現在のディスクを ….replaced-日付.vmdk に名前変更して(復元した VM が動作したら削除してください)、元の名前の新しいディスクにバックアップを書き込みます。VM は UUID、ネットワークアダプター、MAC アドレスを保持します。削除された VM は元の ID で再作成されます。

ディスクはシン形式で復元され、データのあるブロックだけが書き込まれます。ライセンス済みホストと vCenter では vSphere API 経由、無償版ライセンスでは SSH 経由です。必要なら復元後に VM を起動にチェックを付けます。CD/DVD ドライブに接続された ISO イメージはバックアップに含まれません。

インスタントリカバリー

すぐに、バックアップから実行を選ぶと、VM は数秒で起動します。Linux のプロキシエージェントがバックアップから直接 NFS でディスクを提供し、ホストはそれをデータストア backupzit-<エージェント> としてマウントします。変更はエージェント上に保持され、バックアップ自体が変更されることはありません。VM が正しく動作したら、実行のページで次を選びます。

  • 完了する:VM をデータストアに移動します。vCenter では Storage vMotion により稼働したまま、単体ホストではディスクをコピーする間だけ短時間停止します(無償版ライセンスでは SSH 経由の vmkfstools)。
  • VM を破棄:VM を停止し、すべての変更とともに削除します。

ESXi ホストとエージェントの間にファイアウォールがある場合は、ホストからエージェントへのポート 2049 と 111 を開けてください。

個別のファイル

バックアップのページのファイルを参照(または復元ウィザードの仮想マシン内のファイル)で VM のディスクを開けます。NTFS、ext2/3/4、XFS を LVM 上も含めて参照でき、ファイルをダウンロードしたり任意のエージェントに復元したりできます。

同じコンソールで Proxmox も。BackupZit は Proxmox VE の VM とコンテナーもバックアップします。ESXi から Proxmox へ移行中なら、移行が終わるまで両方のプラットフォームを 1 つのコンソールで、同じストレージとレポートを使って保護できます。VMware のバックアップは ESXi ホストに復元します。

知っておきたい制限事項

  • 複数のデータセンターを持つ vCenter はまだ追加できません。他のデータセンターのホストは直接追加してください。
  • 独自のスナップショットを持つ VM はバックアップされません。先にスナップショットを削除または統合してください。
  • RDM(Raw Device Mapping)と独立型ディスクはバックアップされません。
  • インスタントリカバリーには Linux のプロキシエージェントが必要です。

次のステップ

BackupZit をダウンロードして、すべての VMware 機能を確認するか、コンソール内蔵ガイドの VMware ESXi の章をお読みください。Proxmox や Hyper-V もお使いですか? Proxmox VM バックアップガイドと Hyper-V バックアップガイドをご覧ください。質問は GitHub Discussions で歓迎しています。企業向けには MaxZit が有償サポートを提供しています(英語のみ)。