BackupZit

無料の Hyper-V バックアップ:Hyper-V 仮想マシンのバックアップ方法

Hyper-V ホストから、すべての VM のスケジュール済み・暗号化・重複排除バックアップまでを解説する完全ガイドです。VSS による整合性、Resilient Change Tracking による増分、オフサイトコピー、そして新しい VM・元の場所・ファイル単位での復元を扱います。

構築する内容

BackupZit は Hyper-V の仮想マシンを Hyper-V ホスト上のエージェントからバックアップします。VM 内には何もインストールしません。Windows と Linux のゲストはバックアップ中も動作し続けます。Web コンソールがジョブのスケジュール、履歴の保持、復元を行います。BackupZit は無料のオープンソース(AGPLv3)で、ホストや VM の数に制限はありません。

Windows Server には標準ツールの Windows Server バックアップがあり、ホスト上の Hyper-V VM もバックアップできます。ホスト 1 台とローカルディスクならそれで十分な場合もあります。複数ホストを SFTP、SMB、S3、変更不可のリポジトリへ保持・暗号化・重複排除付きでスケジュールバックアップしたい、VM ディスクから個別ファイルを復元したい、さらに Proxmox、VMware、物理サーバー、データベース、Microsoft 365 を同じコンソールで管理したい場合には、BackupZit が向いています。

必要なもの

  • Hyper-V ホスト:Hyper-V の役割を持つ Windows Server 2016 以降、または Hyper-V を有効にした Windows 10/11。クラスターではすべてのホスト。
  • BackupZit コンソールの設置場所:2 vCPU、2〜4 GB RAM、16〜20 GB ディスクの小さな Linux VM。バックアップデータ自体は保存しないため、同じ Hyper-V ホスト上の VM として動かせます。
  • ホストの外にあるバックアップ先ストレージ:ファイルサーバーや NAS の SMB 共有、SFTP で接続する Linux サーバー、S3 互換バケット、BackupZit の堅牢化リポジトリなど。エージェントが直接書き込みます。
  • ネットワーク:エージェントは TCP 8443 番ポートでコンソールに接続します。

手順 1 — コンソールをインストール

Hyper-V では、ダウンロードページにある既成の VM イメージ backupzit-appliance-vhdx.zip(Debian、PostgreSQL、コンソールを設定済み)を使うのが最も簡単です:

  1. backupzit-appliance-vhdx.zip を VM ディスクを置いているフォルダーに展開します。
  2. Hyper-V マネージャーで 2〜4 GB RAM の第 1 世代 VM を作成し、仮想スイッチに接続して、展開した VHDX を既存のディスクとして選択します。
  3. VM を起動します。画面に Web コンソールのアドレスとユーザー admin の初期パスワードが表示されます。https://<アドレス>:8443 を開いてサインインし、パスワードを変更します。ブラウザーは自己署名証明書について一度だけ警告します。

VM の画面で bzadmin としてサインインすると、固定アドレス、サーバー名、タイムゾーンを設定できます(アプライアンスは UTC で起動し、スケジュールはコンソールのタイムゾーンで動作します)。既存の Debian、Ubuntu、AlmaLinux、Rocky Linux サーバーを使いたい場合は、ダウンロードページの 1 行インストールスクリプトで同じことができます。

手順 2 — ストレージを追加

コンソールでストレージを開き、保存先を追加します。Windows 環境でよく使われる選択肢:

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

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

手順 3 — Hyper-V ホストにエージェントをインストール

  1. コンソールでエージェントを開き、登録トークンを作成をクリックします。7 日間有効で、何台のマシンにも使える登録コード(BZ1-…)が発行されます。
  2. エージェントページから Windows エージェント(MSI)をダウンロードしてホストで実行し、インストーラーに求められたらコードを貼り付けます。複数ホストには GPO、Intune、RMM ツールによるサイレントインストールが使えます:
    msiexec /i backupzit-agent.msi /qn ENROLLCODE="BZ1-..."
    コンソールが WinRM 経由でエージェントを自らインストールすることもできます:エージェント → ここからマシンにインストール。管理者アカウントはインストールにのみ使用され、保存されません。
  3. 1 分以内に、ホストが Hyper-V · N VMs のバッジ付きでエージェントページに表示されます。

エージェントは Hyper-V 自身のインターフェース(Hyper-V PowerShell モジュールと Windows Virtual Disk API)で動作します。コンソールには Hyper-V の認証情報を一切保存しません。クラスターでは各ホストにエージェントをインストールしてください。

手順 4 — バックアップ ジョブを作成

  1. バックアップ ジョブを開いてジョブを作成し、ホストのエージェントを選択します。
  2. 仮想マシン(Proxmox VE、Hyper-V、VMware)を選び、ホスト上のすべての VM(およびコンテナー)を選択します(後から作成した VM も自動的に含まれます)。または個々の VM にチェックを入れます。
  3. 手順 2 のストレージを選択します。
  4. スケジュールを設定します。例:平日毎日 22:00。15 分〜12 時間ごとの繰り返し、月 1 回、別のジョブの後に開始することもできます。
  5. 保持を設定します。例:最新 3、日次 7、週次 4、月次 6 で、約半年分の履歴と約 20 の復元ポイントを保持できます。

実行のたびに行われること:

  1. 一時的な回復チェックポイント(backupzit_…)が作成されます。これは Hyper-V がバックアップアプリケーション向けに提供するチェックポイントの種類です。VM は動作し続けます。
  2. 回復チェックポイントにより、VM のディスクで Resilient Change Tracking(RCT)が有効になり、ディスクの隣に .rct と .mrt ファイルが作られます。初回はディスク全体を読み取り、以降は RCT が前回のバックアップ以降に変更されたブロックを報告し、それだけを読み取ります。
  3. ディスクはチェックポイント時点の状態で 1 MiB ブロック単位に読み取られます(VHDX と VHD、以前のチェックポイントのチェーンを含む)。空のブロックは保存されず、リポジトリにすでにあるブロックは再送されません。それでも各バックアップは完全な復元ポイントです。
  4. チェックポイントは削除され、Hyper-V がバックグラウンドでマージします。VM の構成(世代、CPU、メモリ、ネットワークアダプター(スイッチ、VLAN、MAC アドレス)、ディスクコントローラー、セキュアブート、TPM)はバックアップと一緒に保存されます。

BackupZit のテストラボでの例:3 GB ディスクの Linux VM。初回のバックアップは 3 GB を読み取り、64 MB の新しいデータの後の次回は 96 MB を読み取りました。

電源オフの VM はチェックポイントなしで直接読み取られます。Windows Server 2016 より古いホストには回復チェックポイントがないため、運用チェックポイントが使われ、毎回ディスク全体を読み取ります。

Windows 10/11 のホスト:このオプションをオフにしない限り、Hyper-V は VM を起動するたびに自動チェックポイントを作成します。BackupZit はこれらのチェックポイントに対応しますが、サーバー VM では自動チェックポイントをオフにしてください(VM の設定 → チェックポイント)。

手順 5 — アプリケーション整合性のあるバックアップ

回復チェックポイントの作成時、Hyper-V はゲストに準備を求めます:

  • Windows ゲストは VSS を通じてアプリケーション(SQL Server、Exchange、Active Directory など)のデータを書き出します。
  • Linux ゲストは Hyper-V デーモンがインストールされていればファイルシステムをフリーズします(ディストリビューションにより hyperv-daemons パッケージまたは hv-vss-daemon)。

ゲストがどちらもできない場合、チェックポイントはクラッシュ整合性になります(停電後と同じ状態)。実行ページには VM ごとに使われた種類が表示されるので、デーモンがまだ必要なゲストが一目でわかります。

手順 6 — オフサイトコピーを保持(3-2-1)

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

  • エージェントは既存のバックアップをコピーします。VM を再読み取りすることはありません。
  • 保存先にまだないデータだけが、保存先の鍵で暗号化されて送信されます。
  • コピーには独自のスケジュールと保持があります。例:NAS に日次 7、クラウドに月次 12。

VM と個別ファイルは、コピーからも元のバックアップと同様に復元できます。自動復元テスト(既定は毎週、設定 → 復元テスト)は、最新の VM バックアップからランダムなブロックを読み取り、チェックサムと照合します。変更不可のコピーについてはランサムウェア対策をご覧ください。

復元

バックアップの実行(ジョブページまたはアクティビティから)を開き、Hyper-V VM を復元を選択します。同じホストにも、エージェントのある別の Hyper-V ホストにも復元できます。

元の VM の隣に新しい VM として

  • 新しい MAC アドレスを持つ 2 台目の VM を作成するため、元の VM と同じネットワークで動かせます。既定の名前は元の名前に「restored」と日付を付けたものです。
  • この VM では自動チェックポイントがオフになるため、起動してもチェックポイントファイルが残りません。
  • MAC アドレスに結び付いたゲストのネットワーク設定(Linux クラウドイメージの netplan の match: macaddress など)は新しいアダプターには適用されません。

元の VM の代わりに

電源を切ってディスクを置き換えるにチェックを入れます。BackupZit は既存の VM の電源を切り、チェックポイントをマージし、ディスクを復元したものに差し替えます。VM は ID、ネットワークアダプター、MAC アドレスを保持するため、ジョブ、監視、ゲストのネットワークはそのまま動作します。古いディスクファイルは削除されず、….replaced-日付 に名前が変更されます。復元した VM の動作を確認したら削除してください。元の VM がもう存在しない場合は、新しい Hyper-V ID で再作成されます。

復元した VM に付与されるもの

  • 仮想スイッチは名前で接続されます。ホストにそのスイッチがなければ、アダプターは未接続のままです。
  • 復元した VM にはすべて新しい世代 ID が付与されるため、Active Directory のドメインコントローラーは復元を安全に検出できます。
  • オプション:仮想ディスクのフォルダー、および復元後に VM を起動するかどうか。

個別ファイル

バックアップ実行の VM 表でファイルを参照をクリックすると、VM ディスク上のパーティションとボリュームが表示されます。LVM 内も含めて NTFS、ext2/3/4、XFS を参照でき、ファイルをダウンロードする(複数なら ZIP)か、任意のエージェント上のフォルダーに復元できます。紛失した文書 1 つのために VM 全体を復元する必要はありません。

コマンドラインから

コンソールがなくても、Hyper-V ホスト上で管理者としてすべて操作できます。たとえば障害後にホストを再構築する場合:

backupzit-agent hyperv list
backupzit-agent hyperv backup  --repo ... [--vmid N,N]
backupzit-agent hyperv restore --repo ... --vmid N --new --name 名前 --folder D:\VMs --start latest

--vmid は hyperv list が表示する番号です。--new を付けないと VM は元の場所に復元されます。--overwrite は既存 VM のディスクを置き換えてよいことを確認します。

知っておくべき制限

  • 共有 VHDX、VHD Set、パススルーディスクはバックアップされません。
  • インスタントリカバリー(バックアップから VM を直接起動)は Proxmox VE と VMware で利用でき、Hyper-V ではまだ使えません(予定されています)。Hyper-V の復元は先にディスクをコピーします。
  • Windows Server 2016 より古いホストには回復チェックポイントも RCT もないため、毎回ディスク全体を読み取ります。

次のステップ

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