创建快照一致性组

创建快照一致性组,以捕获连接到虚拟服务器实例的多个卷的特定时间点副本。 根据需要包含或排除启动卷。

您可以在控制台、命令行界面(CLI)、API 和 Terraform 中创建一致性组。

当您请求一致性组的快照时,系统会在创建快照之前确保所有写入操作均已完成。 随后,系统会同时为所有已标记且连接到该虚拟服务器实例的 Block Storage 卷生成快照。 根据已挂载卷的数量和大小,以及需要捕获的数据量,您可能会观察到轻微的 I/O 暂停。 此 I/O 暂停时间可能从几毫秒到 4 秒不等。

开始之前,请准备好以下信息:

  • 一致性组的唯一名称。 名称长度不得超过 64 个字符。 如果您未提供名称,系统将为您自动生成一个名称。 (一致性组中的快照名称由组名的首16个字符和3至4个自动生成的字符组成,因此它们的名称也是唯一的。)
  • 源卷的ID。
  • 资源组 ID,此字段为可选。 不过,快照创建后,您无法更改资源组。
  • 您希望为快照添加的任何标签。

不支持创建包含不同代快照的一致性组。

请将 迁移 视为已加入白名单的 sdp 配置文件的第一代卷。 sdp 配置文件相比第一代配置文件,不仅性价比更高,而且灵活性也更强。 如需了解更多信息,请参阅 Block Storage for VPC 个人资料

在控制台中创建一致性组快照

在控制台中,您可以为连接到正在运行的虚拟服务器实例的 Block Storage for VPC 卷创建一致性组快照。

  1. 单击导航菜单 图标 > 基础设施 VPC 图标 > 存储 > Block Storage 快照
  2. 在最初为空的一致性组列表中,单击 “创建”
  3. 输入所需信息以定义快照组,并选择包含您希望纳入快照一致性组的卷的虚拟服务器实例。
创建快照的选项
字段
地区 请指定此快照集的地理位置和区域。
快照类型 选择多个卷。
虚拟服务器实例 从列表中选择服务器实例。
一致性组名 为一致性组指定一个唯一的名称。 名称长度不得超过 64 个字符。 如果此字段留空,系统将自动为您生成一个名称。 一致性组中的快照名称由组名的首16个字符以及3-4个自动生成的字符组成。
资源组 为快照选择一个 资源组,或使用默认设置。 快照创建后,您无法更改资源组。
标记 请指定用于标识该资源的任何用户标签。
访问权管理标记 为该资源指定任何 访问管理标签
从列表中选择要包含在该组中的卷。
  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. 列出要捕获到快照一致性组中的该实例所挂载的卷。 请注意输出中的卷标识符。

    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 创建一致性组快照

开始之前,请将您要捕获到快照一致性组中的虚拟服务器实例的 检索实例详情。 请记下 volume_attachmentsboot_volume_attachment 的CRN或ID。

您可以通过调用 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_volumevolume_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 资源。 以下示例创建了一个由两个卷组成的一致性组。
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