创建快照一致性组
创建快照一致性组,以捕获连接到虚拟服务器实例的多个卷的特定时间点副本。 根据需要包含或排除启动卷。
您可以在控制台、命令行界面(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 卷创建一致性组快照。
- 单击导航菜单
> 基础设施
> 存储 > Block Storage 快照。
- 在最初为空的一致性组列表中,单击 “创建”。
- 输入所需信息以定义快照组,并选择包含您希望纳入快照一致性组的卷的虚拟服务器实例。
| 字段 | 值 |
|---|---|
| 地区 | 请指定此快照集的地理位置和区域。 |
| 快照类型 | 选择多个卷。 |
| 虚拟服务器实例 | 从列表中选择服务器实例。 |
| 一致性组名 | 为一致性组指定一个唯一的名称。 名称长度不得超过 64 个字符。 如果此字段留空,系统将自动为您生成一个名称。 一致性组中的快照名称由组名的首16个字符以及3-4个自动生成的字符组成。 |
| 资源组 | 为快照选择一个 资源组,或使用默认设置。 快照创建后,您无法更改资源组。 |
| 标记 | 请指定用于标识该资源的任何用户标签。 |
| 访问权管理标记 | 为该资源指定任何 访问管理标签。 |
| 卷 | 从列表中选择要包含在该组中的卷。 |
- 单击创建。 您将返回最初进入的屏幕。 在创建快照和一致性组的过程中,以及创建完成后,系统会显示相关消息。 快照和一致性组显示在 Block Storage 的“VPC快照”页面中,分别位于相应的选项卡上。 如需了解更多信息,请参阅“在控制台中查看快照详细信息”。
通过命令行界面 (CLI) 创建一致性组快照
在使用 CLI 之前,您必须先安装 IBM Cloud CLI 以及 VPC CLI 插件。 如需了解更多信息,请参阅 CLI 先决条件。
-
登录到 IBM Cloud®。
ibmcloud login --sso -a cloud.ibm.com此命令会返回 URL 并提示输入密码。 在浏览器中转至该 URL 并登录。 如果成功,您将获得一次性密码。 复制此密码并将其作为响应粘贴到提示上。 身份验证成功后,系统会提示您选择账户。 如果您拥有多个账户,请选择您想要登录的账户。 响应任何剩余提示以完成登录。
-
列出要捕获到快照一致性组中的该实例所挂载的卷。 请注意输出中的卷标识符。
ibmcloud is instance INSTANCE -
使用
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_attachments 和 boot_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"
}
- 将虚拟服务器实例的详细信息导入为只读数据源。 创建数据源后,您可以访问
boot_volume和volume_attachments的属性引用。
data "ibm_is_instance" "example" {
name = ibm_is_instance.example.name
private_key = file("~/.ssh/id_rsa")
passphrase = ""
}
- 要创建一组一致性快照,请使用
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。