第3章 Block Storage バックアップサービスの使用

本章では、Block Storage バックアップサービスを使用して完全バックアップまたは増分バックアップを実行する方法、ボリュームにバックアップを復元する方法、および基本的なトラブルシューティングのヒントを説明します。

3.1. 完全バックアップ

3.1.1. フルボリュームバックアップの作成

ボリュームのバックアップを作成するには、bakcup-create コマンドを使用します。デフォルトでは、このコマンドはボリュームの完全バックアップを作成します。ただし、ボリュームに既存のバックアップがある場合は、増分バックアップを作成できます。増分バックアップの作成に関する詳細は、ストレージ ガイドセクション 2.4.1.2 増分バックアップの作成 を参照してください。

アクセス可能なボリュームのバックアップを作成できます。つまり、管理者特権を持つユーザーは、所有者に関係なく、どのボリュームでもバックアップを作成できます。詳細は「管理者としてのボリュームバックアップの作成」を参照してください。

手順

  1. バックアップを作成するボリュームの ID または表示名を表示します。

    # cinder list
  2. ボリュームをバックアップします。

    # cinder backup-create --name <full_backup_name> _VOLUME_

    VOLUME の箇所は、バックアップするボリュームの ID または Display Name に置き換えます。以下に例を示します。

      +-----------+--------------------------------------+
      |  Property |                Value                 |
      +-----------+--------------------------------------+
      |     id    | e9d15fc7-eeae-4ca4-aa72-d52536dc551d |
      |    name   |                 None                 |
      | volume_id | 5f75430a-abff-4cc7-b74e-f808234fa6c5 |
      +-----------+--------------------------------------+

    作成されるバックアップの volume_id は、ソースボリュームの ID と同じです。

  3. ボリュームのバックアップが完了したことを確認します。

    # cinder backup-list

    ボリュームバックアップの作成は、バックアップエントリーの Status が利用可能になると完了します。

3.1.2. 管理者としてのボリュームバックアップの作成

デフォルトの admin アカウントなどの管理者権限を持つユーザーは、OpenStack が管理するボリュームをバックアップできます。管理者が管理者以外のユーザーが所有するボリュームのバックアップを作成すると、デフォルトでボリュームの所有者からバックアップが非表示になります。

手順

ボリュームをバックアップし、特定のテナントでバックアップを利用できるようにするには、以下を実行します。

# cinder --os-tenant-name _TENANTNAME_ backup-create _VOLUME_

詳細は以下のようになります。

  • <TENANTNAME> は、バックアップを利用可能にするテナントの名前です。
  • <VOLUME> は、バックアップを作成するボリュームの名前または ID です。

この操作を実行する場合、バックアップのサイズは、管理者のテナントではなく TENANTNAME のクォータに対してカウントされます。

3.1.3. ボリュームからのバックアップメタデータのエクスポート

ボリュームからバックアップメタデータをエクスポートおよび保存できます。ボリュームからバックアップメタデータをエクスポートして保存することで、Block Storage データベースで致命的な損失が発生した場合でも、ボリュームを復元できます。これは、ボリュームのサブセットの一部のみの完全なバックアップが必要な場合に役立ちます。

ボリュームのバックアップを作成し、そのメタデータをエクスポートすると、別の Block Storage データベースまたはクラウドサービスにボリュームを復元できます。ボリュームの作成時に UUID 暗号化を指定すると、ボリュームの暗号化はバックアップメタデータに保持されます。復元された暗号化されたボリュームは、認証情報を使用してアクセスできます。

手順

以下のコマンドを実行して、バックアップメタデータをエクスポートおよび保存します。

# cinder backup-export _BACKUPID_

BACKUPID は、ボリュームバックアップの ID または名前に置き換えます。以下に例を示します。

+----------------+------------------------------------------+
|    Property    |                Value                     |
+----------------+------------------------------------------+
| backup_service |     cinder.backup.drivers.swift          |
|   backup_url   | eyJzdGF0dXMiOiAiYXZhaWxhYmxlIiwgIm9iam...|
|                | ...4NS02ZmY4MzBhZWYwNWUiLCAic2l6ZSI6IDF9 |
+----------------+------------------------------------------+

ボリュームバックアップメタデータは、backup_service 値と backup_url 値で構成されます。

3.1.4. 使用中のボリュームのバックアップ

cinder backup-create コマンドを使用して、--force オプションを追加して、使用中のボリュームのバックアップを作成することができます。

注記

--force オプションは、Block Storage バックエンドスナップショットのサポートに依存しており、ほとんどのドライバーでサポートされる必要があります。使用しているバックエンドのドキュメントを確認することで、スナップショットのサポートを確認できます。

--force を使用することで、ドライブを静止していないことを確認し、バックアップを実行します。この方法を使用すると、クラッシュの一貫性はありますが、アプリケーションの一貫性はありません。バックアップが作成されます。つまり、バックアップの実行時に実行していたアプリケーションを認識しません。ただし、データはそのままになります。

手順

使用中のボリュームのバックアップを作成するには、次のコマンドを実行します。

# cinder backup-create _VOLUME_ --incremental --force

3.1.5. スナップショットのバックアップ

スナップショットから完全バックアップを作成する場合は、そのスナップショットに関連付けられたボリューム ID を使用します。

手順

  1. cinder snapshot list を使用して、バックアップを作成するスナップショットのスナップショット ID を特定します。

    # cinder snapshot-list --volume-id _VOLUME_ID_
  2. スナップショットの名前が の場合は、以下の例を使用して ID を特定できます。

    # cinder snapshot-show _SNAPSHOT_NAME_
  3. スナップショットのバックアップを作成します。

    # cinder backup-create _VOLUME_ --snapshot-id=_SNAPSHOT_ID_
    注記

    --snapshot-id を使用すると、NFS ボリュームのスナップショットベースのバックアップが失敗します。これは既知の問題です。