Azure 虛擬機器的選擇性磁碟備份和還原
Azure 備份支援使用虛擬機器備份解決方案,同時備份 VM 中的所有磁碟 (作業系統與資料)。 現在,您可使用選擇性磁碟備份和還原功能,在 VM 中備份資料磁碟子集。
這同時支援增強原則和標準原則。 這項功能針對備份與還原的需求,提供有效率且符合成本效益的解決方案。 各復原點僅包含備份作業所含磁碟。 在還原作業期間,這可讓您由指定復原點還原磁碟子集。 快照集與保存庫的還原皆適用此功能。
注意
案例
此解決方案特別適用於下列案例:
- 若重要資料只要在單一磁碟或磁碟子集上進行備份,且連接至 VM 的其餘磁碟不要進行備份,以便將備份儲存體成本降至最低。
- 若有部分 VM 或資料使用其他備份解決方案。 例如,若您使用不同的工作負載備份解決方案來備份資料庫或資料,且其餘的資料或磁碟要使用 Azure VM 層級備份,以便善用既有功能來建立高效、穩健的系統。
- 如果您使用增強原則,您可以使用此解決方案來排除不支援的磁碟類型,並設定 VM 以進行備份。 針對 VM 中的共用磁碟,您可以將磁碟從 VM 備份中排除,並使用 Azure 磁碟備份進行共用磁碟的損毀一致備份。
您可使用 PowerShell、Azure CLI 或 Azure 入口網站來設定 Azure VM 的選擇性磁碟備份。 您可使用指令碼以「LUN 編號」來包含或排除資料磁碟。 透過 Azure 入口網站設定選擇性磁碟備份的功能僅適用於標準原則的備份作業系統磁碟,但可以針對增強原則的所有資料磁碟設定。
注意
依預設,作業系統磁碟會新增至 VM 備份,且無法排除。
使用 Azure CLI
確定使用 Az CLI 2.0.80 或更高版本。 您可使用下列命令取得 CLI 版本:
注意
這些 CLI 步驟適用於使用兩個原則 (增強和標準) 的 VM 選擇性磁碟備份。
az --version
登入復原服務保存庫和 VM 所在的訂用帳戶識別碼:
az account set -s {subscriptionID}
注意
下列各命令僅需要該保存庫所對應的 resourcegroup 名稱 (而不是物件)。
使用 Azure CLI 設定備份
在設定保護作業期間,您必須使用 inclusion/exclusion 參數來指定磁碟清單設定,以提供備份要包含或排除的磁碟 LUN 編號。
注意
設定保護作業會覆寫先前設定,而不會累計。
az backup protection enable-for-vm --resource-group {resourcegroup} --vault-name {vaultname} --vm {vmname} --policy-name {policyname} --disk-list-setting include --diskslist {LUN number(s) separated by space}
az backup protection enable-for-vm --resource-group {resourcegroup} --vault-name {vaultname} --vm {vmname} --policy-name {policyname} --disk-list-setting exclude --diskslist 0 1
若 VM 所在的資源群組與保存庫不同,則 ResourceGroup 會參考保存庫建立位置的資源群組。 提供下方所示 VM 識別碼,而不是 VM 名稱。
az backup protection enable-for-vm --resource-group {ResourceGroup} --vault-name {vaultname} --vm $(az vm show -g VMResourceGroup -n MyVm --query id --output tsv) --policy-name {policyname} --disk-list-setting include --diskslist {LUN number(s) separated by space}
使用 Azure CLI 修改已備份 VM 的保護
az backup protection update-for-vm --resource-group {resourcegroup} --vault-name {vaultname} -c {vmname} -i {vmname} --disk-list-setting exclude --diskslist {LUN number(s) separated by space}
在設定備份期間使用 Azure CLI 僅備份作業系統磁碟
az backup protection enable-for-vm --resource-group {resourcegroup} --vault-name {vaultname} --vm {vmname} --policy-name {policyname} --exclude-all-data-disks
修改保護期間使用 Azure CLI 僅備份作業系統磁碟
az backup protection update-for-vm --vault-name MyVault --resource-group MyResourceGroup --container-name MyContainer --item-name MyItem --disk-list-setting exclude --diskslist 1.
使用 Azure CLI 復原磁碟
az backup restore restore-disks --resource-group {resourcegroup} --vault-name {vaultname} -c {vmname} -i {vmname} -r {restorepoint} --target-resource-group {targetresourcegroup} --storage-account {storageaccountname} --diskslist {LUN number of the disk(s) to be restored}
僅還原使用 Azure CLI 的作業系統磁碟
az backup restore restore-disks --resource-group {resourcegroup} --vault-name {vaultname} -c {vmname} -i {vmname} -r {restorepoint} } --target-resource-group {targetresourcegroup} --storage-account {storageaccountname} --restore-only-osdisk
使用 Azure CLI 取得受保護項目的磁碟排除詳細資料
az backup item show -c {vmname} -n {vmname} --vault-name {vaultname} --resource-group {resourcegroup} --backup-management-type AzureIaasVM
還有另一個新增至受保護項目的 diskExclusionProperties 參數,如下所示:
"extendedProperties": {
"diskExclusionProperties": {
"diskLunList": [
0,
1
],
"isInclusionList": true
}
使用 Azure CLI 取得備份作業
az backup job show --vault-name {vaultname} --resource-group {resourcegroup} -n {BackupJobID}
此命令可協助您取得已備份磁碟和已排除磁碟的詳細資料,如下所示:
"Backed-up disk(s)": "diskextest_OsDisk_1_170808a95d214428bad92efeecae626b; diskextest_DataDisk_0; diskextest_DataDisk_1", "Backup Size": "0 MB",
"Excluded disk(s)": "diskextest_DataDisk_2",
BackupJobID 為備份作業名稱。 若要擷取作業名稱,請執行下列命令:
az backup job list --resource-group {resourcegroup} --vault-name {vaultname}
使用 Azure CLI 列出復原點
az backup recoverypoint list --vault-name {vaultname} --resource-group {resourcegroup} -c {vmname} -i {vmname} --backup-management-type AzureIaasVM
這可提供 VM 中連接和備份的磁碟數目資訊。
"recoveryPointDiskConfiguration": {
"excludedDiskList": null,
"includedDiskList": null,
"numberOfDisksAttachedToVm": 4,
"numberOfDisksIncludedInBackup": 3
};
使用 Azure CLI 取得復原點
az backup recoverypoint show --vault-name {vaultname} --resource-group {resourcegroup} -c {vmname} -i {vmname} --backup-management-type AzureIaasVM -n {recoverypointID}
各復原點皆具有所包含和排除磁碟的資訊:
"recoveryPointDiskConfiguration": {
"excludedDiskList": [
{
"lun": 2,
"name": "diskextest_DataDisk_2"
}
],
"includedDiskList": [
{
"lun": -1,
"name": "diskextest_OsDisk_1_170808a95d214428bad92efeecae626b"
},
{
"lun": 0,
"name": "diskextest_DataDisk_0"
},
{
"lun": 1,
"name": "diskextest_DataDisk_1"
}
],
"numberOfDisksAttachedToVm": 4,
"numberOfDisksIncludedInBackup": 3
移除磁碟排除設定,並使用 Azure CLI 取得受保護項目
az backup protection update-for-vm --vault-name {vaultname} --resource-group {resourcegroup} -c {vmname} -i {vmname} --disk-list-setting resetexclusionsettings
az backup item show -c {vmname} -n {vmname} --vault-name {vaultname} --resource-group {resourcegroup}
執行這些命令時,您會看到 "diskExclusionProperties": null
。
使用 PowerShell
確定您使用 Azure PowerShell 3.7.0 或更高版本。
在設定保護作業期間,您必須使用包含/排除參數指定磁碟清單設定,提供備份中要包含或排除的磁碟 LUN 編號。
注意
設定保護作業會覆寫先前設定,而不會累計。
使用 PowerShell 啟用備份
例如:
$disks = ("0","1")
$targetVault = Get-AzRecoveryServicesVault -ResourceGroupName "rg-p-recovery_vaults" -Name "rsv-p-servers"
Set-AzRecoveryServicesVaultContext -Vault $targetVault
Get-AzRecoveryServicesBackupProtectionPolicy
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "P-Servers"
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -InclusionDisksList $disks -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -ExclusionDisksList $disks -VaultId $targetVault.ID
在設定備份期間使用 PowerShell 僅備份作業系統磁碟
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -ExcludeAllDataDisks -VaultId $targetVault.ID
使用 PowerShell 修改保護時取得要傳送的備份專案物件
$item= Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -VaultId $targetVault.ID -FriendlyName "V2VM"
您必須將上述所得的 $item 物件傳遞至下列 cmdlet 中的 -Item 參數。
使用 PowerShell 修改已備份 VM 的保護
Enable-AzRecoveryServicesBackupProtection -Item $item -InclusionDisksList[Strings] -VaultId $targetVault.ID -Policy $pol
在修改保護期間使用 PowerShell 僅備份作業系統磁碟
Enable-AzRecoveryServicesBackupProtection -Item $item -ExcludeAllDataDisks -VaultId $targetVault.ID -Policy $pol
使用 PowerShell 重設磁碟排除設定
Enable-AzRecoveryServicesBackupProtection -Item $item -ResetExclusionSettings -VaultId $targetVault.ID -Policy $pol
注意
若命令失敗,且出現需要原則參數的錯誤,請檢查備份項目的保護狀態。 這可能是因為保護已停止,因此需要原則才能繼續進行保護,以及重設先前的所有磁碟排除設定。
使用 PowerShell 還原選擇性磁碟
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $item -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -RestoreDiskList [$disks]
使用 PowerShell 僅還原作業系統磁碟
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -RestoreOnlyOSDisk
使用 Azure 入口網站
注意
您也可以透過備份中心存取下列各節所描述的功能。 備份中心是 Azure 的單一整合式管理體驗。 可讓企業大規模控管、監視、操作及分析備份。 透過這項解決方案,您無須受限於個別保存庫的範圍,就能完成大部分的重要備份管理作業。
使用 Azure 入口網站時,您可透過 [VM 備份詳細資料] 窗格和 [備份作業詳細資料] 窗格檢視包含和排除的磁碟。 在還原期間選取要還原的復原點時,您可檢視該復原點的已備份磁碟。
從 [VM 備份詳細資料] 窗格,您可檢視入口網站中虛擬機器內含及排除的磁碟,如下所示:
從 [作業詳細資料] 窗格,您可檢視備份內含及排除的磁碟,如下所示:
選取要還原的復原點時,您可在還原期間檢視備份的磁碟,如下所示:
如果您使用標準原則來備份 VM,則透過 Azure 入口網站設定 VM 選擇性磁碟備份體驗僅限用於 [僅備份作業系統磁碟] 選項。 若要在已備份的 VM 上使用選擇性磁碟備份,或要進一步包含或排除 VM 的特定資料磁碟,請使用 PowerShell 或 Azure CLI。
如果您使用增強原則來備份 VM,您可以選取要備份的資料磁碟,並選擇性地選擇將未來加入 VM 的磁碟包含在備份中。
注意
若資料橫跨不同磁碟,請確定備份包含所有相依磁碟。 若未備份磁碟區中的所有相依磁碟,還原期間將不會建立幾個非備份磁碟所組成的磁碟區。
僅在 Azure 入口網站中備份作業系統磁碟 (標準原則)
啟用使用 Azure 入口網站的備份時,您可選擇 [僅備份作業系統磁碟] 選項。 因此,您可使用作業系統磁碟來設定 Azure VM 的備份,並排除連接的所有資料磁碟。
在 Azure 入口網站中設定選擇性磁碟備份 (增強原則)
當您使用 Azure 入口網站啟用備份作業時,可以選擇您想要包含在備份中的資料磁碟 (一律包含作業系統磁碟)。 您也可以藉由啟用 [包含未來磁碟] 選項,選擇自動在備份中包含未來新增的磁碟。
注意
目前,您只能在第一次保護 VM 時,在入口網站中設定一組磁碟。 在保護之後或「恢復保護」作業期間,您必須使用 CLI 或 PowerShell 命令來編輯已備份的一組磁碟。
使用 Azure REST API
您可使用幾個選取的磁碟來設定 Azure VM 備份,也可修改現有 VM 的保護,以包含/排除幾個磁碟 (如此處所述)。
選擇性磁碟還原
啟用選擇性磁碟備份功能時,可使用新增功能「選擇性磁碟還原」。 透過這項功能,您可由某復原點備份的所有磁碟還原選擇性磁碟。 如此更有效率,且當您知道需要還原的磁碟時,也有助於節省時間。
- 依預設,VM 備份和還原會包含作業系統磁碟,且無法排除。
- 僅限啟用磁碟排除功能後建立的復原點,才支援使用選擇性磁碟還原。
- 磁碟排除設定為開啟的備份僅支援磁碟還原 選項。 在此情況下,不支援VM 還原或取代現有的還原選項。
限制
傳統虛擬機器及加密虛擬機器不支援標準原則的選擇性磁碟備份功能。 因此,使用 Azure 磁碟加密 (ADE) 進行加密的 Azure VM 會使用 BitLocker 來加密 Windows VM,且不支援 Linux VM 的 DM-Crypt 功能。 不過,已啟用 Azure 磁碟加密的 VM 可以搭配增強原則使用選擇性磁碟備份。
若 VM 已啟用選擇性磁碟備份功能,則不支援建立新 VM和取代現有等還原選項。
目前 Azure VM 備份不支援與共用磁碟連結的 VM。 標準原則的選擇性磁碟備份無法用於在這種情況,如此會該排除磁碟並備份 VM。 您可以搭配增強原則使用選擇性磁碟備份來排除這些磁碟並設定備份。
若在備份 Azure VM 時使用磁碟排除或選擇性磁碟,請停止保護並保留備份資料。 繼續此資源的備份時,必須再次設定磁碟排除設定。
計費
Azure 虛擬機器備份會採用現有的定價模型,詳細說明請見此處。
標準原則
如果您使用標準原則,只有當您選擇使用 [僅作業系統磁碟] 選項進行備份時,才會針對該作業系統磁碟計算受保護的執行個體 (PI) 成本。 若您設定備份且至少選取一個資料磁碟,便會針對連接至 VM 的所有磁碟計算 PI 成本。 備份儲存體成本的計算根據僅為內含磁碟,以便您節省儲存體成本。 VM (無論磁碟為內含或和排除) 中的所有磁碟一律會計算快照集成本。
若您已選擇跨區域還原 (CRR) 功能,便會在排除磁碟後將 CRR 定價套用至備份儲存體成本。
增強原則
如果您使用增強原則,受保護的執行個體 (PI) 成本、快照集成本和保存庫層儲存體成本全都會根據您針對備份包含的磁碟計算。
已知限制
OS 類型 | 限制 |
---|---|
Windows | - 合併磁碟區:針對合併磁碟區 (分散在多個實體磁碟的磁碟區),請確定備份中包含所有磁碟。 如果沒有,Azure 備份可能無法可靠地還原資料,並在計費中排除資料。 - 存放集區:如果您使用從存放集區拆分的磁碟,而且備份包含的「LUN 號碼」在虛擬磁碟和資料磁碟之間很常見,則除了資料磁碟之外,虛擬磁碟的大小也會包含在備份大小中。 |
Linux | - 邏輯磁碟區:針對分散在多個磁碟上的邏輯磁碟區,請確定備份中包含所有磁碟。 如果沒有,Azure 備份可能無法可靠地還原資料,並在計費中排除資料。 - 發行版本支援:Azure 備份會使用 lsscsi 和 lsblk 來判斷要在備份中排除的磁碟,並針對受保護執行個體的費用計算,估計備分資料大小。 如果您的發行版本 (Debian 8.11、10.13 等等) 不支援 lsscsi,請使用 sudo apt install lsscsi 來進行安裝,以確保選擇性磁碟備份能夠運作。 如果未安裝,則受保護執行個體的費用會根據傳輸的備份資料計算,而不是使用 lsscsi 和 lsblk 來計算。 |
若您已選擇跨區域還原 (CRR) 功能,便會在排除磁碟後將 CRR 定價套用至備份儲存體成本。
常見問題集
如何僅針對 Windows 和 Linux 中的作業系統磁碟備份,計算受保護的執行個體 (PI) 成本?
PI 成本的計算根據為 VM 的實際 (已使用) 大小。
- Windows:已使用空間的計算功能位置為儲存作業系統的磁碟機 (通常為 C:)。
- Linux:已使用空間的計算功能位置為裝載根檔案系統 ( / ) 的裝置。
我只設定 OS 磁碟備份,為何所有磁碟皆會產生快照集?
如果您使用標準原則,選擇性磁碟備份功能可讓您強化屬於備份的內含磁碟,而節省備份保存庫儲存體成本。 但連接至 VM 的所有磁碟皆會擷取快照集。 因此,VM (無論磁碟為內含或和排除) 中的所有磁碟一律會計算快照集成本。 如需詳細資訊,請參閱帳單。
如果您使用增強原則,則只會針對作業系統磁碟和您包含的資料磁碟建立快照集。
我無法透過排除連結至 VM 的共用磁碟來設定 Azure 虛擬機器備份
如果您使用標準原則,則 Azure VM 備份不支援連結共用磁碟的 VM,而且無法使用選擇性磁碟備份加以排除,然後設定備份。
如果您使用增強原則,您可以透過選擇性磁碟備份從備份中排除不支援的磁碟 (透過 Azure 入口網站、CLI 及 PowerShell 等等),並設定 VM 的備份。
下一步
- Azure VM 備份的支援矩陣 \(部分機器翻譯\)
- 常見問題 - 備份 Azure VM