Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  489 随笔 :: 0 文章 :: 417 评论 :: 70万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

  《Windows Azure Platform 系列文章目录

 

  因为我们在上一节中: Azure ARM (18) 将传统的ASM VM迁移到ARM VM (1)

  已经创建了Azure Virtual Network,则我们在迁移这个Virtual Network之后,就可以把该VNet里面的所有VM (LeiVM01和LeiVM02) 都迁移到ARM模式。

  

  正式迁移分为两个部分:

  1.在Azure PowerShell里,登录ARM模式,然后注册AzureRMResourceProvider,

  2.注册成功后,再新来一个Azure PowerShell窗口。登录ASM模式,开始迁移ASM模式下的Virtual Network

  3.迁移VNet成功之后,再迁移ASM Azure Storage Account存储账户

 

  我们先开始第一部分:在Azure PowerShell里,登录ARM模式,然后注册AzureRMResourceProvider

  我们打开Azure PowerShell,运行以下命令:

复制代码
#登录Azure China Portal,登录模式为ARM
Login-AzureRmAccount -Environment AzureChinaCloud

#设置订阅名称
$SubscriptionName = '[YourSubscriptionName]'

#选择该订阅
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

#注册Migration Resource
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

#需要等待大约5分钟才能注册成功,我们可以运行下面的命令,查看注册结果
Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

#一旦上面的命令返回结果为Registered,则表示注册成功
复制代码

  注册成功的截图:

  

 

 

  第二部分:登录ASM模式,开始迁移ASM模式下的Virtual Network

  我们打开Azure PowerShell,运行以下命令:

复制代码
#登录Azure China,登录模式为ASM Classic Model
Add-AzureAccount -Environment AzureChinaCloud

#设置订阅名称
$subscriptionName = '[YourSubscriptionName]'

#设置存储账户名称
$storageAccount = 'YourStorageAccountName'

Set-AzureSubscription -SubscriptionName $subscriptionName -CurrentStorageAccount $storageAccount

#选择当前订阅:
Select-AzureSubscription -SubscriptionName $subscriptionName -current

#设置要迁移的虚拟网络名称
$vnetName = "LeiASMVNet"

#Validate
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName

#Prepare
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

#如果发生问题,则放弃:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName

#如果没有问题,则Commit:
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
复制代码

  我这里的执行结果:

 

  如果大家仔细观察的话,会发现在执行-Prepare的时候,其实是把ASM VM复制到ARM VM

 

  我们执行到Commit的时候,会把原来的ASM删除

 

  新增加的ARM资源有(图略):

  1.Public IP Address,类型为固定公网IP地址

  2.负载均衡器

  3.2台新的ARM VM和对应的网卡

  到目前为止,ARM VM已经创建成果,但是VM的VHD文件,还是保存在老的ASM模式的Storage Account里

 

  第三部分:迁移VNet成功之后,再迁移ASM Azure Storage Account存储账户

  我们在Azure PowerShell执行下面的命令:

复制代码
#设置存储账户
$storageAccount = 'YourStorageAccount'

#Validate
Move-AzureStorageAccount -Validate -StorageAccountName $storageAccount

#Prepare
Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccount

#Abort
Move-AzureStorageAccount -Abort -StorageAccountName $storageAccount

#Commit
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccount
复制代码

 

 

  第四部分,迁移完Azure虚拟机后,还可以把虚拟机从非托管磁盘(Unmanaged Disk),升级到托管磁盘Managed Disk

  这里就不做阐述了。

 

 

  我们最后观察环境:

  1.迁移后的固定IPV4地址没有变化,DNS地址也没有变化:

  

 

  2.负载均衡器的LB Rule和NAT都没有变化

  

 

  3.虚拟机网卡的内网IP Private IP也是固定的,图略

 

  4.最后,在整个迁移期间,我都拿psping测试VM的连通性,发现没有发生服务器停机和丢包

复制代码
Connecting to 139.219.226.64:60989: 154.84ms
Connecting to 139.219.226.64:60989: 160.60ms
Connecting to 139.219.226.64:60989: 160.79ms
Connecting to 139.219.226.64:60989: 137.84ms
Connecting to 139.219.226.64:60989: 164.98ms
Connecting to 139.219.226.64:60989: 160.93ms
Connecting to 139.219.226.64:60989: 279.42ms
Connecting to 139.219.226.64:60989: 138.82ms
Connecting to 139.219.226.64:60989: 137.28ms
Connecting to 139.219.226.64:60989: 138.02ms
Connecting to 139.219.226.64:60989: 158.89ms

  Sent = 4130, Received = 4130, Lost = 0 (0% loss),
  Minimum = 134.90ms, Maximum = 3182.03ms, Average = 160.71ms
复制代码

 

  

posted on   Lei Zhang的博客  阅读(597)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示