ホストと仮想マシンのバックアップと復元

では、ホストのインストール後の状態を変更しないで、可能な限りそのまま運用することをお勧めします。ホストは通常のサーバーとは異なるため、追加のパッケージをインストールしたり、追加のサービスを起動したりしないでください。ホストの状態を元に戻すには、インストールメディアからXenServerを再インストールします。複数のホストがある場合は、TFTPサーバーと、適切な回答ファイルを設定することが最善の方法です。詳しくは、「ネットワークブートによるインストール」を参照してください。

では、潜在的なハードウェアやソフトウェアの障害に備えて、ここで説明する複数のバックアップ手順を頻繁に行うことをお勧めします。

プールメタデータをバックアップするには:

  1. 次のコマンドを実行します:

    xe pool-dump-database file-name=backup
    
  2. データベースを復元するには、次のコマンドを実行します:

    xe pool-restore-database file-name=backup dry-run=true
    

    このコマンドでは、バックアップに必要な、適切な名前を持つNICが適切な数だけホストにインストールされているかどうかがチェックされます。

ホスト構成およびソフトウェアをバックアップするには:

  1. 次のコマンドを実行します:

    xe host-backup host=host file-name=hostbackup
    

注:

  • コントロールドメイン(ドメイン0)にバックアップを作成しないでください。

  • バックアップ手順で大きなバックアップファイルを作成できます。

  • 復元処理を完了するために、元のインストールCDから起動する必要があります。

  • この手順で作成したバックアップファイルは、作成元のホストの復元にのみ使用できます。

仮想マシンをバックアップするには:

  1. バックアップ対象の仮想マシンがオフラインであることを確認します。

  2. 次のコマンドを実行します:

    xe vm-export vm=vm_uuid filename=backup
    

注:

この手順により、仮想マシン上のすべてのデータも一緒にバックアップされます。仮想マシンをインポートするときは、バックアップデータ用に使用するストレージメカニズムを指定できます。

警告:

バックアップ処理は、すべての仮想マシンデータをバックアップするため、完了まで時間がかかります。

仮想マシンメタデータのみをバックアップするには:

次のコマンドを実行します:

xe vm-export vm=vm_uuid filename=backup metadata=true

仮想マシンメタデータのバックアップ

ストレージやネットワークなどの関連リソースや仮想マシンに関するメタデータは、各ホスト上のデータベースに格納されます。ストレージリポジトリとこのデータベースにより、プール内で使用可能なすべての仮想マシンの完全な情報が提供されます。このため、物理ハードウェアの障害やそのほかの災害シナリオから復旧できるように、このデータベースのバックアップ方法を理解しておくことは重要です。

ここでは、最初に単一ホスト環境のメタデータのバックアップ方法を説明し、次に複雑なプール構成のバックアップ方法を説明します。

単一ホスト環境でのバックアップ

プールデータベースをバックアップするには、CLIを使用します。一貫したプールメタデータバックアップファイルを取得するには、ホスト上でpool-dump-databaseを実行し、その結果ファイルをアーカイブします。バックアップファイルには、プールに関する機密性の高い認証情報が含まれます。このため、安全な方法で保管してください。

プールメタデータを復元するには、最新のダンプファイルに対してxe pool-restore-databaseコマンドを実行します。ホストが完全に動作不能になった場合は、再度新規インストールを行い、その後でそのホストに対してpool-restore-databaseコマンドを実行します。

プールデータベースの復元後、一部の仮想マシンは引き続きSuspended状態として認識される場合があります。そのサスペンド状態のメモリが格納されている場所(suspend-VDI-uuidフィールドで定義される)がローカルのストレージリポジトリである場合、ホストの再インストールにより仮想マシンが使用不可になります。このような仮想マシンを起動できるように Halted 状態にリセットするには、xe vm-shutdown vm=vm_name -forceコマンドまたはxe vm-reset-powerstate vm=vm_name -forceコマンドを使用します。

警告:

この方法で復元されたホストでは、元のUUIDが保持されます。このため、元のホストが動作しているときに、別の物理マシンにそのホストを復元すると、UUIDの競合が発生します。結果として、 は2番目のホストへの接続を拒否します。物理ホストを複製する目的でプールデータベースのバックアップを使用することは推奨されません。物理ホストを複製するには、自動インストールの機能を使用してください。詳しくは、「インストール」を参照してください。

プール環境でのバックアップ

リソースプール環境では、プールマスタがプライマリのデータベースを提供し、このデータベースがプールメンバホストによって同期され、ミラー化されます。これにより、プールに冗長性が提供されます。プール内のすべてのホストがプールデータベースの正確なコピーを保持しているため、任意のメンバがプールマスターとして動作することができます。メンバホストをプールマスターとして動作させる方法については、「ホストとリソースプール」を参照してください。

このレベルの冗長性では不十分なことがあります。たとえば、仮想マシンデータを格納する共有ストレージを複数サイトにバックアップし、プールメタデータを格納するローカルサーバーストレージをバックアップしない場合などです。共有ストレージを持つプールを作成し直すには、最初にプールマスター上のpool-dump-databaseファイルのバックアップを行い、このファイルをアーカイブしておきます。後で新しいホストでこのバックアップを復元するには:

  1. インストールメディアを使用しての新規インストールを行うか、TFTPサーバーからネットワークブートを実行します。

  2. 新しいプールマスターとして動作するホストで、xe pool-restore-databaseを実行します。

  3. 新しいプールマスターで、xe host-forgetコマンドを実行し、古いメンバホストを消去します。

  4. メンバホストでxe pool-joinコマンドを実行し、それらのホストを新しいプールに追加します。

ホストのバックアップ

ここでは、ホストのコントロールドメインのバックアップおよび復元の手順について説明します。以下の手順では、仮想マシンを格納するストレージリポジトリはバックアップしません。Xenおよびエージェントを実行するコントロールドメイン(Dom0)のみをバックアップします。

注:

コントロールドメインは、ほかのパッケージでカスタマイズしないで、インストール後の状態でそのまま運用します。このため、は復旧方法として、メディアからの新規インストールを簡単に実行できるように、ネットワークブート環境を設定しておくことをお勧めします。通常、コントロールドメインをバックアップする必要はありませんが、プールのメタデータを保存することをお勧めします(「仮想マシンメタデータのバックアップ」参照)。このバックアップ方法は、プールメタデータのバックアップを補完するものです。

さらに、xeコマンドのhost-backuphost-restoreを使用することもできます。xe host-backupコマンドでは、アクティブなパーティションを指定したファイルにアーカイブします。xe host-restoreコマンドは、xe host-backupコマンドで作成したアーカイブを、ホストの非アクティブなパーティションに抽出します。このパーティションをアクティブにするには、インストールCDから起動して、バックアップを復元するオプションを選択します。

上記の手順を実行してホストを再起動したら、仮想マシンメタデータが一貫した状態に復元されていることを確認します。/var/backup/pool-database-${DATE}xe pool-restore-databaseを実行して、仮想マシンメタデータを復元します。このファイルは、xe pool-dump-databaseコマンドにより作成されたものです。このコマンドでは、実行中のファイルシステムをアーカイブする前に仮想マシンメタデータの一貫した状態のスナップショットを作成するxe host-backupが実行されます。

ホストをバックアップするには:

十分な空きディスク容量があるリモートホスト上で、次のコマンドを実行します。

xe host-backup file-name=filename -h hostname -u root -pw password

これにより、コントロールドメインのファイルシステムの圧縮イメージが作成され、file-name引数で指定したファイルに保存されます。

実行中のXenServerホストを復元するには:

  1. 特定のバックアップから実行中のホストを復元するには、そのホストが到達可能な状態で次のコマンドを実行します。

    xe host-restore file-name=filename -h hostname -u root -pw password;

    これにより、(filenameで指定するファイルを格納するホストではなく)コマンドを実行したホストのハードディスクに、圧縮イメージが復元されます。この意味では、「復元」という言葉は紛らわしいかもしれません。通常、復元とはバックアップした状態に完全に戻すことを指します。この復元コマンドは、圧縮されたバックアップファイルを展開するだけですが、別のパーティション(/dev/sda2)に書き込んでおり、現在のバージョンのファイルシステムを上書きしません

  2. ルートファイルシステムの復元されたバージョンを使用するには、インストールCDを使用してホストを再起動し、[Restore from backup]オプションを選択する必要があります。

    バックアップからの復元後、ホストを再起動すると、復元されたイメージから起動します。

  3. 最後に、次のコマンドを実行して、仮想マシンメタデータを復元します:

    xe pool-restore-database file-name=/var/backup/pool-database-*
    

注:

ここで説明したバックアップからの復元を行っても、バックアップパーティションは破棄されません。

クラッシュしたホストを再起動するには:

ホストがクラッシュして到達不能になった場合は、のインストールCDを使用してアップグレードインストールを実行します。アップグレードインストールが完了したら、マシンを再起動し、またはリモートCLIからホストに到達可能であることを確認します。

その後、このセクションでの説明どおりにホストのバックアップを続行します

ホストと仮想マシンのバックアップと復元