Citrix Hypervisor

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

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

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

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

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

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

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

次のタイプの仮想マシンスナップショットがサポートされています:標準スナップショット、およびメモリを含んだスナップショット。

標準スナップショット

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

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

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

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

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

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

まず、メモリステータスを取得できるように、仮想マシンが実行または一時停止されていることを確認します。対象の仮想マシンを指定するには、vm=nameまたはvm=vm uuid引数を使用します。

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

xe vm-snapshot vm=vm uuid new-name-label=vm_snapshot_name
<!--NeedCopy-->

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

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

xe vm-checkpoint vm=vm uuid new-name-label=name of the checkpoint
<!--NeedCopy-->

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

たとえば、次のようになります:

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

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

注:

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

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

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

xe snapshot-list
<!--NeedCopy-->

このコマンドは、Citrix Hypervisorプール内のすべてのスナップショットを一覧表示します。

特定の仮想マシン上のスナップショットを一覧表示するには

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

xe vm-list
<!--NeedCopy-->

これにより、すべての仮想マシンとそのUUIDが表示されます。たとえば、次のようになります:

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

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

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

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

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

xe snapshot-list snapshot-of=vm uuid
<!--NeedCopy-->

たとえば、次のようになります:

xe snapshot-list snapshot-of=2d1d9a08-e479-2f0a-69e7-24a0e062dd35
<!--NeedCopy-->

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

    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
<!--NeedCopy-->

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

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

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

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

    xe snapshot-revert snapshot-uuid=snapshot uuid
    <!--NeedCopy-->
    

    たとえば、次のようになります:

    xe snapshot-revert snapshot-uuid=b3c0f369-59a1-dd16-ecd4-a1211df29886
    <!--NeedCopy-->
    

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

注:

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

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

スナップショットの削除

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

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

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

    xe snapshot-uninstall snapshot-uuid=snapshot-uuid
    <!--NeedCopy-->
    
  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
    yes
    All objects destroyed
<!--NeedCopy-->

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

xe snapshot-destroy snapshot-uuid=snapshot-uuid
<!--NeedCopy-->

たとえば、次のようになります:

xe snapshot-destroy snapshot-uuid=d7eefb03-39bc-80f8-8d73-2ca1bab7dcff
<!--NeedCopy-->

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

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

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

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

    xe snapshot-copy new-name-label=vm-template-name \
          snapshot-uuid=uuid of the snapshot
    <!--NeedCopy-->
    

    たとえば、次のようになります:

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

    注:

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

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

    xe template-list
    <!--NeedCopy-->
    

    このコマンドは、Citrix Hypervisorサーバー上のすべてのテンプレートを一覧表示します。

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

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

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

    xe snapshot-export-to template snapshot-uuid=snapshot-uuid \
          filename=template-  filename
    <!--NeedCopy-->
    

    たとえば、次のようになります:

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

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

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

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

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

テンプレートの使用の詳細については 、XenCenterドキュメントの「VMの作成」 および「VMの管理」の記事を参照してください。

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

スケジュールされたスナップショット機能では、重要なサービスを提供する仮想マシンをバックアップおよび復元するためのシンプルなユーティリティが提供されます。この機能では、定期的にスナップショットが自動作成されるように設定できます。スケジュールされたスナップショットは、リソースプールレベルで特定の仮想マシンのスナップショットスケジュールを作成します。スナップショットのスケジュールを有効にすると、指定した時刻、曜日、または週に仮想マシンのスナップショットが作成されます。仮想マシンの用途に応じていくつかのスケジュールされたスナップショットを作成して、異なるスケジュールを定義できます。仮想マシンの用途に応じていくつかのスケジュールされたスナップショットを作成して、異なるスケジュールを定義できます。

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

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

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

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

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

詳細については、XenCenterのドキュメントの 「スケジュールされたスナップショット 」を参照してください。