從ASM遷移到ARM(1):平臺支持的遷移服務

Azure上的ARM模式爲用戶帶來更好的管理,更多新的特性,更好的體驗,所以目前正在使用經典模式(ASM)的用戶,在瞭解和使用了ARM以後,也在考慮如何將原來基於ASM模式的虛擬機,存儲,網絡等IAAS服務轉向ARM模式,本文就來介紹一下相關的工具和服務。git

目前從ASM遷移到ARM,主要有如下一些工具和服務可使用:github

1.平臺內置的遷移服務:這個服務是內置的,只須要你註冊Resource Provider就可使用。shell

主要的優勢:windows

  • 虛擬機無宕機時間網絡

  • 有官方支持;ide

主要缺點工具

  • 遷移粒度只能經過vnet或者雲服務來遷移,沒法根據客戶定製的方式,好比項目進行遷移測試

  • 虛擬機和存儲,網絡要分開遷移,比較繁瑣url

  • 不支持跨地區,跨訂閱的遷移spa

     

2.ASMtoARM項目:支持單個虛擬機移植的Powershell腳本

 

官網地址:https://github.com/fullscale180/asm2arm

主要優勢:

  • 自動生成ARM模板和Powershell腳本

  • 靈活組合,支持網絡,NSG等

主要缺點:

  • 沒法支持多個虛擬機遷移

  • 時間較長

  • 有宕機時間(腳本不會幫你關機)

  • 無官方支持

3. MigAZ,一個微軟服務部門開發的遷移工具

官方網址:https://github.com/Azure/classic-iaas-resourcemanager-migration/tree/master/migaz

主要優勢:

  • 能夠在不一樣的訂閱之間遷移

  • 客戶自由選擇須要遷移的資源

  • 自動化遷移存儲的工具

  • 容許不一樣地區之間遷移

主要缺點:

  • 有宕機時間

  • 無官方支持

能夠看到,每一種遷移方式都各有優缺點,你們能夠根據本身的需求選擇合適的方式進行遷移;本系列會主要介紹Azure平臺原生支持的遷移服務以及MigAZ工具,對於基於Powershell的ASMtoARM工具,你們感興趣能夠本身研究一下。

平臺內置的遷移服務

平臺內置的遷移服務,依賴於ClassicInfrastructureMigrate這個resource provider,目前在中國已經上線了,能夠開始使用了。

對於生產環境的遷移,必定要很是謹慎,作好規劃和評估,而後再開始遷移。微軟的ASM到ARM的遷移,有一些基本的方法論,你們能夠作個參考,保證你的遷移過程平滑而順利:

  • 評估 – 評估虛擬機所在虛擬網絡是否知足遷移要求

  • 開始 – 虛擬網絡已經準備好的狀況,能夠開始準備遷移

  • 驗證 – 檢查和驗證所遷移的資源是否正常

  • 提交 – 提交遷移請求,正式遷移

用戶的環境相對而言會比較多樣而複雜,好比在vnet裏的虛擬機,不在vnet裏的虛擬機,帶有gateway的虛擬機等等,咱們先來看一下如何遷移最爲常見的在虛擬網絡中的全部虛擬機。

遷移虛擬網絡中的虛擬機到ARM

1.首先咱們準備一個測試的環境,一個Linux虛擬機,在一個vnet裏面,它的存儲帳號是demovmstorage:

2.打開Powershell,登錄到你的資源管理器帳號:

Login-AzureRmAccount -EnvironmentName AzureChinaCloud

3.登錄完成後,首先你要註冊ClassicInfrastructureMigrate,不然後續的遷移沒法使用:

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

檢查當前ClassicInfrastructureMigrate的註冊狀態,若是你看到狀態變成了Registered,才能夠進行後續的操做。

Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

4.使用ASM登錄到當前的Azure帳號:

Add-AzureAccount -Environment AzureChinaCloud

選擇你的源訂閱:

Select-AzureSubscription -SubscriptionId YOURSUBID

5.在遷移以前,你須要檢查一下你的資源管理器配額,確保你有足夠的資源進行遷移,若是不夠的話,須要打21v 400電話擴展你的配額

Get-AzureRmVMUsage -Location "China East"

6.定義一下你要遷移的虛擬機的虛擬網絡,並驗證一下遷移該虛擬網絡是否有任何問題:

$vnetName = "myVnet"

Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName

若是你看到以下的輸出,那麼就證實你的遷移驗證是成功的:

 

7.根據咱們多階段驗證的操做,你首先須要準備這個操做,而後才能提交這個操做,首先準備這個操做:

Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

8.而後正式提交這個操做,操做成功後,到經典管理的界面,檢查當前虛擬機,看到已經不見了,這是由於經典的portal只能管理經典模式的虛擬機:

Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName

能夠看到,在經典模式的管理界面中,虛擬網絡和虛擬機都已經看不到了,可是存儲帳號還在,這就意味着虛擬機和網絡已經被遷移到ARM模式,可是存儲並無沒遷移:

9.登陸到新的portal,在資源組頁面,你能夠看到系統已經自動建立了兩個資源組,以原來虛擬機名稱和虛擬網絡,後面加上migrated而成,若是你但願全部的資源在一個資源組中,你能夠手工選擇移動將一個資源組中的全部資源移動到另一箇中:

10. 從上述描述能夠看到,存儲實際上目前仍是保留在經典模式,咱們須要單獨遷移,一樣的步驟,咱們能夠定義存儲,準備遷移,提交遷移:

$storageAccountName = "demovmstorage"

 

Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName

 

Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName

 

Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName

 

11.上述遷移成功後,打開新的portal界面,檢查當前新的資源組resource group,能夠看到和以前同樣的規則,產生了一個新的資源組demovmstorage-Migrated,若是你但願他們放在一個資源組,也能夠進行移動

從本文能夠看到,使用平臺原生的遷移服務,能夠方便的遷移IAAS資源(虛擬機,網絡,存儲):

  • 遷移過程當中系統無中斷

  • 系統自動建立資源組,切分別爲虛擬網絡,虛擬機和存儲單首創建

  • 能夠經過虛擬網絡遷移全部在該網絡中的虛擬機

  • 存儲須要單獨遷移

  • 若是須要,須要手工把多個遷移的資源組合併爲一個

但並非全部的IAAS特性和配置都支持,有些配置和特性目前在平臺支持的遷移服務中還不支持,好比:

  • 虛擬機的自定義鏡像

  • 啓用了啓動診斷的高級存儲虛擬機

  • 虛擬網絡的端點訪問控制

  • 虛擬網關,Traffic manager的配置文件

更多的遷移支持範圍能夠參考:https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-windows-migration-classic-resource-manager

相關文章
相關標籤/搜索