使用 Azure PowerShell 将 Azure 虚拟网络从经典部署模型迁移到 Resource Manager
本文介绍如何从经典部署模型迁移到较新的资源管理器部署模型。
从经典部署模型到 Resource Manager 的迁移一次完成一个虚拟网络。 除了 Azure PowerShell 要求之外,不需要对工具或先决条件进行迁移。 迁移是虚拟网络资源的控制平面迁移。 迁移期间没有数据路径停机。 在迁移期间,现有工作负荷将继续正常运行,而不会丢失连接。 在迁移过程中,与虚拟网络关联的任何公共 IP 地址不会更改。
迁移完成后,必须使用 Resource Manager 模型执行所有管理操作。 管理操作只能通过 Resource Manager 部署模型进行访问。 子网或虚拟网络资源更改将不再通过旧部署模型提供。
将虚拟网络从经典模型迁移到 Resource Manager 模型时,虚拟网络中支持的资源会自动迁移到新模型。
先决条件
- 具有活动订阅的 Azure 帐户。 创建一个免费账号。
- 本文中的步骤和示例使用 Azure PowerShell Az 模块。 若要在计算机上本地安装 Az 模块,请参阅 安装 Azure PowerShell。 若要了解有关新 Az 模块的详细信息,请参阅 介绍新的 Azure PowerShell Az 模块。 PowerShell 命令频繁地更新。 如果未运行最新版本,则说明中指定的值可能会失败。 若要在系统上查找已安装的 PowerShell 版本,请使用 cmdlet Get-Module -ListAvailable Az cmdlet。
- 若要使用应用程序网关迁移虚拟网络,请在运行准备操作以移动网络之前删除网关。 完成迁移后,在 Azure 资源管理器中重新连接网关。
- 验证是否已在计算机上本地安装经典模块和 Az Azure PowerShell 模块。 有关详细信息,请参阅 如何安装和配置 Azure PowerShell。
- 连接到另一订阅中的 ExpressRoute 线路的 Azure ExpressRoute 网关无法被自动迁移。 在这些情况下,请删除 ExpressRoute 网关、迁移虚拟网络并重新创建网关。
支持的方案
经典到 Resource Manager 迁移支持以下方案:
包含虚拟机的经典虚拟网络。
每个云服务最多具有一个可用性集的经典虚拟网络。
包含Microsoft Entra 域服务的经典虚拟网络。
具有单个 VPN 网关或单个 Express Route 线路的经典虚拟网络。
不支持的方案
迁移不支持以下情景:
从经典部署模型管理虚拟网络的生命周期。
Azure 基于角色的访问控制支持经典部署模型。
使用 ExpressRoute 网关和 VPN 网关进行虚拟网络迁移。
在单个云服务中迁移具有多个可用性集的虚拟网络。
迁移包含一个或多个可用性集的虚拟网络,以及在单个云服务中不属于任何可用性集的虚拟机。
应用程序网关从经典版迁移到资源管理器。
注册资源提供程序
在本部分中,你将使用 Resource Manager cmdlet 登录到订阅并注册迁移资源提供程序。
登录到 Azure PowerShell:
Connect-AzAccount
注册迁移资源提供者:
Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
等待五分钟完成注册。 使用以下命令检查注册的状态:
Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
在继续操作之前,请确保 RegistrationState 处于
Registered
状态。注意
注册是一次性步骤,但在尝试迁移之前必须执行一次。 如果不注册,你将看到以下错误消息:
BadRequest:订阅未注册用于迁移。
检索要迁移的虚拟网络名称
在本部分中,你将登录到经典部署模型 PowerShell 并检索要迁移的虚拟网络的名称。
登录到经典部署 PowerShell:
Add-AzureAccount
运行以下命令以检索经典虚拟网络名称:
Get-AzureVnetSite | Select -Property Name
记下下一部分的虚拟网络名称。
迁移虚拟网络
在本部分中,你将验证迁移是否可以继续,然后准备迁移。
将上一节中记录的虚拟网络的名称放入可供命令使用的变量中。 将 myVNet 替换为在上一部分中检索的虚拟网络的名称:
$vnetname = "myVNet"
运行以下命令验证是否可以迁移虚拟网络:
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName
该命令将显示阻止迁移的任何警告或错误。 如果验证成功,可以继续执行以下准备步骤。
注意
如果虚拟网络包含 Web 角色或辅助角色,或者配置不受支持的虚拟机,则会收到验证错误消息。
运行以下命令,准备要迁移的虚拟网络:
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
如果尚未准备好迁移,并且想要返回到旧状态,请使用以下命令:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
提交迁移
如果准备好的配置中一切正常,可以通过运行以下命令提交迁移:
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
后续步骤
有关将 Azure 中的资源从经典部署模型迁移到 Resource Manager 的详细信息,请参阅: