將增量快照集複製到新的區域
跨區域複製增量快照集有兩個選項。 第一個選項是受控程序 (建議),其會為您執行複製。 此程序由 Azure 處理,可藉由將儲存體帳戶暫存在目標區域中,消除管理複製程序的維護負荷。 Azure 可確保只會將目標區域中最新快照集之後的變更複製到目標區域,以減少資料使用量,進而降低復原點目標。 您可以檢查複製程序,以得知目標快照集何時準備好還原磁碟。 針對受控程序,您只需為跨區域資料傳輸的頻寬成本以及來源快照集上的讀取交易付費。 複製目標快照集時,請不要刪除來源快照集。
第二個選項是手動複製,可讓您取得兩個增量快照集之間的變更 (向下至區塊層級),並將其從一個區域手動複製到另一個區域。 大部分使用者應使用受控程序,但如果您想要改善複製速度,則第二個選項可讓您使用計算資源加快複製。
本文說明如何將增量快照集從一個區域複製到另一個區域。 如需增量快照集的概念詳細資料,請參閱建立受控磁碟的增量快照集。
限制
- 您可以為每個區域的每個訂用帳戶同時複製 100 個增量快照集。
- 如果您使用 REST API,則必須使用 2020-12-01 版或更新版本的 Azure 計算 REST API。
- 您一次只能複製一個特定磁碟的增量快照集。
- 快照集必須依建立的順序複製。
- 只有增量快照集可以跨區域複製。 無法跨區域複製完整快照集。
受控複製
您可以使用 Azure CLI 來複製增量快照集。 您需要最新版的 Azure CLI。 請參閱下列文章,了解如何安裝或更新 Azure CLI。
下列指令碼會將增量快照集從一個區域複製到另一個區域:
subscriptionId=<yourSubscriptionID>
resourceGroupName=<yourResourceGroupName>
targetSnapshotName=<name>
sourceSnapshotName=<name>
targetRegion=<validRegion>
sourceSnapshotId=$(az snapshot show -n $sourceSnapshotName -g $resourceGroupName --query [id] -o tsv)
az snapshot create -g $resourceGroupName -n $targetSnapshotName -l $targetRegion --source $sourceSnapshotId --incremental --copy-start
檢查複製狀態
您可檢查 CompletionPercent
屬性以檢查個別快照集的狀態。 將 $sourceSnapshotName
取代為快照集的名稱,然後執行下列命令。 屬性的值必須是 100,才能使用快照集來復原磁碟,或產生 SAS URI 以下載基礎資料。
az snapshot show -n $sourceSnapshotName -g $resourceGroupName --query [completionPercent] -o tsv
您可以使用 Azure PowerShell 模組來複製增量快照集。 您將需要最新版的 Azure PowerShell 模組。 下列命令會加以安裝,或將現有安裝更新為最新版本:
Install-Module -Name Az -AllowClobber -Scope CurrentUser
安裝之後,請使用 Connect-AzAccount
登入您的 PowerShell 工作階段。
下列指令碼會將增量快照集從一個區域複製到另一個區域。
$subscriptionId="yourSubscriptionIdHere"
$resourceGroupName="yourResourceGroupNameHere"
$sourceSnapshotName="yourSourceSnapshotNameHere"
$targetSnapshotName="yourTargetSnapshotNameHere"
$targetRegion="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$sourceSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $sourceSnapshotName
$snapshotconfig = New-AzSnapshotConfig -Location $targetRegion -CreateOption CopyStart -Incremental -SourceResourceId $sourceSnapshot.Id
New-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $targetSnapshotName -Snapshot $snapshotconfig
檢查複製狀態
您可檢查個別快照集的 CompletionPercent
屬性以取得其狀態。 取代 yourResourceGroupNameHere
和 yourSnapshotName
,然後執行指令碼。 屬性的值必須是 100,才能使用快照集來復原磁碟,或產生 SAS URI 以下載基礎資料。
$resourceGroupName = "yourResourceGroupNameHere"
$snapshotName = "yourSnapshotName"
$targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
$targetSnapshot.CompletionPercent
您也可以在 Azure 入口網站中跨區域複製增量快照集。
登入 Azure 入口網站,並瀏覽至您想要移轉的增量快照集。
選取 [複製快照集]。
針對 [執行個體詳細資料] 底下的 [快照集類型],選取 [增量]。
將 [區域] 變更為快照集要複製到的區域。
選取 [檢閱 + 建立],然後選取 [建立]。
您也可以使用 Azure Resource Manager 範本來複製增量快照集。 您必須使用 2020-12-01 版或更新版本的 Azure 計算 REST API。 下列程式碼片段是說明如何使用 Resource Manager 範本跨區域複製增量快照集的範例:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"defaultValue": "isnapshot1",
"type": "String"
},
"sourceSnapshotResourceId": {
"defaultValue": "<your_incremental_snapshot_resource_ID>",
"type": "String"
},
"skuName": {
"defaultValue": "Standard_LRS",
"type": "String"
},
"targetRegion": {
"defaultValue": "desired_region",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Compute/snapshots",
"sku": {
"name": "[parameters('skuName')]",
"tier": "Standard"
},
"name": "[parameters('name')]",
"apiVersion": "2020-12-01",
"location": "[parameters('targetRegion')]",
"scale": null,
"properties": {
"creationData": {
"createOption": "CopyStart",
"sourceResourceId": "[parameters('sourceSnapshotResourceId')]"
},
"incremental": true
},
"dependsOn": []
}
]
}
手動複製
增量快照集提供差異功能。 它們可讓您取得相同受控磁碟的兩個增量快照集之間,向下至區塊層級的變更。 您可以在跨區域複製快照集時,使用此項目來減少資料使用量。 例如,您可以將第一個增量快照集下載為另一個區域中的基底 Blob。 對於後續的增量快照集,您只能將上次快照集之後的變更複製到基底 Blob。 複製變更之後,您可以在基底 Blob 上擷取快照集,代表磁碟在另一個區域中的時間點備份。 您可以從基底 Blob 或從另一個區域中的基底 Blob 上的快照集還原磁碟。
下一步
如果您想要查看範例程式碼以了解使用 .NET 的增量快照集差異功能,請參閱透過增量快照集的差異功能將 Azure 受控磁碟備份複製到另一個區域。
如果您對快照集有其他疑問,請參閱常見問題的快照集一節。