将虚拟机和虚拟机规模集迁移到可用性区域支持
本指南介绍如何将虚拟机 (VM) 和虚拟机规模集从非可用性区域支持迁移到可用性区域支持。 其中将介绍不同的迁移选项,包括如何将可用性区域支持用于灾难恢复解决方案。
虚拟机 (VM) 和虚拟机规模集是启用了可用性区域的服务,这意味着可以使用以下方法之一部署 VM 资源:
区域:VM 资源部署到特定的自选可用性区域,以实现更严格的延迟或性能要求。
区域冗余:VM 资源复制到区域中的一个或多个区域,以提高高可用性 (HA) 体系结构中应用程序和数据的复原能力。
为了确保计算资源的高可用性,建议在迁移到可用性区域时为新的 VM 和 Microsoft Azure 虚拟机规模集选择多个区域。
有关 VM 服务的可用性区域支持的详细信息,请参阅 Microsoft Azure 虚拟机中的可靠性。 有关虚拟机规模集的可用性区域支持,请参阅 Microsoft Azure 虚拟机规模集中的可靠性。
先决条件
若要迁移到可用性区域支持,VM SKU 必须在你所在 Azure 区域内的各个局部区域中可用。 若要检查 VM SKU 的可用性,请使用以下方法之一:
- 使用 PowerShell 检查 VM SKU 可用性。
- 使用 Azure CLI 检查 VM SKU 可用性。
- 转到包含可用性区域支持的 Azure 服务。
停机要求
由于区域性 VM 是跨可用性区域创建的,因此本文中提到的所有迁移选项都需要在部署期间停机。
迁移选项 1:重新部署
何时使用重新部署
如果你制定了良好的基础结构即代码 (IaC) 实践来管理基础结构,请使用重新部署选项。 此重新部署选项提供更高的控制度,使你能够在部署管道中自动化各种流程。
重新部署注意事项
重新部署 VM 和虚拟机规模集资源时,将在同一可用性区域中创建 VM 的托管磁盘和 IP 地址等基础资源。 必须使用标准 SKU 公共 IP 地址和负载均衡器来创建区域冗余的网络资源。
无法将不支持可用性区域的现有托管磁盘附加到支持可用性区域的 VM。 若要将现有托管磁盘附加到支持可用性区域的 VM,需要创建当前磁盘的快照,然后创建附加了新托管磁盘的 VM。
对于要求网络延迟保持合理的较低水平并在应用层与数据层之间保持良好性能的区域部署,请使用邻近放置组。 邻近组可以强制将不同的 VM 资源分组到单个网络主干下。
如何重新部署
如果你要在创建新 VM 时迁移当前托管磁盘上的数据,请按照迁移托管磁盘中的说明操作。
如果你只想在可用性区域中使用新托管磁盘创建新 VM,请参阅:
若要了解如何在可用性区域中创建虚拟机规模集,请参阅创建使用可用性区域的虚拟机规模集。
迁移托管磁盘
本部分介绍如何将当前托管磁盘中的数据迁移到区域冗余存储 (ZRS) 托管磁盘或区域托管磁盘。
步骤 1:创建快照
创建快照的最简单直接方法是在 VM 脱机时执行此操作。 请参阅快照。 如果你选择此方法,预期会出现一段停机时间。 若要使用 Azure 门户、PowerShell 或 Azure CLI 创建 VM 的快照,请参阅创建虚拟硬盘的快照
如果要为附加到正在运行的 VM 的磁盘创建快照,请先阅读快照中的指导,然后继续操作。
注意
源托管磁盘保持其当前配置不变,你将继续为其付费。 为避免这种情况,必须在完成迁移并确认新磁盘正常工作后手动删除源磁盘。 有关详细信息,请参阅查找并删除未附加的 Azure 托管和非托管磁盘。
步骤 2:迁移托管磁盘上的数据
创建原始磁盘的快照后,可以使用它们来创建 ZRS 托管磁盘或区域托管磁盘。
将数据迁移到区域托管磁盘
若要将非区域托管磁盘迁移到区域托管磁盘,请执行以下操作:
从源磁盘快照创建区域托管磁盘。 zone 参数应与你的区域 VM 匹配。 若要从快照创建区域托管磁盘,可以使用 Azure CLI(下面提供了示例)、PowerShell 或 Azure 门户。
az disk create --resource-group $resourceGroupName --name $diskName --location $location --zone $zone --sku $storageType --size-gb $diskSize --source $snapshotId
将数据迁移到 ZRS 托管磁盘
重要
托管磁盘的区域冗余存储 (ZRS) 存在一些限制。 有关详细信息,请参阅限制。
使用以下 Azure CLI 代码片段从源磁盘快照创建 ZRS 托管磁盘:
# Create a new ZRS Managed Disks using the snapshot Id and the SKU supported storageType=Premium_ZRS location=chinanorth3 az disk create --resource-group $resourceGroupName --name $diskName --sku $storageType --size-gb $diskSize --source $snapshotId
步骤 3:使用新磁盘创建新 VM
将数据迁移到 ZRS 托管磁盘或区域托管磁盘后,在将这些新磁盘设置为 OS 磁盘和数据磁盘的情况下创建新的 VM:
az vm create -g MyResourceGroup -n MyVm --attach-os-disk newZonalOSDiskCopy --attach-data-disks newZonalDataDiskCopy --os-type linux
迁移选项 2:VM 区域到地带迁移
本部分详细介绍了如何将单实例 Azure 虚拟机从区域配置迁移到同一 Azure 区域中的目标可用性区域。
区域到地带迁移的主要优势
区域到地带迁移的优势包括:
- 增强用户体验 - 所需区域中的新可用性区域可降低延迟并打造良好的客户体验。
- 缩短停机时间 - 虚拟机全程都可得到支持,从而可提高应用程序复原能力和可用性。
- 网络连接 - 利用现有基础结构,例如虚拟网络 (VNET)、子网、网络安全组 (NSG) 和负载均衡器 (BLOB),这些基础结构可以支持目标地带配置。
- 高可伸缩性 - 通过减少手动接触点来大规模协调迁移,并将总体迁移时间从几天缩短到几小时甚至几分钟,具体取决于数据量。
组件
区域到地带迁移过程中会用到以下组件:
组件 | 详细信息 |
---|---|
移动集合 | 移动集合是在区域到地带迁移过程中创建的 Azure 资源管理器对象。 该集合基于 VM 的区域和订阅参数,包含要迁移的资源的元数据和配置信息。 添加到移动集合的 VM 必须位于同一订阅和区域/位置中,但可以从不同的资源组中选择。 |
移动资源 | 将 VM 添加到移动集合时,系统会将其作为移动资源进行跟踪,并且此信息会在当前处于移动过程中的每个 VM 的移动集合中维护。 移动集合将在订阅中的临时资源组中创建,并且可以根据需要与资源组一起删除。 |
依赖项 | 将 VM 添加到移动集合时,将进行验证检查,以确定 VM 是否具有不在移动集合中的任何依赖项。 例如,网络接口卡 (NIC) 是 VM 的依赖资源,必须随 VM 一起迁移。 确定每个 VM 的依赖项后,可以将这些依赖项添加到移动集合并移动它们,也可以选择目标地带配置中的现有替代资源。 可以在目标地带配置中选择现有 VNET,也可以根据需要创建新的 VNET。 |
支持矩阵
虚拟机计算
下表介绍了将虚拟机从区域配置迁移到地带配置的支持矩阵:
方案 | 支持 | 详细信息 |
---|---|---|
单实例 VM | 支持 | 支持单实例 VM 的区域到地带迁移。 |
可用性集内的 VM | 不支持 | |
使用统一业务流程的虚拟机规模集中的 VM | 不支持 | |
使用灵活业务流程的虚拟机规模集中的 VM | 不支持 | |
支持的区域 | 支持 | 仅支持提供可用性区域支持的区域。 详细了解区域的详细信息。 |
已在可用性区域中的 VM | 不支持 | 不支持跨地带迁移。 只能将同一区域中的 VM 迁移到另一个可用性区域。 |
VM 扩展 | 不支持 | 支持 VM 迁移,但扩展不会复制到目标地带 VM。 |
受信任启动的 VM | 支持 | 在门户中重新启用“完整性监视”选项,并在迁移后保存配置。 |
机密 VM | 支持 | 在门户中重新启用“完整性监视”选项,并在迁移后保存配置。 |
第 2 代 VM(UEFI 启动) | 支持 | |
邻近放置组中的 VM | 支持 | 源邻近放置组 (PPG) 不会保留在局部区域配置中。 |
具有专用主机的 VM | 支持 | 不会保留源 VM 专用主机。 |
启用了主机缓存的 VM | 支持 | |
从市场映像创建的 VM | 支持 | |
从自定义映像创建的 VM | 支持 | |
具有 HUB(混合使用权益)许可证的 VM | 支持 | |
VM RBAC 策略 | 不支持 | 支持 VM 迁移,但 RBAC 不会复制到目标地带 VM。 |
使用加速网络的 VM | 支持 |
虚拟机存储设置
下表介绍了移动虚拟机存储设置的支持矩阵:
方案 | 支持 | 详细信息 |
---|---|---|
使用托管磁盘的 VM | 支持 | 支持单实例 VM 的区域到地带迁移。 |
使用非托管磁盘的 VM | 不支持 | |
使用临时 OS 磁盘的 VM | 不支持 | |
使用共享磁盘的 VM | 不支持 | |
具有标准 HDD 的 VM | 支持 | |
具有标准 SSD 的 VM | 支持 | |
具有高级 SSD 的 VM | 支持 | |
具有 NVMe 磁盘的 VM(存储优化 - Lsv2 系列) | 支持 | |
VM 中的临时磁盘 | 支持 | 将创建临时磁盘;但它们不包含源临时磁盘中的数据。 |
具有 ZRS 磁盘的 VM | 支持 | |
具有 ADE(Azure 磁盘加密)的 VM | 支持 | |
使用服务管理的密钥进行服务器端加密的 VM | 支持 | |
使用客户管理的密钥进行服务器端加密的 VM | 支持 | |
启用了 PM 的基于主机加密的 VM | 不支持 | |
启用了 CMK 的基于主机加密的 VM | 不支持 | |
启用了双重加密的基于主机加密的 VM | 不支持 |
虚拟机网络设置
下表介绍了移动虚拟机网络设置的支持矩阵:
方案 | 支持 | 详细信息 |
---|---|---|
NIC | 支持 | 默认情况下,会创建新资源;但是,可以在目标配置中指定现有资源。 |
VNET | 支持 | 默认情况下,使用源虚拟网络 (VNET);也可以在目标配置中指定现有资源。 |
迁移选项 3:Azure 资源转移器
何时使用 Azure 资源转移器
使用 Azure 资源转移器可以轻松将 VM 或已加密的 VM 从一个不支持可用性区域的 Azure 区域转移到另一个支持可用性区域的 Azure 区域。 若要详细了解使用 Azure 资源转移器的好处,请参阅为何使用 Azure 资源转移器?。
Azure 资源转移器注意事项
使用 Azure 资源转移器时,所有密钥和机密将从源密钥保管库复制到目标区域中新建的目标密钥保管库。 与客户管理的密钥相关的所有资源(例如 Azure 密钥保管库、磁盘加密集、VM、磁盘和快照)都必须位于同一订阅和区域中。 Azure 密钥保管库的默认可用性和冗余功能不能用作已移动的 VM 资源的目标密钥保管库,即使目标区域是源密钥保管库复制到的次要区域。
如何使用 Azure 资源转移器
若要了解如何将 VM 移到另一个区域,请参阅将 Azure VM 移到另一个区域中的可用性区域
若要了解如何将已加密的 VM 移到另一个区域,请参阅教程:跨区域移动已加密的 Azure VM
灾难恢复注意事项
通常,可用性区域用于在高可用性配置中部署 VM。 这些可用性区域可能相互过于靠近,以致在发生自然灾害期间无法充当灾难恢复解决方案。 但在某些情况下,可用性区域可用于灾难恢复。 有关详细信息,请参阅使用可用性区域实现灾难恢复。
应在灾难恢复策略中纳入以下要求,以便在发生跨区域的计划内或计划外服务中断期间帮助组织运行工作负载:
- 源 VM 必须已经是区域 VM,即,它放置在逻辑区域中。
- 需要使用 Azure Site Recovery 服务将 VM 从一个区域复制到另一个区域。
- 将 VM 复制到另一个区域后,可以按照步骤运行灾难恢复演练、故障转移、重新保护和故障回复。
- 若要在可用性区域之间启用 VM 灾难恢复,请按照在可用性区域之间启用 Azure VM 灾难恢复中的说明操作。