ホストと仮想マシンのバックアップと復元
可能な限り、XenServerホストのインストール後の状態を変更しないでください。XenServerホストは通常のサーバーとは異なるため、追加のパッケージをインストールしたり、追加のサービスを起動したりしないでください。XenServerホストの状態を元に戻すには、インストールメディアからXenServerを再インストールします。複数のXenServerホストがある場合は、TFTPサーバーと、適切な回答ファイルを設定することが最善の方法です。詳しくは、「ネットワークブートによるインストール」を参照してください。
認定パートナーが提供するバックアップソリューションの使用をお勧めします。詳しくは、「Citrix Ready Marketplace」を参照してください。
XenServer Premium Editionのユーザーは、変更ブロックのみの、より高速なバックアップを利用できます。詳しくは、変更ブロック追跡に関するドキュメントを参照してください。
これらのソリューションは、Cloud Software Groupではなく、それぞれのベンダーによって認定されています。これらのバックアップソリューションのサポートは、該当のソリューションベンダーによって提供されます。
潜在的なハードウェアやソフトウェアの障害に備えて、ここで説明する複数のバックアップ手順を頻繁に行うことをお勧めします。
プールメタデータをバックアップするには:
-
次のコマンドを実行します:
xe pool-dump-database file-name=backup <!--NeedCopy-->
-
データベースを復元するには、次のコマンドを実行します:
xe pool-restore-database file-name=backup dry-run=true <!--NeedCopy-->
このコマンドでは、バックアップに必要な、適切な名前を持つNICが適切な数だけホストにインストールされているかどうかがチェックされます。
ホスト構成およびソフトウェアをバックアップするには:
-
次のコマンドを実行します:
xe host-backup host=host file-name=hostbackup <!--NeedCopy-->
メモ:
コントロールドメイン(Dom0)にバックアップを作成しないでください。
バックアップ手順で大きなバックアップファイルを作成できます。
復元処理を完了するために、元のインストールCDから起動する必要があります。
この手順で作成したバックアップファイルは、作成元のホストの復元にのみ使用できます。
仮想マシンをバックアップするには:
-
バックアップ対象の仮想マシンがオフラインであることを確認します。
-
次のコマンドを実行します:
xe vm-export vm=vm_uuid filename=backup <!--NeedCopy-->
注:
この手順により、仮想マシン上のすべてのデータも一緒にバックアップされます。仮想マシンをインポートするときは、バックアップデータ用に使用するストレージメカニズムを指定できます。
警告:
バックアップ処理は、すべての仮想マシンデータをバックアップするため、完了まで時間がかかります。
仮想マシンメタデータのみをバックアップするには:
次のコマンドを実行します:
xe vm-export vm=vm_uuid filename=backup metadata=true
<!--NeedCopy-->
仮想マシンのメタデータのバックアップ
ストレージやネットワークなどの関連リソースや仮想マシンに関するメタデータは、各XenServerホスト上のデータベースに格納されます。ストレージリポジトリとこのデータベースにより、プール内で使用可能なすべての仮想マシンの完全な情報が提供されます。このため、物理ハードウェアの障害やそのほかの災害シナリオから復旧できるように、このデータベースのバックアップ方法を理解しておくことは重要です。
ここでは、最初に単一ホスト環境のメタデータのバックアップ方法を説明し、次に複雑なプール構成のバックアップ方法を説明します。
単一ホスト環境でのバックアップ
プールデータベースをバックアップするには、CLIを使用します。一貫したプールメタデータバックアップファイルを取得するには、XenServerホスト上でpool-dump-database
を実行し、その結果ファイルをアーカイブします。バックアップファイルには、プールに関する機密性の高い認証情報が含まれます。このため、安全な方法で保管してください。
プールメタデータを復元するには、最新のダンプファイルに対してxe pool-restore-database
コマンドを実行します。XenServerホストが完全に動作不能になった場合は、再度新規インストールを行い、その後でそのXenServerホストに対してpool-restore-database
コマンドを実行します。
プールデータベースの復元後、一部の仮想マシンは引き続きSuspended
状態として認識される場合があります。そのサスペンド状態のメモリが格納されている場所(suspend-VDI-uuid
フィールドで定義される)がローカルのストレージリポジトリである場合、ホストの再インストールにより仮想マシンが使用不可になります。このような仮想マシンを起動できるように Halted
状態にリセットするには、xe vm-shutdown vm=vm_name -force
コマンドまたはxe vm-reset-powerstate vm=vm_name -force
コマンドを使用します。
警告:
XenServerは、この方法を使用して復元されたホストのUUIDを保持します。このため、元のXenServerホストが動作しているときに、別の物理マシンにそのホストを復元すると、UUIDの競合が発生します。結果として、XenCenterは2番目のXenServerホストへの接続を拒否します。物理ホストを複製する目的でプールデータベースのバックアップを使用することは推奨されません。物理ホストを複製するには、自動インストールの機能を使用してください。詳しくは、「インストール」を参照してください。
プール環境でのバックアップ
リソースプール環境では、プールコーディネーターがプライマリのデータベースを提供し、このデータベースがプールメンバーホストによって同期され、ミラー化されます。これにより、プールに冗長性が提供されます。プール内のすべてのホストがプールデータベースの正確なコピーを保持しているため、任意のメンバーがプールコーディネーターとして動作することができます。メンバーホストをプールコーディネーターとして動作させる方法については、「ホストとリソースプール」を参照してください。
このレベルの冗長性では不十分なことがあります。たとえば、仮想マシンデータを格納する共有ストレージを複数サイトにバックアップし、プールメタデータを格納するローカルサーバーストレージをバックアップしない場合などです。共有ストレージを持つプールを作成し直すには、最初にプールコーディネーター上のpool-dump-database
ファイルのバックアップを行い、このファイルをアーカイブしておきます。このバックアップを新しいホストセットで後で復元するには:
-
インストールメディアを使用してXenServerの新規インストールを行うか、TFTPサーバーからネットワークブートを実行します。
-
新しいプールコーディネーターとして動作するホストで、
xe pool-restore-database
を実行します。 -
新しいプールコーディネーターで、
xe host-forget
コマンドを実行し、古いメンバーホストを消去します。 -
メンバーホストで
xe pool-join
コマンドを実行し、それらのホストを新しいプールに追加します。
XenServerホストのバックアップ
ここでは、XenServerホストのコントロールドメインのバックアップおよび復元の手順について説明します。以下の手順では、仮想マシンを格納するストレージリポジトリはバックアップしません。XenおよびXenServerエージェントを実行するコントロールドメイン(Dom0)のみをバックアップします。
注:
特権コントロールドメインは、ほかのパッケージでカスタマイズしないで、インストール後の状態で運用するのが最善です。このため復旧方法として、XenServerメディアからXenServerのインストールを正常に行えるよう、ネットワークブート環境を設定しておくことをお勧めします。通常、コントロールドメインをバックアップする必要はありませんが、プールのメタデータを保存することをお勧めします(「仮想マシンメタデータのバックアップ」参照)。このバックアップ方法は、プールメタデータのバックアップを補完するものです。
さらに、xeコマンドのhost-backup
とhost-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
が実行されます。
XenServerホストをバックアップするには:
十分な空きディスク容量があるリモートホスト上で、次のコマンドを実行します。
xe host-backup file-name=filename -h hostname -u root -pw password
<!--NeedCopy-->
これにより、コントロールドメインのファイルシステムの圧縮イメージが作成され、file-name
引数で指定したファイルに保存されます。
実行中のXenServerホストを復元するには:
-
特定のバックアップから実行中のXenServerホストを復元するには、そのXenServerホストが到達可能な状態で次のコマンドを実行します。
xe host-restore file-name=filename -h hostname -u root -pw password <!--NeedCopy-->
これにより、(
filename
で指定するファイルを格納するホストではなく)コマンドを実行したXenServerホストのハードディスクに、圧縮イメージが復元されます。この意味では、「復元」という言葉は紛らわしいかもしれません。通常、復元とはバックアップした状態に完全に戻すことを指します。この復元コマンドは、圧縮されたバックアップファイルを展開するだけですが、別のパーティション(/dev/sda2
)に書き込んでおり、現在のバージョンのファイルシステムを上書きしません。 -
ルートファイルシステムの復元されたバージョンを使用するには、XenServerのインストールCDを使用してXenServerホストを再起動し、[バックアップから復元] オプションを選択する必要があります。
バックアップからの復元後、XenServerホストを再起動すると、復元されたイメージから起動します。
-
最後に、次のコマンドを実行して、仮想マシンメタデータを復元します:
xe pool-restore-database file-name=/var/backup/pool-database-* -h hostname -u root -pw password <!--NeedCopy-->
注:
ここで説明したバックアップからの復元を行っても、バックアップパーティションは破棄されません。
クラッシュしたXenServerホストを再起動するには:
XenServerホストがクラッシュして到達不能になった場合は、XenServerのインストールCDを使用してアップグレードインストールを実行します。アップグレードインストールが完了したら、マシンを再起動し、XenCenterまたはリモートCLIからホストに到達可能であることを確認します。
その後、このセクションでの説明どおりにXenServerホストのバックアップを続行します。
仮想マシンのバックアップ
認定パートナーが提供するバックアップソリューションの使用をお勧めします。詳しくは、「Citrix Ready Marketplace」を参照してください。
これらのソリューションは、Cloud Software Groupではなく、それぞれのベンダーによって認定されています。これらのバックアップソリューションのサポートは、該当のソリューションベンダーによって提供されます。
XenServer Premium Editionのユーザーは、変更ブロックのみの、より高速なバックアップを利用できます。詳しくは、Citrixブログの変更ブロック追跡のバックアップAPIに関するエントリを参照してください。