建立受控磁碟的增量快照集
適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集
增量快照集是受控磁碟的時間點備份,其建立時只會包含自上次快照集之後的變更。 第一個增量快照集是磁碟的完整複本。 後續的增量快照集只會佔用自上次快照集以來磁碟的差異變更。 從增量快照集復原磁碟時,系統會重新建構完整磁碟,其代表建立增量快照集時磁碟的時間點備份。 受控磁碟快照集的此功能可能會讓它們更具成本效益,因為除非您選擇,否則您不需要儲存具有每個個別快照集的整個磁碟。 正如同完整快照集,增量快照集可以用來建立完整受控磁碟或完整快照集。 完整快照集和增量快照集都可以在建立之後立即使用。 換句話說,一旦您擷取任一個快照集,您就可以立即讀取基礎資料,並使用它來還原磁碟。
增量快照集與完整快照集之間有一些差異。 不論磁碟的儲存體類型為何,增量快照集一律會使用標準 HDD 儲存體,而完整快照集則可使用進階 SSD。 如果您在進階儲存體上使用完整快照集來擴大 VM 部署,建議您使用 Azure Compute Gallery 中標準儲存體上的自訂映像。 其可協助您以較低的成本達成更大的規模。 此外,增量快照集在使用區域備援儲存體 (ZRS) 時可能會提供更好的可靠性。 如果所選區域中有 ZRS 可用,增量快照集將會自動使用 ZRS。 如果區域中無法使用 ZRS,則快照集會預設為本地備援儲存體 (LRS)。 您可以覆寫此行為並手動選取一個,但不建議這麼做。
只會針對增量快照集使用的大小計費。 您可以藉由檢查 Azure 使用量報表來尋找已使用的快照大小。 例如,如果快照集的已使用資料大小為 10 GiB,則每日使用量報表會顯示已使用數量為 10 GiB/(31 天) = 0.3226。
限制
- 目前無法在訂用帳戶之間移動增量快照集。
- 您目前只能產生任何指定時間特定快照集系列最多五個快照集的 SAS URI。
- 您無法為磁碟訂用帳戶以外的特定磁碟建立累加快照集。
- 累加快照集無法移至另一個資源群組。 但可以複製到另一個資源群組或區域。
- 每五分鐘可以為每個磁碟建立最多七個增量快照集。
- 可以為單一磁碟建立總計 500 個增量快照集。 500 的配額限制不在磁碟的存留期內,而是在任何指定的時間點。 您一律可以刪除磁碟較舊的快照集,以騰出空間供較新的快照集使用。
- 您無法取得在將父磁碟大小變更為跨 4 TB 界限之前與之後取得的快照集之間的變更。 例如,您在磁碟大小為 2 TB 時取得增量快照集
snapshot-a
。 現在您將磁碟大小增加為 6 TB,然後取得另一個增量快照集snapshot-b
。 您無法取得snapshot-a
和snapshot-b
之間的變更。 您必須在調整大小之後下載snapshot-b
建立的完整複本。 之後,您便可以取得snapshot-b
和snapshot-b
之後建立的快照集的變更。 - 當您從快照集建立受控磁碟時,會啟動背景複製程序。 您可以在此程序執行時將磁碟連結至 VM,但效能會受影響。 您可以使用 CompletionPercent 屬性來檢查 Ultra 磁碟和進階 SSD v2 磁碟的背景複製狀態。
進階 SSD v2 和 Ultra 磁碟的增量快照集
進階 SSD v2 和 Ultra 磁碟的增量快照集有下列額外限制:
- 具有 512 邏輯磁區大小的快照集會儲存為 VHD,並可用來建立任何磁碟類型。 具有 4096 邏輯磁區大小的快照集會儲存為 VHDX,而且只能用來建立 Ultra 磁碟和進階版 SSD v2 磁碟,因此無法用來建立其他磁碟類型。 若要判斷快照集的磁區大小,請參閱檢查磁區大小。
- 最多可以同時從進階版 SSD v2 或 Ultra 磁碟的快照集建立五個磁碟。
- 建立進階 SSD v2 或 Ultra 磁碟的增量快照集時,會啟動該磁碟的背景複製程序。 背景複製進行時,您最多可以有三個暫止的快照集。 必須先完成此程序,才能建立該磁碟的更多快照集。
- 進階 SSD v2 或 Ultra 磁碟的增量快照集無法在建立之後立即使用。 背景複製必須先完成,才能從快照集建立磁碟。 如需詳細資訊,請參閱檢查快照集狀態。
- 不支援當磁碟的 CompletionPercent 屬性尚未達到 100 時取得進階 SSD v2 或 Ultra 磁碟的增量快照集。
- 當您增加進階 SSD v2 或 Ultra 磁碟的大小時,背景複製下的任何增量快照集都會失敗。
- 當您在 CompletionPercent 屬性尚未達到 100 時將從快照集建立的進階 SSD v2 或 Ultra 磁碟連結至執行中的虛擬機時,磁碟效能會受到影響。 具體而言,如果磁碟有 4k 磁區大小,則讀取速度可能會變慢。 如果磁碟有 512e 磁區大小,則讀取和寫入速度都可能會變慢。 若要追蹤此背景複製流程的進度,請參閱 Azure PowerShell 範例或 Azure CLI 的檢查磁碟狀態一節。
注意
一般而言,當您建立增量快照集且沒有任何變更時,該快照集的大小為 0 MiB。 目前,邏輯磁區大小為 4096 的磁碟的空快照集大小為 6 MiB,但通常會是 0 MiB。
建立增量快照集
您可以使用 Azure CLI 來建立增量快照集。 您需要最新版的 Azure CLI。 請參閱下列文章,了解如何安裝或更新 Azure CLI。
下列指令碼將建立特定磁碟的增量快照集:
# Declare variables
diskName="yourDiskNameHere"
resourceGroupName="yourResourceGroupNameHere"
snapshotName="desiredSnapshotNameHere"
# Get the disk you need to backup
yourDiskID=$(az disk show -n $diskName -g $resourceGroupName --query "id" --output tsv)
# Create the snapshot
az snapshot create -g $resourceGroupName -n $snapshotName --source $yourDiskID --incremental true
您可以使用快照集的 SourceResourceId
屬性,從相同的磁碟識別增量快照集。 SourceResourceId
是父磁碟的 Azure Resource Manager 資源識別碼。
您可以使用 SourceResourceId
來建立與特定磁碟相關聯的所有快照集清單。 將 yourResourceGroupNameHere
取代為您的值,然後使用下列範例來列出您現有的增量快照集:
# Declare variables and create snapshot list
subscriptionId="yourSubscriptionId"
resourceGroupName="yourResourceGroupNameHere"
diskName="yourDiskNameHere"
az account set --subscription $subscriptionId
diskId=$(az disk show -n $diskName -g $resourceGroupName --query [id] -o tsv)
az snapshot list --query "[?creationData.sourceResourceId=='$diskId' && incremental]" -g $resourceGroupName --output table
檢查快照狀態
在將資料複製到快照集的背景程序完成之前,無法使用進階 SSD v2 或 Ultra 磁碟的增量快照集來建立新的磁碟。
您可以使用 CLI 或 PowerShell 章節來檢查從磁碟到快照集的背景複製狀態。
重要
若是 Ultra 磁碟儲存體和進階 SSD v2 以外的磁碟類型,您無法使用下列區段取得背景複製程序的狀態。 其他磁碟類型的快照集一律會回報 100%。
CLI
您有兩個選項可取得快照集的狀態。 您可以取得與特定磁碟相關聯之所有增量快照集的清單及其各自的狀態,也可以取得個別快照集的狀態。
CLI - 列出增量快照集
下列指令碼將傳回與特定磁碟相關聯的所有快照集的清單。 任何快照集的 CompletionPercent
屬性值都必須是 100,才能使用。 將 yourResourceGroupNameHere
、yourSubscriptionId
和 yourDiskNameHere
取代為您自己的值,然後執行指令碼:
# Declare variables and create snapshot list
subscriptionId="yourSubscriptionId"
resourceGroupName="yourResourceGroupNameHere"
diskName="yourDiskNameHere"
az account set --subscription $subscriptionId
diskId=$(az disk show -n $diskName -g $resourceGroupName --query [id] -o tsv)
az snapshot list --query "[?creationData.sourceResourceId=='$diskId' && incremental]" -g $resourceGroupName --output table
CLI - 個別快照集
您也可檢查 CompletionPercent
屬性以檢查個別快照集的狀態。 將 $sourceSnapshotName
取代為您的快照集的名稱,然後執行下列命令。 屬性的值必須是 100,才能使用快照集來復原磁碟,或產生 SAS URI 以下載基礎資料。
az snapshot show -n $sourceSnapshotName -g $resourceGroupName --query [completionPercent] -o tsv
PowerShell
您有兩個選項可取得快照集的狀態。 您可以取得與特定磁碟相關聯之所有增量快照集的清單及其各自的狀態,也可以取得個別快照集的狀態。
PowerShell - 列出增量快照集
下列指令碼會傳回與尚未完成其背景複製之特定磁碟相關聯的所有增量快照集清單。 取代 yourResourceGroupNameHere
和 yourDiskNameHere
,然後執行指令碼。
$resourceGroupName = "yourResourceGroupNameHere"
$snapshots = Get-AzSnapshot -ResourceGroupName $resourceGroupName
$diskName = "yourDiskNameHere"
$yourDisk = Get-AzDisk -DiskName $diskName -ResourceGroupName $resourceGroupName
$incrementalSnapshots = New-Object System.Collections.ArrayList
foreach ($snapshot in $snapshots)
{
if($snapshot.Incremental -and $snapshot.CreationData.SourceResourceId -eq $yourDisk.Id -and $snapshot.CreationData.SourceUniqueId -eq $yourDisk.UniqueId)
{
$targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
{
if($targetSnapshot.CompletionPercent -lt 100)
{
$incrementalSnapshots.Add($targetSnapshot)
}
}
}
}
$incrementalSnapshots
PowerShell - 個別快照集
您可檢查個別快照集的 CompletionPercent
屬性以取得其狀態。 取代 yourResourceGroupNameHere
和 yourSnapshotName
,然後執行指令碼。 屬性的值必須是 100,才能使用快照集來復原磁碟,或產生 SAS URI 以下載基礎資料。
$resourceGroupName = "yourResourceGroupNameHere"
$snapshotName = "yourSnapshotName"
$targetSnapshot=Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName
$targetSnapshot.CompletionPercent
檢查磁區大小
具有 4096 邏輯磁區大小的快照集,只能用來建立進階版 SSD v2 或 Ultra 磁碟。 它們無法用來建立其他磁碟類型。 具有 4096 邏輯磁區大小的磁碟快照會儲存為 VHDX,而具有 512 個邏輯磁區大小的磁碟快照會儲存為 VHD。 快照集會從父磁碟繼承邏輯磁區大小。
若要判斷進階 SSD v2 或 Ultra 磁碟快照集是否為 VHDX 或 VHD,請取得快照集的 LogicalSectorSize
屬性。
下列命令會顯示快照集的邏輯磁區大小:
az snapshot show -g resourcegroupname -n snapshotname --query [creationData.logicalSectorSize] -o tsv
下一步
請參閱下列文章,以使用 Azure CLI 或 Azure PowerShell 模組從快照集建立磁碟。
請參閱將增量快照集複製到新的區域,以了解如何跨區域複製增量快照集。
如果您對快照集有其他疑問,請參閱常見問題的快照集一節。
如果您想要查看範例程式碼以了解使用 .NET 的增量快照集差異功能,請參閱透過增量快照集的差異功能將 Azure 受控磁碟備份複製到另一個區域。