スナップショットの整合性グループの作成

スナップショット一貫性グループを作成して、仮想サーバーインスタンスにアタッチされている複数のボリュームの特定時点のコピーを取得します。 必要に応じて、起動ボリュームを含めるか除外してください。

コンソール、CLI、API、およびTerraformで一貫性グループを作成できます。

一貫性グループのスナップショットを要求すると、システムはスナップショットを取得する前に、すべての書き込み操作が完了していることを確認します。 その後、システムは、仮想サーバーインスタンスに同時に接続されている、タグ付けされたすべての Block Storage ボリュームのスナップショットを生成します。 接続されたボリュームの数やサイズ、および取得対象となるデータの量によっては、わずかなIOの一時停止が発生する場合があります。 このIOの一時停止時間は、数ミリ秒から最大4秒まで変動する可能性があります。

作業を始める前に、以下の情報を用意してください:

  • 一貫性グループの固有の名前。 名前は64文字を超えてはなりません。 指定しない場合は、システムが自動的に名前を生成します。 (一貫性グループ内のスナップショットは、グループ名の最初の16文字と、自動生成された3~4文字を組み合わせて命名されるため、その名前も一意になります。)
  • ソースボリュームのID。
  • リソースグループID(指定は任意)。 ただし、スナップショットの作成後は、リソースグループを変更することはできません。
  • スナップショットに付けたいタグがあれば、こちらを入力してください。

異なる世代のスナップショットを含む一貫性グループの作成はサポートされていません。

第1世代のボリュームを、許可リストに登録された「 sdp 」プロファイル に移行することを 検討してください。 sdp プロファイルは、第1世代のプロファイルに比べ、より優れたコストパフォーマンスと柔軟性を備えています。 詳しくは、Block Storage for VPC プロファイルを参照してください。

コンソールでの一貫性グループのスナップショットの作成

コンソールでは、稼働中の仮想サーバーインスタンスにアタッチされている Block Storage for VPC ボリュームの一貫性グループスナップショットを作成できます。

  1. 「 ナビゲーションメニュー 」のアイコン( メニューアイコン > インフラ VPCアイコン > ストレージ > Block Storage のスナップショット )をクリックしてください。
  2. 最初は空になっている一貫性グループのリストから、「 作成 」をクリックします。
  3. スナップショットグループを定義するために必要な情報を入力し、スナップショット一貫性グループに含めたいボリュームを持つ仮想サーバーインスタンスを選択してください。
スナップショットを作成するための設定
フィールド 値
ロケーション このスナップショットセットの対象となる地理的範囲と地域を指定してください。
スナップショットの種類 複数のボリュームを選択してください。
仮想サーバー・インスタンス リストからサーバーインスタンスを選択してください。
整合性グループ名 一貫性グループに一意の名前を指定してください。 名前は64文字を超えてはなりません。 この欄を空欄のままにすると、システムが自動的に名前を生成します。 一貫性グループ内のスナップショットには、グループ名の最初の16文字と、自動生成された3~4文字を組み合わせた名前が付けられます。
リソース・グループ スナップショットのリソース・グループを選択するか、デフォルトを使用します。 スナップショットの作成後にリソース・グループを変更することはできません。
タグ このリソースを識別するために使用するユーザータグを指定してください。
アクセス管理タグ このリソースに適用する アクセス管理タグを 指定してください。
Volumes リストから、グループに含めたいボリュームを選択してください。
  1. 「作成」 をクリックします。 最初に表示されていた画面に戻ります。 スナップショットおよび一貫性グループの作成中、および作成が完了した際に、メッセージが表示されます。 スナップショットと一貫性グループは、「 Block Storage のVPC用スナップショット」ページのそれぞれのタブに表示されます。 詳細については、 コンソールでのスナップショットの詳細の表示を 参照してください。

CLI から一貫性グループのスナップショットを作成する

CLI を使用する前に、IBM Cloud CLI および VPC CLI プラグインをインストールする必要があります。 詳しくは、CLI の前提条件を参照してください。

  1. IBM Cloud® にログインしてください。

    ibmcloud login --sso -a cloud.ibm.com
    

    このコマンドを実行すると、URL が返され、パスコードの入力を求めるプロンプトが表示されます。 ブラウザーでその URL にアクセスしてログインします。 成功すると、ワンタイム・パスコードが表示されます。 そのパスコードをコピーし、プロンプトに応答として貼り付けます。 認証が成功すると、 アカウントを選択するよう求められます。 複数のアカウントアクセスできる場合は、ログインしたいアカウントを選択してください。 残りのプロンプトにすべて応答して、ログインを完了します。

  2. スナップショットの整合性グループでキャプチャしたいインスタンスにアタッチされているボリュームを列挙します。 出力に含まれるボリュームIDに注意してください。

    ibmcloud is instance INSTANCE
    
  3. snapshot-consistency-group-create コマンドを使用して、一貫性グループを作成します。 一貫性グループに含まれる各スナップショットについて、新しいスナップショットの名前と、ソースボリュームのIDを指定してください。

    ソースボリュームに user_managed 暗号化が適用されている場合は、 --encryption_key を指定する必要があります。 --encryption_key プロパティは、それ以外の場合は指定してはなりません。

    ibmcloud is snapshot-consistency-group-create --snapshots '[{
         "name": "snapshot-no-1",
         "source_volume": {"id": "r106-bf595773-9922-4dd4-9a3c-998b10022e0c"},
         "user_tags": ["env:dev", "env:test"]
    }, {
         "name": "snapshot-no-2",
         "source_volume": {"id": "r106-aeb2bbe6-1d3c-4186-82ce-abddb03e243e"},
         "user_tags": ["env:dev", "env:test"]
    }]' --delete-snapshot-on-delete false --name multiple-snapshots-consistency-group-1
    Creating snapshot consistency group under account Test Account as user test.user@ibm.com...
    ID                          r006-4625d29b-3ac9-4bee-aca8-9366c4fd0c44
    Name                        multiple-snapshots-consistency-group-1
    CRN                         crn:v1:bluemix:public:is:us-south:a/a1234567::snapshot-consistency-group:r006-4625d29b-3ac9-4bee-aca8-9366c4fd0c44
    Href                        https://us-south.iaas.cloud.ibm.com/v1/snapshots/r006-4625d29b-3ac9-4bee-aca8-9366c4fd0c44
    Status                      pending
    Backup policy job           -
    Backup policy plan          -
    Delete snapshot on delete   false
    Source Snapshot             -
    Resource group              ID                                 Name
                                11caaa983d9c4beb82690daab08717e9   Default
    Created                     2023-12-05T17:32:53+05:30
    Service Tags                -
    

利用可能なコマンドオプションの詳細については、以下を参照してください ibmcloud is snapshot-consistency-group-create を参照してください。

API を使用して一貫性グループのスナップショットを作成する

作業を開始する前に、スナップショット一貫性グループにキャプチャしたい仮想サーバーインスタンスの詳細情報を取得してください。 仮想サーバーインスタンスについては、[GET /instances/ {id}](/docs/apis/vpc/latest#get-instance){: external} を使用してください。 volume_attachments のCRNまたはID、および仮想サーバーインスタンスの場合は boot_volume_attachment をメモしておいてください。

次のサンプルリクエストに示すように、 VPC API の /snapshot_consistency_groups メソッドを呼び出すことで、プログラムから一貫性グループを作成できます。

curl -X POST \
"$vpc_api_endpoint/v1/snapshot_consistency_groups?version=2023-12-05&generation=2"\
 -H "Authorization: Bearer $iam_token" \
 -d '{
   "delete_snapshots_on_delete":true,
   "name": "my-snapshot-consistency-group",
   "resource_group":{"id": "2d1bb5a8-40a8-447a-acf7-0eadc8aeb054"},
   "snapshots": {
    {
     "name": "my-snapshot-1",
     "source_volume": {"crn": "crn:[...]"},
     "encryption_key"; "crn:[...]"
    },
    {
     "name": "my-snapshot-2",
     "source_volume": {"crn": "crn:[...]"},
     "encryption_key"; "crn:[...]"
    },
   }"

ソースボリュームに user_managed 暗号化が適用されている場合は、 encryption_key を指定する必要があります。 encryption_key プロパティは、それ以外の場合は指定してはなりません。

正常な応答は、次の例のようになります。

{
  "created_at": "2023-12-05T20:18:18Z",
  "crn": "crn:[...]",
  "delete_snapshots_on_delete": true,
  "href": "https://us-south.iaas.cloud.ibm.com/v1/snapshot_consistency_groups/r006-f6bfa329-0e36-433f-a3bb-0df632e79263",
  "id": "r006-f6bfa329-0e36-433f-a3bb-0df632e79263",
  "lifecycle_state": "pending",
  "name": "my-snapshot-consistency-group",
  "resource_group": {
    "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/678523bcbe2b4eada913d32640909956",
    "id": "2d1bb5a8-40a8-447a-acf7-0eadc8aeb054",
    "name": "Default"
  },
  "resource_type": "snapshot_consistency_group",
  "service_tags": [],
  "snapshots": [
    {
      "crn": "crn:[...]",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/snapshots/r006-076191ba-49c2-4763-94fd-c70de73ee2e6",
      "id": "r006-076191ba-49c2-4763-94fd-c70de73ee2e6",
      "name": "my-snapshot-1",
      "resource_type": "snapshot"
    },
    {
      "crn": "crn:[...]",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/snapshots/r006-07e34f34-49c2-4763-94fd-c70de73ae342",
      "id": "r006-07e34f34-49c2-4763-94fd-c70de73ae342",
      "name": "my-snapshot-2",
      "resource_type": "snapshot"
    }
  ]
}

Terraform を使用した一貫性グループのスナップショットの作成

Terraform を使用するには、Terraform CLI をダウンロードし、 IBM Cloud® プロバイダプラグインを設定してください。 詳細については、 「Terraform のはじめ方」を 参照してください。

VPC インフラストラクチャ サービスでは、特定のリージョンのエンドポイントが使用され、デフォルトでは us-south を対象としています。 VPCが別のリージョンで作成されている場合は、 provider.tf ファイル内のproviderブロックで、適切なリージョンを指定するようにしてください。

デフォルトの us-south 以外の地域をターゲットとする例を以下に示します。

provider "ibm" {
   region = "eu-de"
}
  1. 仮想サーバーインスタンスの詳細を、読み取り専用のデータソースとしてインポートします。 データソースの作成後、 boot_volume および volume_attachments の属性参照にアクセスできるようになります。
data "ibm_is_instance" "example" {
  name        = ibm_is_instance.example.name
  private_key = file("~/.ssh/id_rsa")
  passphrase  = ""
}
  1. スナップショットの一貫性グループを作成するには、 ibm_is_snapshot_consistency_group リソースを使用します。 次の例では、2つのボリュームからなる一貫性グループを作成します。
resource "ibm_is_snapshot_consistency_group" "is_snapshot_consistency_group" {
  name = "my-data-consistency-group"
  snapshots {
    [
      name = "snapshot-1"
      source_volume = {id = "r016-0a74c6af-f9f5-4671-9025-c4efd41ac6da"}
      user_tags = ["my-tag"]
    ].
    [
      name = "snapshot-2"
      source_volume = {id = "r016-0a74c6af-f9f5-4671-9025-c4efd41ac6db"}
      user_tags = ["my-tag"]
    ]
  }
}

引数や属性に関する詳細については、 ibm_is_snapshot_consistency_group を参照してください。