创建快照一致性组
快照一致性组包含连接到同一虚拟服务器实例的多个卷的快照。 可以包含或排除引导卷。 可以在控制台、CLI、API 和 Terraform 中创建一致性组。
当您请求一致性组的快照时,系统将确保在获取快照之前完成所有写操作。 然后,系统会生成同时连接到虚拟服务器实例的所有已标记 Block Storage 卷的快照。 根据附加卷的数量和大小以及要捕获的数据量,您可能会观察到轻微的 IO 暂停。 此 IO 暂停可以从几毫秒到 4 秒不等。
开始之前,请收集以下信息:
- 一致性组的唯一名称。 名称不能超过 64 个字符。 如果未提供名称,那么系统会自动为您生成名称。 (一致性组中的快照使用组名的前 16 个字符和 3-4 自动生成的字符进行命名,因此它们的名称也是唯一的。)
- 源卷的标识。
- 资源组标识 (可选)。 但是,创建快照后就不能更改资源组了。
- 要附加到快照的任何标记。
在控制台中创建一致性组快照
在控制台中,可以创建连接到正在运行的虚拟服务器实例的 Block Storage for VPC 卷的一致性组快照。
-
单击导航菜单图标
> 基础架构
> 存储 >Block Storage存储快照。
-
从最初为空的一致性组列表中,单击 创建。
-
输入定义快照组所需的信息,并选择要包含在快照一致性组中的卷的虚拟服务器实例。
创建快照的选择 字段 值 地区 指定此快照集的地理位置和区域。 快照类型 选择多个卷。 虚拟服务器实例 从列表中选择服务器实例。 一致性组名 为一致性组提供一个唯一的名称。 名称不能超过 64 个字符。 如果将此字段留空,那么系统会自动为您生成名称。 一致性组中的快照使用组名的前 16 个字符和 3-4 自动生成的字符进行命名。 资源组 为快照选择 资源组,或者使用缺省值。 创建快照后不能更改资源组。 标记 指定要标识此资源的任何用户标记。 访问权管理标记 指定此资源的任何 访问管理标记。 卷 从列表中选择要包含在组中的卷。 -
单击创建。 您将返回到从其开始的屏幕。 在创建快照和一致性组时以及快照和一致性组就绪时,将显示消息。 快照和一致性组显示在 VPC 的 Block Storage 快照页面上其各自的选项卡上。 有关更多信息,请参阅 在控制台中查看快照详细信息。
从 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
命令可创建一致性组。 为将属于一致性组的每个快照提供新快照的名称和源卷的标识。如果源卷具有
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 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 或标识。
您可以通过在 VPC API 中调用 /snapshot_consistency_groups
方法来以编程方式创建一致性组,如以下样本请求中所示。
curl -X POST \
"$vpc_api_endpoint/v1/snapshot_consistency_groups?version=2023-12-05&generation=2"\
-H "Authorization: $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
文件中的提供程序块中的相应区域作为目标。
请参阅以下以非缺省 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。