다음을 통해 공유

适用于 Azure 虚拟机的选择性磁盘备份和还原

Azure 备份支持使用 VM 备份解决方案将虚拟机(VM)中的所有磁盘(OS 和数据)一起备份。 现在,通过使用 选择性磁盘备份和还原 功能,可以在 VM 中备份一部分数据磁盘。

增强型策略和标准策略支持选择性磁盘备份和还原。 此功能为备份和还原需求提供了高效且经济高效的解决方案。 每个恢复点仅包含备份操作中包含的磁盘。 这样,通过还原操作,您可以从特定恢复点还原一组磁盘。 此功能适用于从快照和保管库还原。

注意

备份策略支持选择性磁盘备份和还原: 增强标准

使用增强策略进行选择性磁盘备份和还原在所有 Azure 区域(包括公共、政府和内网隔离区域)均可用。

如果在 Linux VM 上使用选择性磁盘备份和增强策略,请确保您的发行版中包含 lsblklsscsi,以便排除这些磁盘排除。 如果在使用标准策略时进行选择性磁盘备份,则始终会为 VM 中的所有磁盘(包括已包含和已排除的磁盘)计算快照费用。

方案

此解决方案在以下方案中特别有用:

  • 如果您需要将关键数据备份到仅一个磁盘或部分磁盘上。 你不希望备份附加到 VM 的其余磁盘,以最大程度地降低备份存储成本。
  • 如果您为部分 VM 或数据信息提供了其他备份解决方案。 例如,你想要使用不同的工作负荷备份解决方案备份数据库或数据。 你希望通过使用 Azure 虚拟机级别备份,将其他数据或磁盘进行备份,以利用可用的最佳功能构建一个高效且可靠的系统。
  • 如果使用 增强策略,可以使用此解决方案排除不受支持的磁盘类型,并配置 VM 进行备份。 对于 VM 中的共享磁盘,可以从 VM 备份中排除磁盘,并使用 Azure 磁盘备份 对共享磁盘执行崩溃一致性备份。

使用 Azure CLI、PowerShell 或 Azure 门户时,可以配置 Azure VM 的选择性磁盘备份。 使用脚本,可以使用其逻辑单元号(LUN)包括或排除数据磁盘。 通过 Azure 门户配置选择性磁盘备份的能力仅限于标准策略下的备份 OS 磁盘。 可以为所有数据磁盘配置增强策略。

默认情况下,OS 磁盘将添加到 VM 备份中,并且无法排除。

使用 CLI

确保使用的是 Azure CLI 2.0.80 或更高版本。 可以使用以下命令获取 CLI 版本。 以下 CLI 步骤适用于使用增强策略或标准策略的 VM 的选择性磁盘备份。

az --version

登录到恢复服务保管库和 VM 所在的订阅 ID:

az account set -s {subscriptionID}

resourcegroup 在以下命令中,只需要与保管库对应的名称(而非对象)。

使用 CLI 配置备份

在配置保护操作期间,您需要使用包括或排除参数来指定磁盘列表设置。 为备份中包含或排除的磁盘提供 LUN。

运行配置保护操作将覆盖以前的设置,因此这些设置不具有累积性。

az backup protection enable-for-vm --resource-group {resourcegroup} --vault-name {vaultname} --vm {vmname} --policy-name {policyname} --disk-list-setting include --diskslist {LUNs 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 ID,而不是 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 {LUNs separated by space}

使用 CLI 修改已备份 VM 的保护

az backup protection update-for-vm --resource-group {resourcegroup} --vault-name {vaultname} -c {vmname} -i {vmname} --disk-list-setting exclude --diskslist {LUNs separated by space}

使用命令行界面 (CLI) 配置备份时,只备份操作系统磁盘

az backup protection enable-for-vm --resource-group {resourcegroup} --vault-name {vaultname} --vm {vmname} --policy-name {policyname} --exclude-all-data-disks

使用 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.

使用 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 of the disk(s) to be restored}

仅使用 CLI 还原 OS 磁盘

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

使用 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
      }

使用命令行启动备份任务

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}

使用 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
};

使用 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

使用 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 仅还原 OS 磁盘

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -RestoreOnlyOSDisk

使用 Azure 门户

注意

还可以通过备份中心访问以下部分中描述的功能。 备份中心是 Azure 中的一种统一管理体验。 它使企业能够大规模管理、监视、操作和分析备份。 使用此解决方案,你可以执行大多数密钥备份管理操作,而不必局限于单个保管库的范围。

使用 Azure 门户时,可以从 VM 备份详细信息窗格和备份 作业详细信息 窗格查看包含和排除的磁盘。 在还原期间,选择要从中还原的恢复点时,可以查看该恢复点中的备份磁盘。

可以在门户中的 VM 备份详细信息窗格中查看 VM 的包含和排除磁盘。

显示备份详细信息窗格中包含和排除的磁盘的屏幕截图。

可以在“ 作业详细信息 ”窗格的备份中查看包含和排除的磁盘。

显示“作业详细信息”窗格中包含和排除的磁盘的屏幕截图。

在选择要从中还原磁盘的恢复点时,可以在还原期间查看备份磁盘。

显示还原期间备份磁盘的屏幕截图。

  • 如果使用标准策略备份 VM,则通过 Azure 门户为 VM 配置选择性磁盘备份体验仅限于 “仅限 OS 磁盘 ”选项。 若要在已备份的 VM 上使用选择性磁盘备份或高级包含或排除 VM 的特定数据磁盘,请使用 PowerShell 或 CLI。
  • 如果使用增强策略备份 VM,请选择要备份的数据磁盘。 (可选)选择在将来包括添加到 VM 的磁盘以供备份。

注意

如果数据跨磁盘,请确保备份中包含所有依赖磁盘。 如果不备份卷中所有依赖的磁盘,那么在还原时,无法创建包含某些未备份磁盘的卷。

仅在 Azure 门户中备份 OS 磁盘(标准策略)

使用 Azure 门户启用备份时,请选择 “仅 OS 磁盘 ”选项。 然后,可以使用 OS 磁盘配置 Azure VM 的备份,并排除附加到该 VM 的所有数据磁盘。

显示仅为 OS 磁盘配置备份的屏幕截图。

在 Azure 门户中配置选择性磁盘备份(增强策略)

使用 Azure 门户启用备份作时,选择要包含在备份中的数据磁盘。 (始终包含 OS 磁盘。还可以选择通过启用 “包括将来的磁盘 ”选项来包括将来添加的自动备份的磁盘。

注意

目前,只有在 VM 首次受保护时,才能在门户中配置一组磁盘。 需要使用 CLIPowerShell 命令编辑在保护完成后或 恢复保护 操作期间备份的磁盘集。

使用 Azure REST API

可以使用几个选择的磁盘配置 Azure VM 备份。 还可以修改现有 VM 的保护,以包含或排除几个磁盘。 有关详细信息,请参阅 “排除 Azure VM 备份中的磁盘”。

选择性磁盘还原

选择性磁盘还原是启用选择性磁盘备份时获取的附加功能。 使用此功能,您可以从恢复点中备份的所有磁盘中选择性地还原所需的磁盘。 它更高效,有助于在知道需要还原哪些磁盘的情况下节省时间:

  • OS 磁盘默认包含在 VM 备份和还原中,无法排除。
  • 启用磁盘排除功能后创建的恢复点仅支持选择性磁盘恢复。
  • 启用磁盘排除设置的备份仅支持 “磁盘还原 ”选项。 在这种情况下,不支持 VM 还原替换现有 还原选项,还原期间的选项将不可用。 如果在还原期间配置磁盘排除之前选择包含所有磁盘的还原点, VM 还原替换现有 选项将变为可用。

一张显示在还原操作期间,VM 还原和替换现有选项不可用的屏幕截图。

限制

经典 VM 和加密 VM 不支持标准策略的选择性磁盘备份功能。 不支持使用 Azure BitLocker 进行加密的 Windows VM 和使用 dm-crypt 功能的 Linux VM,它们通过 Azure 磁盘加密(ADE)来加密。 启用了 ADE 的 VM 可以通过增强策略使用选择性磁盘备份。

启用了选择性磁盘备份功能的 VM 不支持 “创建新 VM ”和 “替换现有 还原”选项。

目前,Azure VM 备份不支持附加有共享磁盘的 VM。 在这种情况下,不能使用标准策略的选择性磁盘备份,因为该策略不包括对磁盘的备份,只备份 VM。 可以将选择性磁盘备份与增强策略一起使用,以排除这些磁盘并配置备份。

如果在备份 Azure VM 时使用磁盘排除或选择性磁盘, 请停止保护和保留备份数据。 恢复此资源的备份时,需要再次设置磁盘排除设置。

计费

Azure VM 备份遵循现有的定价模型。 有关详细信息,请参阅 Azure 备份定价

标准版策略

如果使用标准策略,则仅当选择仅使用 OS 磁盘选项进行备份时,才会计算 OS 磁盘 的受保护实例(PI)成本。 如果配置备份并选择至少一个数据磁盘,则会计算附加到 VM 的所有磁盘的 PI 成本。 备份存储成本仅基于包含的磁盘计算,因此可以节省存储成本。 始终计算 VM 中所有磁盘的快照成本,包括包括在内的和排除在外的磁盘。

如果选择 “跨区域还原 ”(CRR),则排除磁盘后, CRR 定价 将应用于备份存储成本。

增强策略

如果使用增强的策略,PI 成本、快照成本和保管库层级存储成本均基于要备份的磁盘计算。

已知的限制

OS 类型 限制
Windows操作系统 跨区卷:针对跨区卷(分布在多个物理磁盘上的卷),请确保备份中包含所有磁盘。 否则,Azure 备份可能无法可靠地还原数据并将其排除在计费之外。

存储池:如果使用从存储池分配的磁盘,并且用于备份的 LUN 在虚拟磁盘和数据磁盘中是共享的,那么备份大小中除了数据磁盘的大小之外,还会包括虚拟磁盘的大小。
Linux 逻辑卷:对于分布在多个磁盘上的逻辑卷,请确保备份中包含所有磁盘。 否则,Azure 备份可能无法可靠地还原数据并将其排除在计费之外。

发行版支持:Azure 备份使用 lsscsilsblk 来确定要从备份中排除的磁盘,并估算备份的数据大小以进行 PI 费用 计算。 如果发行版(Debian 8.11、10.13 等)不支持 lsscsi,请使用 sudo apt install lsscsi 它来安装它以确保选择性磁盘备份正常工作。 否则,将根据已传输的备份数据计算 PI 费用,而不是利用 lsscsilsblk

如果选择 CRR 功能,则排除磁盘后, CRR 定价 将应用于备份存储成本。

常见问题

如何在 Windows 和 Linux 中仅计算 OS 磁盘备份的 PI 成本?

PI 成本是根据 VM 的实际(已用)大小计算的:

  • Windows:已用空间的计算基于存储操作系统的磁盘(通常是 C 盘)。
  • Linux:已用空间计算基于装载根文件系统 (/) 的设备。

我只配置了 OS 磁盘备份。 为什么要对所有磁盘进行快照操作?

如果使用标准策略,选择性磁盘备份允许通过强化备份中包含的磁盘来节省备份保管库存储成本。 但是,这样会对附加到 VM 的所有磁盘拍摄快照。 因此,系统始终会针对 VM 中的所有磁盘(包括的磁盘和排除的磁盘)计算快照成本。 有关详细信息,请参阅 计费

如果使用增强策略,则仅为 OS 磁盘和您选择的数据磁盘创建快照。

为什么无法通过排除附加到 VM 的共享磁盘来配置 Azure VM 的备份?

如果使用标准策略,Azure VM 备份不支持附加了共享磁盘的 VM。 不能使用选择性磁盘备份排除它们,然后配置备份。

如果使用增强策略,可以通过选择性磁盘备份(在 Azure 门户、CLI、PowerShell 等中)从备份中排除不受支持的磁盘,并为 VM 配置备份。