39.Azure(国内版)经典虚拟机迁移到资源管理器模式

在第一版Azure的Azure当中,界面大概是这样的,俗称为老版的Portal,在这个门户下创建的虚拟机到了新门户下就变成了经典模式的虚拟机

clip_image001

新门户(如下图)下是采用了资源管理器的概念,因此强烈建议在老portal下创建的虚拟机能转换到资源管理器下来运行,而在新门户下新建虚拟机或者其他服务时,建议不要再使用带有“(经典)”字样的服务,例如“虚拟网络(经典)”等等。

clip_image002

那么如何在新门户下将原来在老门户下创建的虚拟机转换成资源管理器模式呢?也就是俗称把经典虚拟机转换成资源管理器模式下的虚拟机

首先需要了解哪些资源可以迁移:

  • 迁移过程中支持以下经典 IaaS 资源

虚拟机

可用性集

云服务

存储帐户

虚拟网络

*** 网关

快速路由网关(仅限在虚拟网络所在的同一订阅中)

网络安全组

路由表

保留 IP

  • 支持的迁移范围:可通过 4 种不同的方式完成计算、网络和存储资源的迁移。 这 4 种方式为:

迁移(不在虚拟网络中的)虚拟机

迁移(虚拟网络中的)虚拟机

存储帐户迁移

未附加的资源(网络安全组、路由表和保留 IP)

备注:迁移期间可能有一段时间不允许进行管理平面操作和数据平面操作,但虚拟机是持续运行不中断的。(对于大多数 VM 配置来说,在经典部署模型和 Resource Manager 部署模型之间迁移的只有元数据。 基础 VM 在相同硬件、相同网络上,使用相同的存储来运行。在迁移过程中,可能有一段时间不允许进行管理平面操作。 不过,数据平面可继续运行。 也就是说,在 VM(经典)之上运行的应用程序不会在迁移期间造成停机。)

  • 不支持以下情况迁移:

在单个云服务中有一个以上的可用性集。

在单个云服务中有一个或多个可用性集和不在可用性集中的 VM。

更为详细的限制可以参考:https://docs.microsoft.com/zh-cn/azure/virtual-machines/windows/migration-classic-resource-manager-overview

先决条件:

安装最新版的Azure Powershell以及确保您是Azure门户的订阅管理员

+++++++++++++++++++++++++++++++++++++++++++++

在这里我准备了一台虚拟机隶属在“虚拟网络(经典)”、“虚拟机(经典)”、“存储帐户(经典)”、“可用性集”、“云服务”里。

clip_image003

这台虚拟机运行这IIS服务器

clip_image004

接下来转换需要用到Azure Powershell,怎么安装登陆Azure Powershell,请参看我之前的文章《

PowerShell连接Azure(国内&国际)》

登录到 Resource Manager 模型的帐户

clip_image005

登陆上以后首先可以看看我们的资源组模式下的订阅ID

Get-AzureRmSubscription | Sort Name | Select Id

clip_image006

接着选择您需要操作的这个资源组模式下的订阅ID

Select-AzureRmSubscription -SubscriptionName "0f53c77e-a06b-4d80-8974-9d5fe127c280"

clip_image007

向迁移资源提供程序注册

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

clip_image008

请等五分钟让注册完成。可以使用以下命令来检查审批状态

Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

在继续操作之前,RegistrationState 为 Registered

clip_image009

登录到经典模型的帐户

Add-AzureAccount -Environment AzureChinaCloud

clip_image010

获取可用经典模式下的订阅

Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName

clip_image011

设置当前会话为经典模式下Azure订阅

Select-AzureSubscription -SubscriptionName "Microsoft Azure Enterprise 试用版"

clip_image012

接下来确保在当前部署或虚拟网络的Azure区域中有足够的Azure 资源管理器虚拟机 vCPU,可以使用以下 PowerShell 命令检查 Azure 资源管理器中目前的 vCPU 数量,下面的命令会显示当前各个机型已使用的vCPU数量以及最大数量是多少,如果您的最大值不够那么需要联系21V后台给您进行扩大最大值

Get-AzureRmVMUsage -Location "China North"

clip_image013

接下来迁移Iaas资源,迁移Iaas资源分为迁移不在虚拟网络中的虚拟机迁移在虚拟网络中的虚拟机,因为我环境的问题,这里我没办法演示迁移不在虚拟网络中的虚拟机,如果您是这样的环境,请参考https://docs.microsoft.com/zh-cn/azure/virtual-machines/windows/migration-classic-resource-manager-ps

迁移不在虚拟网络中的虚拟机大致的步骤如下:

针对这种类型的迁移首先需要获取云服务列表(选取要迁移的云服务,如果云服务中的 VM 在虚拟网络中或者具有 Web 角色或辅助角色,该命令会返回错误消息):

Get-AzureService | ft Servicename

clip_image014

获取云服务的部署名称

$serviceName = "Classic2RM01"

$deployment = Get-AzureDeployment -ServiceName $serviceName

$deploymentName = $deployment.DeploymentName

clip_image015

接下来准备迁移云服务中的虚拟机,迁移有2种方式,一种是将VM迁移到资源管理器模式下创建新的虚拟网络;一种是迁移到资源管理器模式下现有的虚拟网络中

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • 如果是执行迁移到资源管理器模式下创建新的虚拟网络那么可以先验证是否可以迁移

$validate = Move-AzureService -Validate -ServiceName $serviceName -DeploymentName $deploymentName -CreateNewVirtualNetwork

$validate.ValidationMessages

以上命令会显示任何阻止迁移的警告和错误。如果验证成功,可继续执行下列“准备”命令

Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName -CreateNewVirtualNetwork

  • 如果是执行迁移到资源管理器模式下现有的虚拟网络中,先定义现有虚拟网络的变量参数

先建立好资源组名称、虚拟网络和子网

$existingVnetRGName = "ZJUNSENRG-North"

$vnetName = "ZJUNSEN-North-vNet"

$subnetName = "ZJUNSEN-Subnet-Srv"

接下来一样先验证迁移到现有的虚拟网络是否成功

$validate = Move-AzureService -Validate -ServiceName $serviceName -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName

$validate.ValidationMessages

如果验证成功,则可继续执行以下“准备”命令

Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

不管您上面采取的是哪一个想象的迁移方式,在执行玩准备命令后,即可查询VM的迁移状态,确保VM处于“Prepared”状态

$vmName = "Classic2RM"

$vm = Get-AzureVM -ServiceName $serviceName -Name $vmName

$vm.VM.MigrationState

接下来使用 Azure PowerShell 或 Azure 门户查看准备就绪的资源配置情况,如果尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令

Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName

如果准备就绪,则可继续进行,使用以下命令提交资源请求

Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName

迁移在虚拟网络中的虚拟机大致的步骤如下:

如果要迁移虚拟网络中的虚拟机,可以先迁移虚拟网络。虚拟机随着虚拟网络自动迁移,选取要迁移的网络,首先查询实际的虚拟网络名称

Get-AzureVnetSite | Select -Property Name

clip_image016

设置资源管理器模式下目标虚拟机网络名称(如果虚拟网络包含的 Web 角色/辅助角色或 VM 的配置不受支持,则会出现验证错误消息)

$vnetName = "Group ZJUNSENRG-North Classic-vNet"

使用以下命令验证是否可以迁移到目标虚拟网络

Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName

clip_image017

如果验证成功,则可继续执行以下步骤

Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

会出现一个新的虚拟网络名称是Group-ZJUNSENRG-North-Classic-vNet

clip_image018

显示成功

clip_image019

接下来使用 Azure PowerShell 或 Azure 门户查看准备就绪的资源配置情况,如果尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令

Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName

如果准备好的配置看起来没问题,则可继续进行,使用以下命令提交资源

Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName

提交后云服务、该经典虚拟机、经典虚拟网络就会消失

clip_image020

转而出现资源管理器模式下的虚拟机

clip_image021

命令也是执行成功

clip_image022

在这个转换期间我的虚拟机是一直没有中断持续提供服务的

clip_image023

在完成虚拟机迁移后,接下来就是迁移存储帐户

在迁移存储帐户之前,请执行以下先决条件检查

使用如下命令检查经典存储帐户下所有经典VM磁盘的RoleName和DiskName属性,RoleName是磁盘附加到虚拟机的名称。如果执行如下命令得到了返回的结果有其他磁盘,请先迁移这些磁盘所附加的虚拟机,再迁移存储帐户

$storageAccountName = 'zjunsennorthclassic01'

Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property DiskName | Format-List -Property RoleName, DiskName

clip_image024

使用如下命令查找经典存储帐户中未附加的经典VM磁盘

$storageAccountName = 'zjunsennorthclassic01'

Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName

clip_image025

如果返回的结果有磁盘,那么可以使用如下命令删除这些磁盘

Remove-AzureDisk -DiskName 'yourDiskName'

使用如下命令查看OS磁盘存储在经典存储帐户下的所有VM映像(自定义虚拟机映像)

Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName) } | Select-Object -Property ImageName, ImageLabel

clip_image026

使用如下命令查看数据磁盘存储在经典存储帐户下的所有VM影响(自定义虚拟机映像)

Get-AzureVmImage | Where-Object {$_.DataDiskConfigurations -ne $null -and ($_.DataDiskConfigurations | Where-Object {$_.MediaLink -ne $null -and $_.MediaLink.Host.Contains($storageAccountName)}).Count -gt 0 } | Select-Object -Property ImageName, ImageLabel

clip_image027

如果返回的结果有VM影响,那么可以使用如下命令删除这些VM映像

Remove-AzureVMImage -ImageName 'yourImageName'

使用以下命令验证要迁移的每个存储帐户

$storageAccountName = "zjunsennorthclassic01"

Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName

clip_image028

验证通过

如果您之前有监视存储帐户,那么一样的检测一下

$storageAccountName = "zjunsennorthclassicdiag"

Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName

clip_image029

接下来准备迁移经典存储帐户

$storageAccountName = "zjunsennorthclassic01"

Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName

$storageAccountName = "zjunsennorthclassicdiag"

Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName

clip_image030

接下来使用 Azure PowerShell 或 Azure 门户查看准备就绪的资源配置情况,如果尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令

$storageAccountName = "zjunsennorthclassic01"

Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName

$storageAccountName = "zjunsennorthclassicdiag"

Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName

如果准备好的配置看起来没问题,则可继续进行,使用以下命令提交资源

$storageAccountName = "zjunsennorthclassic01"

Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName

$storageAccountName = "zjunsennorthclassicdiag"

Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName

clip_image031

执行成功后在Azure门户上经典的存储帐户都消失了,转而出现了资源管理器模式的存储帐户

clip_image032

到此,我们的经典虚拟机就完成了到资源管理器模式下的迁移。整个迁移过程我的虚拟机都没有中断和停止服务

clip_image033

如果在验证迁移时返回不通过有错误信息请参考如下地址进行排查

https://docs.microsoft.com/zh-cn/azure/virtual-machines/windows/migration-classic-resource-manager-errors

如果只是迁移单个经典虚拟机,那么请参考

https://docs.microsoft.com/zh-cn/azure/virtual-machines/windows/migrate-single-classic-to-resource-manager

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值