这两天开始讲之前在老门户(ASM)中的虚拟机往新门户(ARM)中进行迁移,阅读了很多博主的文章和微软云网站的介绍,在下使用微软云官网介绍的迁移工具进行迁移。
在开始迁移体验之前,了解一下整个迁移的流程,总共分四步:
验证:是在后台对进行迁移的资源执行数据分析,并在资源能够进行迁移时返回成功/失败
准备:是要模拟将 IaaS 资源从经典资源转换为 Resource Manager 资源的过程,并以并排方式让此转换过程直观可见。
检查:登录到门户并抽查属性和资源,来验证元数据的迁移是否正常。
提交/中止:完成验证之后,就可以提交迁移/你将更改还原为经典部署模型,并停止迁移。
要迁移的虚拟机:
虚拟机名称:Ubuntuvm
虚拟网络:vnetweb
云服务:scweb
存储账号:storageweb
迁移工具:Powershell
下面开始进行迁移:
1. 登陆到你的资源管理器账号
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
2. 设置订阅并针对迁移进行注册
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
整个过程需要3-5分钟,状态变成Registered
Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
3. 登录ASM,并选择对应订阅
Add-AzureAccount -Environment AzureChinaCloud
选择你的源订阅:
Select-AzureSubscription -SubscriptionId “网站&微信”
4. 开始迁移
4.1, 验证
Move-AzureVirtualNetwork -Validate -VirtualNetworkName vnetweb
4.2, 准备
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName vnetweb
这个过程时间比较长,因为他会将ASM服务在ARM下进行迁移的预设动作。当完成后,登录到ARM门户可以看到增加了一个订阅为原始订阅-Migrated
进入-Migrated资源组可以看到相应资源已经创建完成,新的虚拟机,网络接口,公共IP和负载均衡。
但是,这是因为我们没有最终Commit,所以状态是正在更新。
4.3 检查没有问题后,进行确认操作。
Move-AzureVirtualNetwork -Commit -VirtualNetworkName vnetweb
这是原始云服务中的虚拟机将消失,ARM下的虚拟机的状态将正在运行。
有心的朋友可能发现,为什么资源组里面没有存储账号呢,因为存储账号还在ASM中,接下来需要迁移存储账号。
5. 存储账号的迁移
5.1 首先验证一下存储账号中是否有其他没有迁移的虚拟机还在ASM中。
$storage = "storageweb"
Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storage)} | Select-Object -ExpandProperty AttachedTo -Property DiskName | Format-List -Property RoleName, DiskName
如果存在Powershell会显示出来,比如。
5.2 验证:
Move-AzureStorageAccount -Validate -StorageAccountName storageweb
5.3 准备
Move-AzureStorageAccount -Prepare -StorageAccountName storageweb
ARM下也出现了新的资源组-Migrated
5.4 确认
Move-AzureStorageAccount -Commit -StorageAccountName storageweb
整个迁移过程就此完成,最好为了方便管理,将存储账号的资源组移动到SCWEB资源组中。
最后整个最好的地方时整个过程,虚拟机无宕机时间。