Azure云计算经验菜鸟

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机

微软Azure云在2014年启用了全新的Azure资源管理器(ARM)以便替换旧的Azure Service Manager (ASM)管理方式。 在2020年2月28日停用了通过ASM管理IaaS虚拟机(VM)的功能,并将于2023年3月1日完全停用ASM。这意味着如果你现在还有使用ASM管理的资源(比如经典虚拟机Classic VM),到截止日之后将无法使用。因此考虑迁移经典虚拟机(Classic VM)是十分必要的。当迁移的经典虚拟机(Classic VM)因为所涉及的资源不符合迁移条件,最终导致整个经典虚拟机(Classic VM)无法完成迁移时,可以考虑以直接复制VHD的方式将经典虚拟机(Classic VM)无视原始复杂环境并直接重建为ARM VM。

[本文由AndyX撰写,本文的“Azure Portal”门户界面以英文为主,仅供参考。]

[本人中所有涉及到 Azure 的实验均在 Azure Global 国际版中进行配置,部分功能可能在 Azure 世纪互联中受到限制]

[本文为AndyX.Net原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明!]

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图

 

场景

  1. 需要快速迁移没有大多资源关联的经典虚拟机(Classic VM),由于涉及的资源比较少所以可以重建VNET。
  2. 当迁移的经典虚拟机(Classic VM)因为所涉及的资源不符合迁移条件,最终导致整个经典虚拟机(Classic VM)无法完成迁移的场景。

 

目的

使用Azcopy的方法直接复制Classic VM的Disk到新的订阅下,并重建ARM的VM。

 

测试环境

  1. 原始订阅: ANDYX-TEST-ENV
  2. 原始储存账户(Classic): cloudserv2937
  3. 原始Classic VM名称: ClassicVM(Linux)
  4. 原始区域: Southeast Asia
  1. 目标订阅: yoyo_Microsoft
  2. 目标储存账户(ARM): andyxmigratetest
  3. 目标ARM VM名称: NewARMVM(Linux)
  4. 目标区域: East US

 

优点

  1. 可以忽略现有Classic VNET网络架构(需要在新的订阅下重建)
  2. 可以忽略Region和Zone进行复制
  3. 可以直接创建ARM的VM

 

缺点

每个步骤都需要手动进行,不适合大规模资源迁移。

 

思路

Classic VM[Source] -> Copy Disk(VHD)[From Source to Destination] -> Create Managed Disk[Destination] -> Create ARM VM[Destination]

 

执行步骤

步骤1 – 准备工作

>>> 从原始VM订阅中执行以下准备工作,经典虚拟机:

1. 完全关闭(Deallocate) 经典虚拟机(ClassicVM)

2. 找到虚拟机所属的系统磁盘(OSDisk)以及数据磁盘(Datadisk)

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图1

3. 顺藤摸瓜找到与其关联的储存账户(StorageAccount)下的VHD文件,然后获取SAS TOKEN密钥权限以便为下载做准备

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图2

4. 生成SAS Token密钥,并将带有密钥的URL复制到记事本或者剪切板留作备用

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图3

>>> 从目标订阅中执行以下操作,ARM储存账户:

1. 创建名为“andyxmigratetest”的储存账户(StorageAccount),默认配置参数。

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图4

2. 创建名为 “test”的 containers

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图5

3. 获取SAS TOKEN密钥权限以便为接收VHD做准备,并将带有密钥的URL复制到记事本或者剪切板留作备用

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图6

4. 在记事本/剪切板中修改SAS Token, 添加VHD 名称(这很重要,必须以扩展名.vhd结尾):

例如:

https://andyxmigratetest.blob.core.windows.net/test/ClassicVM-OSDisk.vhd?sp=racwdli&st=2021-11-26T03:50:05Z&se=2021-11-26T11:50:05Z&spr=https&sv=2020-08-04&sr=c&sig=xxxxxxxxx

5. 下载azcopy命令行(绿色版无需安装): azcopy | Microsoft Docs

 

步骤2 – 开始从经典(Classic)资源中复制/迁移磁盘(Disk)

1. 运行命令控制台(cmd),定位到 azcopy 所在目录

2. 执行命令开始进行VHD复制/迁移:  azcopy cp “SourceVHD” “DestinationVHD”

举例:

azcopy cp "https://cloudserv2937.blob.core.windows.net/vhds/ClassicVM-os-9327.vhd?sp=r&st=2021-11-26T03:48:06Z&se=2021-11-26T11:48:06Z&spr=xxxxxxxxxx"   "https://andyxmigratetest.blob.core.windows.net/test/ClassicVM-OSDisk.vhd?sp=racwdli&st=2021-11-26T03:50:05Z&se=2021-11-26T11:50:05Z&spr=xxxxxx"

3. 等待VHD复制完成:

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图7

 

步骤3 – 在目标订阅中重建ARM 虚拟机

1. 到磁盘(disks) 页面, 使用已经接收的VHD创建新的托管磁盘(managed disk):

  • Source type: Storage blob
  • Source blob: 你接收VHD的位置
  • OS Type: 与原始VM类型相同
  • VM Generation: 与原始VM类型相同

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图8

2. 使用刚才创建好的托管磁盘(managed disk)来创建ARM的虚拟机(VM):

(在本次实验中以创建简单VM为测试步骤。如果你有网络架构方面的要求明,请在创建虚拟机之前完成网络相关的配置。)

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图9

3. 检查虚拟机运行是否正常:

微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机插图10

 

(全文完)

 

参考文献

 

文章撰写:作者AndyX,来自AndyX.Net

文章遵循 CC 4.0 BY-SA 版权协议,若需转载本文,请标注来源与链接:原创内容AndyX.Net版权所有

本文地址:微软Azure云 LAB 101: 使用Azcopy将经典虚拟机跨订阅迁移为ARM虚拟机 – AndyX.Net