仮想マシンスナップショット

XenServerには、便利なスナップショット機能が用意されています。この機能では、仮想マシンのストレージとメタデータのスナップショットを作成して、その時点の仮想マシンの状態を保存しておくことができます。スナップショットを作成するときは、自己矛盾のないディスクイメージが保存されるように、必要に応じて一時的にデータ入出力が停止します。

スナップショットにより、仮想マシンのテンプレート化と類似の機能が提供されます。仮想マシンのスナップショットには、すべてのストレージ情報と、接続している仮想インターフェイス(VIF)などの仮想マシン設定が含まれ、バックアップ用にエクスポートしたり復元したりできます。スナップショットはすべての種類のストレージでサポートされています。ただし、ストレージがLVMベースである場合、次の要件を満たす必要があります:

  • 以前のバージョンのXenServerでストレージリポジトリが作成された場合 、アップグレードされている必要があります
  • ボリュームはデフォルトの形式にする必要があります(type=rawボリュームのスナップショットは作成できません)

スナップショット処理では、次の2段階のプロセスが実行されます。

  • メタデータをテンプレートとして取り込む。

  • ディスクのVDIスナップショットを作成する。

XenServerでは、標準スナップショット、休止スナップショット、およびメモリを含んだスナップショットがサポートされています。

標準スナップショット

標準スナップショットはクラッシュ整合状態であり、Linux仮想マシンを含むすべての種類の仮想マシンで作成できます。

休止スナップショット

休止スナップショットでは、Windows Volume Shadow Copy Service(VSS)の機能を使用して、特定時点のアプリケーション整合スナップショットを作成できます。VSSフレームワークにより、VSS対応のアプリケーション(Microsoft SQL Serverなど)では、スナップショット作成に備えてメモリ内のデータをディスク上に保存できます。

このため、休止スナップショットはより安全に復元できますが、スナップショット作成時のシステムパフォーマンスが影響を受ける場合があります。また、負荷状態によってはスナップショット作成に失敗するため、複数回の試行が必要になる場合があります。

XenServer では、以下のオペレーティングシステムで休止スナップショットがサポートされています。

  • Windows Server 2016

  • Windows Server 2012 R2

  • Windows Server 2012

  • Windows Server 2008 R2

  • Windows Server 2008(32ビット/64ビット)

Windows 8.1、Windows 8、Windows 7、Windows 2000、Windows XP、Windows 2003、Windows Vistaはサポートされていません。休止スナップショットについて詳しくは、「休止スナップショットの注意事項」を参照してください。

メモリを含んだスナップショット

仮想マシンのディスク(ストレージ)およびメタデータに加えて、仮想マシンのメモリ(RAM)をスナップショットに含めることができます。この機能は、ソフトウェアをアップグレードする場合、またはパッチを適用する場合に役立ち、変更前の仮想マシンのメモリ(RAM)に戻すこともできます。この種類のスナップショットへの復元時に仮想マシンを再起動する必要はありません。

メモリを含んだスナップショットは、管理API、xe CLI、またはXenCenterを使って、実行中またはサスペンド状態の仮想マシンで作成できます。

仮想マシンスナップショットの作成

スナップショットを作成する前に、オペレーティングシステム固有の設定と考慮事項について、次の情報を参照してください。

まず、メモリの状態を取得できるように、仮想マシンが実行中またはサスペンド状態であることを確認します。対象の仮想マシンを指定するには、vm=nameまたはvm=vm uuid引数を使用します。

仮想マシンのスナップショットを作成するには、vm-snapshotおよびvm-snapshot-with-quiesceコマンドを実行します。

xe vm-snapshot vm=vm uuid new-name-label=vm_snapshot_name
xe vm-snapshot-with-quiesce vm=vm uuid new-name-label=vm_snapshot_name

メモリを含んだスナップショットの作成

次のvm-checkpointコマンドを実行します。このとき、メモリを含んだスナップショットであることを示す名前を指定すると便利です:

xe vm-checkpoint vm=vm uuid new-name-label=name of the checkpoint

XenServerでスナップショットが作成されると、そのUUIDが表示されます。

次に例を示します。

xe vm-checkpoint vm=2d1d9a08-e479-2f0a-69e7-24a0e062dd35 \
new-name-label=example_checkpoint_1
b3c0f369-59a1-dd16-ecd4-a1211df29886

メモリを含んだスナップショットを作成するには、各ディスクに4MB以上の空き領域と、RAMと同等のサイズ、および20%程度のオーバーヘッドが必要です。つまり、RAMのサイズが256MBである場合は、約300MBのストレージが必要です。

注:

メモリを含んだスナップショットの作成中に、仮想マシンが一時的に停止し、使用できない状態になります。

XenServerプールのすべてのスナップショットの一覧を表示するには

snapshot-listコマンドを実行します:

xe snapshot-list

これにより、XenServerプール内のすべてのスナップショットの一覧が表示されます。

特定の仮想マシンから作成したスナップショットの一覧を表示するには

vm-listコマンドを実行して、特定の仮想マシンのUUIDを取得します。

xe vm-list

これにより、すべての仮想マシンとそのUUIDが表示されます。次に例を示します。

xe vm-list
uuid ( RO): 116dd310-a0ef-a830-37c8-df41521ff72d
name-label ( RW): Windows Server 2012 (1)
power-state ( RO): halted

uuid ( RO): 96fde888-2a18-c042-491a-014e22b07839
name-label ( RW): Windows 2008 R2 (1)
power-state ( RO): running

uuid ( RO): dff45c56-426a-4450-a094-d3bba0a2ba3f
name-label ( RW): Control domain on host
power-state ( RO): running

また、仮想マシンのリストをフィールドの値でフィルタして、対象の仮想マシンを指定することもできます。

たとえば、power-state=haltedを指定すると、power-stateフィールドの値がhaltedである仮想マシンだけが対象になります。複数の仮想マシンがフィルタ条件に一致し、そのすべてのオブジェクトに対してコマンドを実行する場合は、オプション--multipleを指定する必要があります。xe vm-list params=allコマンドを使用して、一致するフィールドの完全なリストを取得します。

目的の仮想マシンのUUIDを指定して、次のコマンドを実行します。

xe snapshot-list snapshot-of=vm uuid

次に例を示します。

xe snapshot-list snapshot-of=2d1d9a08-e479-2f0a-69e7-24a0e062dd35

これにより、この仮想マシンのスナップショットの一覧が表示されます。

uuid ( RO): d7eefb03-39bc-80f8-8d73-2ca1bab7dcff
name-label ( RW): Regular
name-description ( RW):
snapshot_of ( RO): 2d1d9a08-e479-2f0a-69e7-24a0e062dd35
snapshot_time ( RO): 20090914T15:37:00Z

uuid ( RO): 1760561d-a5d1-5d5e-2be5-d0dd99a3b1ef
name-label ( RW): Snapshot with memory
name-description ( RW):
snapshot_of ( RO): 2d1d9a08-e479-2f0a-69e7-24a0e062dd35
snapshot_time ( RO): 20090914T15:39:45Z

仮想マシンをスナップショット作成時の状態に戻す

仮想マシンを特定のスナップショット作成時の状態に復元するには、そのスナップショットのUUIDを指定して、snapshot-revertコマンドを実行します:

  1. 次のsnapshot-listコマンドを実行して、復元先のスナップショットのUUIDを取得します:

    xe snapshot-list
    
  2. 取得したUUIDを指定して、次のコマンドを実行します。

    xe snapshot-revert snapshot-uuid=snapshot uuid
    

    次に例を示します。

    xe snapshot-revert snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886
    

    仮想マシンがスナップショット作成時の状態に戻り、サスペンド状態になります。

注:

  • スナップショットのシックプロビジョニングのためのディスク容量が足りない場合は、ディスク領域が解放されるまでスナップショットを復元できません。この場合は、操作を再試行してください。

  • その仮想マシンの任意のスナップショットを復元先として指定できます。また、この復元処理により既存のスナップショットが削除されることはありません。

スナップショットの削除

スナップショットを削除するには、以下の手順に従います:

  1. 次のsnapshot-listコマンドを実行して、復元先のスナップショットのUUIDを取得します:

    xe snapshot-list
    
  2. 取得したUUIDを指定して、次のsnapshot-uninstallコマンドを実行します:

    xe snapshot-uninstall snapshot-uuid=snapshot-uuid
    
  3. これにより、仮想マシンおよびVDIが削除されることを警告するメッセージが表示されます。処理を続行するには、yesと入力します。

次に例を示します。

xe snapshot-uninstall snapshot-uuid=1760561d-a5d1-5d5e-2be5-d0dd99a3b1ef
The following items are about to be destroyed
VM : 1760561d-a5d1-5d5e-2be5-d0dd99a3b1ef (Snapshot with memory)
VDI: 11a4aa81-3c6b-4f7d-805a-b6ea02947582 (0)
VDI: 43c33fe7-a768-4612-bf8c-c385e2c657ed (1)
VDI: 4c33c84a-a874-42db-85b5-5e29174fa9b2 (Suspend image)
Type 'yes' to continue
はい
All objects destroyed

スナップショットのメタデータのみを削除する場合は、次のコマンドを実行します。

xe snapshot-destroy snapshot-uuid=snapshot-uuid

次に例を示します。

xe snapshot-destroy snapshot-uuid=d7eefb03-39bc-80f8-8d73-2ca1bab7dcff

スナップショットテンプレート

スナップショットから新しいテンプレートを作成する

スナップショットから仮想マシンテンプレートを作成できます。ただし、メモリの状態は削除されます。

  1. 次のsnapshot-copyコマンドを実行します。ここで、new-name-labelでテンプレートの名前を指定します:

    xe snapshot-copy new-name-label=vm-template-name \
    snapshot-uuid=uuid of the snapshot
    

    次に例を示します。

    xe snapshot-copy new-name-label=example_template_1
    snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886
    

    注:

    これにより作成されるテンプレートは、スナップショットと同じリソースプールに属します。つまり、そのプールのXenServerデータベース内にのみ格納されます。

  2. テンプレートが作成されたことを確認するには、次のtemplate-listを実行します:

    xe template-list
    

    これにより、そのXenServerホスト上のすべてのテンプレートが一覧表示されます。

スナップショットをテンプレートとしてエクスポートする

仮想マシンのスナップショットをエクスポートすると、ディスクイメージを含む仮想マシンの完全な複製が、ローカルコンピュータ上に格納されます。このファイルのファイル拡張子は.xvaです。

  1. snapshot-export-to-templateコマンドを使用してテンプレートファイルを作成します:

    xe snapshot-export-to template snapshot-uuid=snapshot-uuid \
    filename=template-  filename
    

    次に例を示します。

    xe snapshot-export-to-template snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886 \
    filename=example_template_export
    

仮想マシンのエクスポート/インポート機能は、さまざまな方法で使用できます:

  • 仮想マシンのバックアップのための便利な機能として。障害発生時には、エクスポートした仮想マシンファイルを使用して仮想マシン全体を復元できます。

  • 仮想マシンを簡単に複製する方法として。たとえば、よく使用する特別な目的のサーバー設定の仮想マシンなどです。思いどおりに仮想マシンを設定、エクスポート、およびインポートして、元の仮想マシンの複製を作成できます。

  • 仮想マシンを簡単にほかのサーバーに移動する方法として。

テンプレートの使用について詳しくは、「仮想マシンの作成」およびXenCenterのヘルプで仮想マシンの管理について参照してください。

休止スナップショットの注意事項

注:

VSSをサポートするには、Windows仮想マシンにXen VSSプロバイダをインストールする必要があります。このプロバイダをインストールするには、XenServer Toolsに付属のinstall- XenProvider.cmdスクリプトを実行します。詳しくは、「Windows仮想マシン」を参照してください。

一般に、仮想マシンでそのVDIスナップショット(VDIの複製ではなく)にアクセスするには、VSSインターフェイスを使用する必要があります。XenServer管理者はsnapmanager=trueの属性を仮想マシンother-configに追加して、他の仮想マシンからVDIのスナップショットをインポートすることができます。

警告:

この設定ではセキュリティ上の脆弱性が発生するため、注意してください。この機能を使用すると、VSSレイヤにより生成される、仮想マシン内の移動可能なスナップショットIDを使用して、VSSスナップショットをほかの仮想マシンに接続してバックアップできるようになります。

VSS休止タイムアウト:Microsoftの休止期間は10秒に固定されています。このため、スナップショット作成が休止期間内に完了しない場合があります。たとえば、XAPIデーモンが、ストレージリポジトリのスキャンなど、スナップショットを阻害するようなタスクをキューに入れると、VSSスナップショットがタイムアウトにより失敗する場合があります。この場合は、操作を再試行してください。

注:

仮想マシンに多くの仮想ブロックデバイス(VBD)が接続されていると、タイムアウトが発生することがあります。このため、Citrixは仮想マシンに3つ以上のVBDを接続しないことをお勧めします。ただし、この問題を回避する方法があります。仮想マシンのすべてのVDIが異なるストレージリポジトリ上でホストされていると、その仮想マシンに3つ以上のVBDが接続されていても、VSSスナップショットに成功する可能性が高くなります。

仮想マシンのすべてのディスクのVSSスナップショット:VSSスナップショット作成時に使用可能なすべてのデータを格納する。XAPIマネージャでは、XenServerストレージマネージャAPIでスナップショット作成可能な、仮想マシンのすべてのディスクおよび関連メタデータがスナップショットとして収集されます。VSSレイヤでディスクのサブセットのスナップショットが要求された場合は、仮想マシンの完全なスナップショットは作成されません。

vm-snapshot-with-quiesce:による起動可能なスナップショット仮想マシンイメージ: XenServer VSSハードウェアプロバイダにより、起動可能ボリュームも含め、スナップショットボリュームが書き込み可能に設定されます。

Windows仮想マシンのダイナミックディスクでホストされるボリュームのVSSスナップショットvm-snapshot-with-quiesceコマンドおよびXenServer VSSハードウェアプロバイダでは、Windows仮想マシンのダイナミックディスクでホストされるボリュームのスナップショットをサポートしません。

注:

VSSをサポートするには、Windows仮想マシンにXen VSSプロバイダをインストールする必要があります。このプロバイダをインストールするには、XenServer Toolsに付属のinstall-XenProvider.cmdスクリプトを実行します。詳しくは、「Windows仮想マシン」を参照してください。

スケジュールされたスナップショット

スケジュールされたスナップショットについてスケジュールされたスナップショットについてスケジュールされたスナップショット機能では、重要なサービスを提供する仮想マシンを保護するためのシンプルな手段が提供されます。この機能では、定期的にスナップショットが自動作成されるように設定できます。スケジュールされたスナップショットは、リソースプールレベルで特定の仮想マシンのスナップショットスケジュールを作成します。スケジュールされたスナップショットを有効にすると、指定した時刻、曜日、または週に仮想マシンのスナップショットが作成されます。仮想マシンの用途に応じていくつかのスケジュールされたスナップショットを作成して、異なるスケジュールを定義できます。1つの仮想マシンに同時に複数のスナップショットスケジュールを割り当てることはできません。

XenCenter のこの機能を使用するためのいくつかのツールが用意されています。

  • スケジュールされたスナップショットを定義するには、新規スナップショットスケジュールウィザードを使用します。

  • リソースプールのスケジュールされたスナップショットを有効/無効化、変更、削除するには、[VM スナップショットスケジュール] ダイアログボックスを使用します。

  • スナップショットスケジュールを編集するには、[VMスナップショットスケジュール] ダイアログボックスから [プロパティ] ダイアログボックスを開きます。

  • スケジュールされたスナップショットから仮想マシンを復元するには、[スナップショット]タブでそのスナップショットを選択し、スナップショットへの復元を行います。

スケジュールされたスナップショットについて詳しくは、XenCenterのヘルプを参照してください。