使用快照备份和恢复数据
本页面介绍了如何使用快照备份和恢复 Vertex AI Workbench 实例上的数据。
备份数据
如需备份 Vertex AI Workbench 实例上的数据,您可以为底层 Compute Engine 虚拟机 (VM) 数据磁盘创建快照。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST API 为实例的数据磁盘创建快照:
控制台
在 Google Cloud 控制台中,前往实例页面。
点击实例名称。
在实例详情页面上,点击在 Compute Engine 中查看以打开虚拟机详情。
在额外磁盘部分中,点击数据磁盘的名称。数据磁盘的名称采用以下格式:
INSTANCE_NAME-data-workspace。点击创建快照。
在创建快照对话框中,点击创建。
Compute Engine 会创建数据磁盘的快照。
gcloud
如需创建实例的数据磁盘的快照,请使用 gcloud compute snapshots create 命令。
在使用下面的命令数据之前,请先进行以下替换:
SNAPSHOT_NAME:快照的名称SOURCE_ZONE:实例所在的可用区INSTANCE_NAME:实例的名称-
STORAGE_LOCATION:用于存储快照的 Cloud Storage 多区域或 Cloud Storage 区域。请注意,您只能指定一个存储位置。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk-zone=SOURCE_ZONE \ --source-disk=INSTANCE_NAME-data-workspace \ --storage-location=STORAGE_LOCATION
Windows (PowerShell)
gcloud compute snapshots create SNAPSHOT_NAME ` --source-disk-zone=SOURCE_ZONE ` --source-disk=INSTANCE_NAME-data-workspace ` --storage-location=STORAGE_LOCATION
Windows (cmd.exe)
gcloud compute snapshots create SNAPSHOT_NAME ^ --source-disk-zone=SOURCE_ZONE ^ --source-disk=INSTANCE_NAME-data-workspace ^ --storage-location=STORAGE_LOCATION
REST
如需创建实例的数据磁盘的快照,请向 Compute Engine 的 snapshots.insert 方法发出 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
DESTINATION_PROJECT_ID:您要在其中创建快照的项目的 IDSNAPSHOT_NAME:快照的名称SOURCE_PROJECT_ID:实例所在项目的 IDSOURCE_ZONE:实例所在的可用区INSTANCE_NAME:实例的名称-
STORAGE_LOCATION:用于存储快照的 Cloud Storage 多区域或 Cloud Storage 区域。请注意,您只能指定一个存储位置。
HTTP 方法和网址:
POST https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
请求 JSON 正文:
{
"name": "SNAPSHOT_NAME",
"sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/INSTANCE_NAME-data-workspace",
"storageLocations": [
"STORAGE_LOCATION"
],
}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://compute.googleapis.com/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots" | Select-Object -Expand Content
安排备份
通过为数据磁盘附加资源政策,可以为工作台实例配置备份时间表。
您可以使用 Google Cloud CLI 或 REST API 创建附加了快照时间表的实例:
gcloud
如需创建具有快照时间表的实例,请使用 gcloud workbench
instances create 命令,并通过使用 --data-disk-resource-policies 标志指定资源政策。
在使用下面的命令数据之前,请先进行以下替换:
-
INSTANCE_NAME:Vertex AI Workbench 实例的名称;必须以字母开头,后面最多可跟 62 个小写字母、数字或连字符 (-),但不能以连字符结尾 PROJECT_ID:您的项目 IDLOCATION:您希望实例所在的可用区-
MACHINE_TYPE:实例虚拟机的机器类型,例如n2d-standard-2 REGION:资源政策所在的区域-
RESOURCE_POLICY:要应用于数据磁盘的资源政策。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud workbench instances create INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --machine-type=MACHINE_TYPE \ --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY
Windows (PowerShell)
gcloud workbench instances create INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION ` --machine-type=MACHINE_TYPE ` --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY
Windows (cmd.exe)
gcloud workbench instances create INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION ^ --machine-type=MACHINE_TYPE ^ --data-disk-resource-policies=projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY
REST
如需创建具有快照时间表的实例,请使用 projects.locations.instances.create 方法,并在 DataDisk 中设置 resourcePolicies。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的项目 IDLOCATION:您希望实例所在的可用区-
MACHINE_TYPE:实例虚拟机的机器类型,例如n2d-standard-2 REGION:资源政策所在的区域-
RESOURCE_POLICY:要应用于数据磁盘的资源政策。
HTTP 方法和网址:
POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances
请求 JSON 正文:
{
"gce_setup": {
"machine_type": "MACHINE_TYPE",
"data_disks": [
{
"resource_policies": [
"projects/PROJECT_ID/regions/REGION/resourcePolicies/RESOURCE_POLICY"
]
}
]
}
}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances" | Select-Object -Expand Content
备份调度程序的限制
在规划项目时,请考虑以下有关预定备份的限制:
您必须在创建实例时添加备份时间表。如果您的实例在创建时未设置备份时间表,请备份现有实例,创建具有备份时间表的新实例,然后使用备份恢复该实例。
无法修改实例的备份时间表。这包括添加、更新和移除备份时间表。
从快照恢复数据
您可以使用快照来恢复实例上的数据。当您恢复实例上的数据时,Vertex AI Workbench 会删除附加到该实例的现有数据磁盘,根据快照创建新的数据磁盘,并将新数据磁盘附加到该实例。
您可以使用 gcloud CLI 或 REST API 在实例上恢复数据:
gcloud
如需恢复实例上的数据,请使用 gcloud workbench instances restore 命令。
在使用下面的命令数据之前,请先进行以下替换:
INSTANCE_NAME:实例的名称LOCATION:实例所在的可用区-
SNAPSHOT_PROJECT_NAME:您的快照所在的项目名称 SNAPSHOT_NAME:要恢复的快照的名称
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud workbench instances restore INSTANCE_NAME \ --location=LOCATION \ --snapshot-project=SNAPSHOT_PROJECT_NAME \ --snapshot=SNAPSHOT_NAME
Windows (PowerShell)
gcloud workbench instances restore INSTANCE_NAME ` --location=LOCATION ` --snapshot-project=SNAPSHOT_PROJECT_NAME ` --snapshot=SNAPSHOT_NAME
Windows (cmd.exe)
gcloud workbench instances restore INSTANCE_NAME ^ --location=LOCATION ^ --snapshot-project=SNAPSHOT_PROJECT_NAME ^ --snapshot=SNAPSHOT_NAME
REST
如需恢复实例上的数据,请向 projects.locations.instances.restore 方法发出 POST 请求。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID:您的项目 IDLOCATION:实例所在的可用区INSTANCE_ID:实例的 ID-
SNAPSHOT_ID:要恢复的快照的 ID;如需获取快照的 ID,请使用 Compute Engine 的 snapshots.get 方法 SNAPSHOT_PROJECT_ID:快照的项目 ID
HTTP 方法和网址:
POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore
请求 JSON 正文:
{
"snapshot": {
{
"snapshotId": SNAPSHOT_ID,
"projectId": SNAPSHOT_PROJECT_ID
}
}
}
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore"
PowerShell
将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:restore" | Select-Object -Expand Content