Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

12.2. バックアップ/リストア API を使用した仮想マシンのバックアップと復元

12.2.1. バックアップ/リストア API

バックアップ/リストア API は、全体またはファイルレベルでの仮想マシンのバックアップと復元を可能にする機能のコレクションです。この API は、ライブスナップショットや REST API などの Red Hat Virtualization の複数のコンポーネントを組み合わせて、独立系のソフトウェアプロバイダーの提供するバックアップソフトウェアが実装された仮想マシンにアタッチできる一時ボリュームを作成/操作します。

サポート対象のサードパーティーバックアップベンダーについては、「The Red Hat Ecosystem」をご確認ください。

12.2.2. 仮想マシンのバックアップ

バックアップ/リストア API を使用して仮想マシンをバックアップします。以下の手順は、バックアップ用の仮想マシンと、バックアップを管理するソフトウェアのインストール先となる仮想マシンの合計 2 台が用意されていることを前提とします。

仮想マシンのバックアップ

  1. REST API を使用して、バックアップする仮想マシンのスナップショットを作成します。

    POST /api/vms/11111111-1111-1111-1111-111111111111/snapshots/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <snapshot>
        <description>BACKUP</description>
    </snapshot>
    注記

    仮想マシンのスナップショットを作成すると、スナップショット作成時点の仮想マシンの設定データのコピーは、そのスナップショット下の initialization 内の configuration 属性の data 属性に保管されます。

    重要

    共有可能とマークされたディスクまたは直接 LUN ディスクをベースとするディスクのスナップショットは作成できません。

  2. スナップショット下の data 属性から仮想マシンの設定データを取得します。

    GET /api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  3. スナップショットのディスク ID とスナップショット ID を特定します。

    GET /api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111/disks HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  4. バックアップ用仮想マシンにスナップショットをアタッチします。その際、正しいインターフェースタイプ (例: virtio_scsi) を設定してアクティブなディスクとしてアタッチします。

    POST /api/vms/22222222-2222-2222-2222-222222222222/diskattachments/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk_attachment>
    	<active>true</active>
    	<interface>_virtio_scsi_</interface>
    	<disk id="11111111-1111-1111-1111-111111111111">
    	<snapshot id="11111111-1111-1111-1111-111111111111"/>
    	</disk>
    </disk_attachment>
  5. バックアップ用仮想マシンでバックアップソフトウェアを使用して、スナップショット上のデータをバックアップします。
  6. バックアップ用仮想マシンからスナップショットディスクのアタッチを解除します。

    DELETE /api/vms/22222222-2222-2222-2222-222222222222/diskattachments/11111111-1111-1111-1111-111111111111  HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
  7. オプションとして、スナップショットを削除します。

    DELETE /api/vms/11111111-1111-1111-1111-111111111111/snapshots/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml

別の仮想マシンにインストールしたバックアップソフトウェアを使用して、一定時点の仮想マシンがバックアップされました。

12.2.3. 仮想マシンの復元

バックアップ/リストア API を使用してバックアップした仮想マシンを復元します。以下の手順は、以前のバックアップの管理に使用するソフトウェアがインストール済みの仮想マシン 1 台が用意されていることを前提とします。

仮想マシンの復元

  1. 管理ポータルで、バックアップを復元するためのフローティングディスクを作成します。フローティングディスクの作成方法についての説明は「仮想ディスクの作成」を参照してください。
  2. バックアップ用仮想マシンにディスクをアタッチします。

    POST /api/vms/22222222-2222-2222-2222-222222222222/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
    </disk>
  3. バックアップソフトウェアを使用して、ディスクにバックアップを復元します。
  4. バックアップ用仮想マシンからディスクをデタッチします。

    DELETE /api/vms/22222222-2222-2222-2222-222222222222/disks/11111111-1111-1111-1111-111111111111 HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <action>
        <detach>true</detach>
    </action>
  5. 復元する仮想マシンの設定データを使用して、新規仮想マシンを作成します。

    POST /api/vms/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <vm>
        <cluster>
            <name>cluster_name</name>
        </cluster>
        <name>_NAME_</name>
        ...
    </vm>
  6. 新規仮想マシンにディスクをアタッチします。

    POST /api/vms/33333333-3333-3333-3333-333333333333/disks/ HTTP/1.1
    Accept: application/xml
    Content-type: application/xml
    
    <disk id="11111111-1111-1111-1111-111111111111">
    </disk>

バックアップ/リストア API を使用して作成したバックアップで、仮想マシンを復元しました。