Azure VM從ASM遷移到ARM(一)

衡子發表於2017-06-02

Azure的IaaS有ASM和ARM兩個版本,ARM的一些優點前面已經聊過很多了。ARM有更細的管理顆粒度,更多的功能等。

如果想從ASM遷移到ARM,目前有兩類方法可以實現:

1. Azure平臺支援的遷移工具

2. 指令碼或工具實現的VHD複製,再建立虛擬機器

下面我們分別來介紹兩種方式。

一、Azure平臺支援的遷移工具

1. 介紹

Azure平臺支援的遷移工具的實質,是將Azure VM的管理權從ASM遷移到ARM。而在這個過程中,Azure VM的Disk、Network以及CPU和Memory都沒有發生改變。

這中遷移本質也是ASM和ARM管理權的轉換:ASM將VM的管理權轉給了ARM。

從上圖可以看出,Azure的VM有兩種管理管理方式:ASM和ARM。遷移前後,VM沒有發生變化,只是管理者變掉了。

Azure平臺支援的遷移工具可以支援以下內容的遷移:

  • Virtual Machines
  • Availability Sets
  • Cloud Services
  • Storage Accounts
  • Virtual Networks
  • VPN Gateways
  • Express Route Gateways
  • Network Security Groups
  • Route Tables
  • Reserved IPs

工具可以支援兩種遷移方式:

1. 在一個Cloud Service下,但不在Vnet中,同一個Cloud Service下的資源同時遷移

2. 在一個Vnet內,所有資源同時遷移

由於客戶大多是採用Vnet部署系統,本文將介紹將同一個Vnet中VM從ASM遷移到ARM中。

Vnet中的VM資源遷移共分4步:

1. Validate驗證

2. Prepare準備

3. Check檢查

4. Commit確認 or Abort放棄

2. 遷移過程

a. 環境

本實驗有一個Vnet: hwwaf

azure network vnet list
info: Executing command network vnet list
+ Looking up the virtual network sites
data: Name Location Affinity group State Address space Subnets count VPN Gateway address
data: ----- ---------- -------------- ------- ------------- ------------- -------------------
data: hwwaf China East Created 10.1.1.0/24 2 139.217.16.184
info: network vnet list command OK

兩臺VM:

azure vm list
info: Executing command vm list
+ Getting virtual machines
data: Name Status Location DNS Name IP Address
data: ------- --------- ---------- ------------------------ ----------
data: hwwaf01 ReadyRole China East hwwaf01.chinacloudapp.cn 10.1.1.4
data: hwwaf02 ReadyRole China East hwwaf02.chinacloudapp.cn 10.1.1.5
info: vm list command OK

b. 4步遷移過程

1. validate

azure network vnet validate-migration hwwaf
info: Executing command network vnet validate-migration
data: Information : Deployment hwwaf02 in Cloud Service hwwaf02 is eligible for migration.
data: Information : VM hwwaf02 in Deployment hwwaf02 within Cloud Service hwwaf02 is eligible for migration.
data: Information : Deployment hwwaf01 in Cloud Service hwwaf01 is eligible for migration.
data: Information : VM hwwaf01 in Deployment hwwaf01 within Cloud Service hwwaf01 is eligible for migration.
data: Information : Virtual Network hwwaf is eligible for migration.
info: network vnet validate-migration command OK

2. Prepare

azure network vnet prepare-migration hwwaf
info: Executing command network vnet prepare-migration
info: network vnet prepare-migration command OK

3. Check

檢查狀態:

另外在這個vnet中有一個VPN Gateway,可以看到,做了Prepare以後,這個Gateway也準備進行遷移:

4. Commit

確認遷移:

azure network vnet commit-migration hwwaf
info: Executing command network vnet commit-migration
info: network vnet commit-migration command OK

可以看到此時VM已經執行正常:

如果希望終止遷移,可以採用下面的命令取消遷移:

network vnet abort-migration hwwaf

再檢視一下VPN Gateway:

也遷移成功了。

在遷移過程中,始終進行ping的操作,ping包沒有丟失。

64 bytes from 10.1.1.5: icmp_seq=5 ttl=64 time=1.48 ms
64 bytes from 10.1.1.5: icmp_seq=6 ttl=64 time=0.804 ms
64 bytes from 10.1.1.5: icmp_seq=7 ttl=64 time=0.881 ms
64 bytes from 10.1.1.5: icmp_seq=8 ttl=64 time=0.683 ms
64 bytes from 10.1.1.5: icmp_seq=9 ttl=64 time=0.882 ms
64 bytes from 10.1.1.5: icmp_seq=10 ttl=64 time=0.895 ms
64 bytes from 10.1.1.5: icmp_seq=11 ttl=64 time=1.08 ms
64 bytes from 10.1.1.5: icmp_seq=12 ttl=64 time=0.968 ms
64 bytes from 10.1.1.5: icmp_seq=13 ttl=64 time=0.810 ms
64 bytes from 10.1.1.5: icmp_seq=14 ttl=64 time=0.710 ms
64 bytes from 10.1.1.5: icmp_seq=15 ttl=64 time=0.962 ms
......
64 bytes from 10.1.1.5: icmp_seq=220 ttl=64 time=0.682 ms 64 bytes from 10.1.1.5: icmp_seq=221 ttl=64 time=0.831 ms 64 bytes from 10.1.1.5: icmp_seq=222 ttl=64 time=0.838 ms 64 bytes from 10.1.1.5: icmp_seq=223 ttl=64 time=0.926 ms 64 bytes from 10.1.1.5: icmp_seq=224 ttl=64 time=0.986 ms

總結:

通過Azure平臺自帶的ASM到ARM的遷移工具,可以方便的做VM的遷移。遷移包括VM和VPN Gateway。遷移的過程分幾個階段,遷移中VM沒有發生中斷。

下一篇文章,將介紹用MigAz的方式實現VM從ASM到ARM的遷移。

相關文章