PowerShell迁移Azure虚拟机从ASM到ARM
2018-01-22 13:22
585 查看
Azure平台内置的PowerShell迁移服务,依赖于ClassicInfrastructureMigrate这个resource provider,目前在中国已经上线了,可以开始使用了。
对于生产环境的迁移,一定要非常谨慎,做好规划和评估,然后再开始迁移。微软的ASM到ARM的迁移,有一些基本的方法论,大家可以做个参考,保证你的迁移过程平滑而顺利:
• 评估 – 评估虚拟机所在虚拟网络是否满足迁移要求
• 开始 – 虚拟网络已经准备好的情况,可以开始准备迁移
• 验证 – 检查和验证所迁移的资源是否正常
• 提交 – 提交迁移请求,正式迁移
迁移步骤
1. 打开Powershell,登陆到你的资源管理器账号
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
登陆完成后,首先你要注册ClassicInfrastructureMigrate,否则后续的迁移无法使用:
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
检查当前ClassicInfrastructureMigrate的注册状态,如果你看到状态变成了Registered,才可以进行后续的操作。
Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
使用ASM登陆到当前的Azure账号:
Add-AzureAccount -Environment AzureChinaCloud
选择你的源订阅:
Select-AzureSubscription -SubscriptionId YOURSUBID
5.在迁移之前,你需要检查一下你的资源管理器配额,确保你有足够的资源进行迁移,如果不够的话,需要扩展你的配额
Get-AzureRmVMUsage -Location “China North”
定义你要迁移的虚拟机的虚拟网络,并验证迁移该虚拟网络是否有任何问题:
vnetName=“vnet”Move−AzureVirtualNetwork−Validate−VirtualNetworkNamevnetName
查看验证详细信息
message=Move−AzureVirtualNetwork−Validate−VirtualNetworkNamevnetname
$message.ValidationMessages
如果验证成功,则可继续执行以下准备步骤
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
如果尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
正式提交这个操作
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
可以看到,在经典模式的管理界面中,虚拟网络和虚拟机都已经看不到了,但是存储账号还在,这就意味着虚拟机和网络已经被迁移到ARM模式。完成虚拟机迁移之后,建议迁移存储帐户。
使用以下命令准备要迁移的每个存储帐户
storageAccountName=“storageaccount”Move−AzureStorageAccount−Prepare−StorageAccountNamestorageAccountName
提交迁移存储空间
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
迁移风险
无法预测迁移结果,一旦迁移失败,所有关联的资源都会处于不可操作或更新的状态,风险非常大,一旦迁移失败,目前没有具体的解决办法,是一个已知的BUG。
对于生产环境的迁移,一定要非常谨慎,做好规划和评估,然后再开始迁移。微软的ASM到ARM的迁移,有一些基本的方法论,大家可以做个参考,保证你的迁移过程平滑而顺利:
• 评估 – 评估虚拟机所在虚拟网络是否满足迁移要求
• 开始 – 虚拟网络已经准备好的情况,可以开始准备迁移
• 验证 – 检查和验证所迁移的资源是否正常
• 提交 – 提交迁移请求,正式迁移
迁移步骤
1. 打开Powershell,登陆到你的资源管理器账号
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
登陆完成后,首先你要注册ClassicInfrastructureMigrate,否则后续的迁移无法使用:
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
检查当前ClassicInfrastructureMigrate的注册状态,如果你看到状态变成了Registered,才可以进行后续的操作。
Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
使用ASM登陆到当前的Azure账号:
Add-AzureAccount -Environment AzureChinaCloud
选择你的源订阅:
Select-AzureSubscription -SubscriptionId YOURSUBID
5.在迁移之前,你需要检查一下你的资源管理器配额,确保你有足够的资源进行迁移,如果不够的话,需要扩展你的配额
Get-AzureRmVMUsage -Location “China North”
定义你要迁移的虚拟机的虚拟网络,并验证迁移该虚拟网络是否有任何问题:
vnetName=“vnet”Move−AzureVirtualNetwork−Validate−VirtualNetworkNamevnetName
查看验证详细信息
message=Move−AzureVirtualNetwork−Validate−VirtualNetworkNamevnetname
$message.ValidationMessages
如果验证成功,则可继续执行以下准备步骤
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
如果尚未做好迁移准备,因此想要回到旧的状态,请使用以下命令:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
正式提交这个操作
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
可以看到,在经典模式的管理界面中,虚拟网络和虚拟机都已经看不到了,但是存储账号还在,这就意味着虚拟机和网络已经被迁移到ARM模式。完成虚拟机迁移之后,建议迁移存储帐户。
使用以下命令准备要迁移的每个存储帐户
storageAccountName=“storageaccount”Move−AzureStorageAccount−Prepare−StorageAccountNamestorageAccountName
提交迁移存储空间
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
迁移风险
无法预测迁移结果,一旦迁移失败,所有关联的资源都会处于不可操作或更新的状态,风险非常大,一旦迁移失败,目前没有具体的解决办法,是一个已知的BUG。
相关文章推荐
- 通过Azure Powershell获取asm及arm虚拟机的配置信息
- Azure ARM (18) 将传统的ASM VM迁移到ARM VM (1)
- Azure ARM (20) 将非托管磁盘虚拟机(Unmanage Disk),迁移成托管磁盘虚拟机(Manage Disk)
- [Azure]使用Powershell获取ARM模式下可用的虚拟机平台映像信息
- Azure ARM (19) 将传统的ASM VM迁移到ARM VM (2)
- Azure运维系列10:跨订阅迁移ARM虚拟机
- Azure VM从ASM迁移到ARM(二)
- [Azure]使用Powershell将ARM虚拟机(托管磁盘)加入可用性集
- [Azure]使用Powershell输出某台ARM虚拟机的NSG
- [Azure]使用Powershell将ARM虚拟机加入可用性集
- [Azure]使用Powershell获取ASM和ARM存储的实际使用量
- [Azure]使用Powershell重新生成ARM虚拟机网卡
- [Azure]使用Powershell为ASM虚拟机创建快照
- [Azure]使用Azure Powershell查看ASM模式下Azure存储中的vhd文件对应的虚拟机
- [Azure]为ARM虚拟机配置Powershell侦听(HTTP和HTTPS)
- Azure Powershell获取指定订阅下的虚拟机信息(ASM)
- [Azure]使用Powershell调整ARM虚拟机的系统磁盘和数据磁盘大小
- [Azure]使用Powershell批量开启ASM虚拟机(带状态检测和重试)
- [Azure]使用Azure Powershell查看ARM模式下Azure存储中的vhd文件对应的虚拟机