你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
VM 还原点的跨区域复制
本文介绍了如何将虚拟机 (VM) 还原点复制到另一个区域。
先决条件
若要跨区域复制还原点,需要在目标区域中预先创建 restorePointCollection
资源。
在复制还原点之前,请详细了解跨区域复制及其限制。
在目标区域中创建还原点集合
将现有 VM 还原点从一个区域复制到另一个区域的第一步是,通过引用源区域的 restorePointCollection
在目标区域中创建 restorePointCollection
资源。
URI 请求
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}&api-version={api-version}
请求正文
{
"name": "name of target restorePointCollection resource",
"location": "location of target restorePointCollection resource",
"tags": {
"department": "finance"
},
"properties": {
"source": {
"id": "/subscriptions/{subid}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/restorePointCollections/{restorePointCollectionName}"
}
}
}
响应
请求响应包括状态代码和一组响应头。
状态代码
该操作将在创建期间返回 201,在更新期间返回 200。
响应正文
{
"name": "name of the copied restorePointCollection resource",
"id": "CSM Id of copied restorePointCollection resource",
"type": "Microsoft.Compute/restorePointCollections",
"location": "location of the copied restorePointCollection resource",
"tags": {
"department": "finance"
},
"properties": {
"source": {
"id": "/subscriptions/{subid}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/restorePointCollections/{restorePointCollectionName}",
"location": "location of source RPC"
}
}
}
在目标区域中创建 VM 还原点
下一步是通过引用源区域中需要复制的还原点来触发目标 RestorePointCollection
资源中的还原点复制操作。
URI 请求
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{restorePointName}&api-version={api-version}
请求正文
{
"name": "name of the restore point resource",
"properties": {
"sourceRestorePoint": {
"id": "/subscriptions/{subid}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{restorePointName}"
}
}
}
注意
sourceRestorePoint
的位置是根据源 RestorePointCollection
中的所在位置推断出来的。
响应
请求响应包括状态代码和一组响应头。
状态代码
此操作的运行时间较长,因此会在创建过程中返回 201。 客户端应使用该操作来进行状态轮询。 为此,提供了 location
和 Azure-AsyncOperation
标头。
在还原点创建过程中,ProvisioningState
在 GET 还原点 API 响应中显示为 Creating
。 如果创建失败,ProvisioningState
将显示为 Failed
。 启动跨区域的数据复制时,ProvisioningState
将设置为 Succeeded
。
注意
你可以通过在目标 VM 还原点上调用 GET 实例视图(?$expand=instanceView
)来跟踪复制状态。 有关如何执行此操作的步骤,请参阅“获取 VM 还原点复制状态”部分。仅当所有磁盘还原点的复制都成功时,VM 还原点才被视为可用(可用于还原 VM)。
响应正文
{
"id": "CSM Id of the restore point",
"name": "name of the restore point",
"properties": {
"optionalProperties": "opaque bag of properties to be passed to extension",
"sourceRestorePoint": {
"id": "/subscriptions/{subid}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{restorePointName}"
},
"consistencyMode": "CrashConsistent | FileSystemConsistent | ApplicationConsistent",
"sourceMetadata": {
"vmId": "Unique Guid of the VM from which the restore point was created",
"location": "source VM location",
"hardwareProfile": {
"vmSize": "Standard_A1"
},
"osProfile": {
"computername": "",
"adminUsername": "",
"secrets": [
{
"sourceVault": {
"id": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.KeyVault/vaults/<keyvault-name>"
},
"vaultCertificates": [
{
"certificateUrl": "https://<keyvault-name>.vault.azure.net/secrets/<secret-name>/<secret-version>",
"certificateStore": "certificateStoreName on Windows"
}
]
}
],
"customData": "",
"windowsConfiguration": {
"provisionVMAgent": "true|false",
"winRM": {
"listeners": [
{
"protocol": "http"
},
{
"protocol": "https",
"certificateUrl": ""
}
]
},
"additionalUnattendContent": [
{
"pass": "oobesystem",
"component": "Microsoft-Windows-Shell-Setup",
"settingName": "FirstLogonCommands|AutoLogon",
"content": "<XML unattend content>"
}
],
"enableAutomaticUpdates": "true|false"
},
"linuxConfiguration": {
"disablePasswordAuthentication": "true|false",
"ssh": {
"publicKeys": [
{
"path": "Path-Where-To-Place-Public-Key-On-VM",
"keyData": "PEM-Encoded-public-key-file"
}
]
}
}
},
"storageProfile": {
"osDisk": {
"osType": "Windows|Linux",
"name": "OSDiskName",
"diskSizeGB": "10",
"caching": "ReadWrite",
"managedDisk": {
"id": "CSM Id of the managed disk",
"storageAccountType": "Standard_LRS"
},
"diskRestorePoint": {
"id": "/subscriptions/<subId>/resourceGroups/<rgName>/restorePointCollections/<rpcName>/restorePoints/<rpName>/diskRestorePoints/<diskRestorePointName>"
}
},
"dataDisks": [
{
"lun": "0",
"name": "datadisk0",
"diskSizeGB": "10",
"caching": "ReadWrite",
"managedDisk": {
"id": "CSM Id of the managed disk",
"storageAccountType": "Standard_LRS"
},
"diskRestorePoint": {
"id": "/subscriptions/<subId>/resourceGroups/<rgName>/restorePointCollections/<rpcName>/restorePoints/<rpName>/diskRestorePoints/<diskRestorePointName>"
}
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": " http://storageaccount.blob.core.windows.net/"
}
}
},
"provisioningState": "Succeeded | Failed | Creating | Deleting",
"provisioningDetails": {
"creationTime": "Creation Time of Restore point in UTC"
}
}
}
获取 VM 还原点复制状态
启动 VM 还原点的复制后,可通过在目标 VM 还原点上调用 GET 实例视图 (?$expand=instanceView
) 来跟踪复制状态。
URI 请求
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{restorePointName}?$expand=instanceView&api-version={api-version}
响应
{
"id": "CSM Id of the restore point",
"name": "name of the restore point",
"properties": {
"optionalProperties": "opaque bag of properties to be passed to extension",
"sourceRestorePoint": {
"id": "/subscriptions/{subid}/resourceGroups/{resourceGroupName}/providers/microsoft.compute/restorePointCollections/{restorePointCollectionName}/restorePoints/{restorePointName}"
},
"consistencyMode": "CrashConsistent | FileSystemConsistent | ApplicationConsistent",
"sourceMetadata": {
"vmId": "Unique Guid of the VM from which the restore point was created",
"location": "source VM location",
"hardwareProfile": {
"vmSize": "Standard_A1"
},
"osProfile": {
"computername": "",
"adminUsername": "",
"secrets": [
{
"sourceVault": {
"id": "/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.KeyVault/vaults/<keyvault-name>"
},
"vaultCertificates": [
{
"certificateUrl": "https://<keyvault-name>.vault.azure.net/secrets/<secret-name>/<secret-version>",
"certificateStore": "certificateStoreName on Windows"
}
]
}
],
"customData": "",
"windowsConfiguration": {
"provisionVMAgent": "true|false",
"winRM": {
"listeners": [
{
"protocol": "http"
},
{
"protocol": "https",
"certificateUrl": ""
}
]
},
"additionalUnattendContent": [
{
"pass": "oobesystem",
"component": "Microsoft-Windows-Shell-Setup",
"settingName": "FirstLogonCommands|AutoLogon",
"content": "<XML unattend content>"
}
],
"enableAutomaticUpdates": "true|false"
},
"linuxConfiguration": {
"disablePasswordAuthentication": "true|false",
"ssh": {
"publicKeys": [
{
"path": "Path-Where-To-Place-Public-Key-On-VM",
"keyData": "PEM-Encoded-public-key-file"
}
]
}
}
},
"storageProfile": {
"osDisk": {
"osType": "Windows|Linux",
"name": "OSDiskName",
"diskSizeGB": "10",
"caching": "ReadWrite",
"managedDisk": {
"id": "CSM Id of the managed disk",
"storageAccountType": "Standard_LRS"
},
"diskRestorePoint": {
"id": "/subscriptions/<subId>/resourceGroups/<rgName>/restorePointCollections/<rpcName>/restorePoints/<rpName>/diskRestorePoints/<diskRestorePointName>"
}
},
"dataDisks": [
{
"lun": "0",
"name": "datadisk0",
"diskSizeGB": "10",
"caching": "ReadWrite",
"managedDisk": {
"id": "CSM Id of the managed disk",
"storageAccountType": "Standard_LRS"
},
"diskRestorePoint": {
"id": "/subscriptions/<subId>/resourceGroups/<rgName>/restorePointCollections/<rpcName>/restorePoints/<rpName>/diskRestorePoints/<diskRestorePointName>"
}
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": " http://storageaccount.blob.core.windows.net/"
}
}
},
"provisioningState": "Succeeded | Failed | Creating | Deleting",
"provisioningDetails": {
"creationTime": "Creation Time of Restore point in UTC"
},
"instanceView": {
"statuses": [
{
"code": "ReplicationState/succeeded",
"level": "Info",
"displayStatus": "Replication succeeded"
}
],
"diskRestorePoints": [
{
"id": "<diskRestorePoint Arm Id>",
"replicationStatus": {
"status": {
"code": "ReplicationState/succeeded",
"level": "Info",
"displayStatus": "Replication succeeded"
},
"completionPercent": "<completion percentage of the replication>"
}
}
]
}
}
}