Azure上幾種常見的VM復制操作


對於很多新上手使用Azure 虛擬機的客戶,常常有做快照,做鏡像,復制OS盤等的需求,有時會出現沒有事先閱讀到azure.cn上對應部分的文檔,創建完虛擬機下意識在portal上點了錯誤的按鈕出現“意料之外的停機”的情況,因此這里針對常見的VM復制的需求和操作做一個簡單的梳理,以截圖的方式幫助我們的Azure用戶更好的理解VM復制這塊的操作,以根據實際需求選擇正確的處理方式。

快照(snapshot)

快照是VHD在某個時間點的完整只讀副本,要對VM的OS盤或者數據盤做快照,或者通過快照創建虛機,可以通過命令行來做,如下演示了將一個名為VM0(創建區域在北2)的虛擬機做快照,然后利用該快照重新創建一台虛擬機VM2的過程(CLI命令):

簡單解釋一下這個過程:首先是通過 az vm show獲取磁盤ID並且存到了osDiskId這個變量中,然后將這個ID作為源創建了一個名為VM0snapshot的快照,再用這個快照創建了一個名為VM2OSDisk的托管磁盤,最后將這個托管磁盤作為OS盤attach創建了一台名為VM2的虛擬機。圖中報錯的兩個地方是我做的兩個嘗試:第一處是在創建VM0的快照時企圖將創建的region直接指定在東2,提示東2找不到源ID;第二處是在創建VM2的時候企圖將OS托管磁盤創建的VM直接指定在東2,提示失敗。所以這里我們可以看到,創建快照的時候是不能直接跨region的。

那么回到portal.azure.cn,如果想在網頁上創建快照,需要找到要創建快照的磁盤,點進去,下面以VM2的OS為例,展示下頁面操作的位置(紅框處):

 

 

點完【創建快照】后,可以直接在頁面上輸入快照名稱,注意【位置】部分的選項已經置灰,默認是和源盤放在同一個region的,那么問題來了,如果我想要利用這個快照在不同region創建VM,怎么操作呢,別着急,我們可以對創建好的快照執行導出(export)操作,用導出的vhd來創建,用CLI或者頁面上都可以導出,頁面上如下:

 

 這里會生成一個有過期時間的url讓用戶下載,然后我們演示一下如何使用這個url的內容在不同region創建一個新虛機:

簡單解釋一下:首先是在要創建VM的那個region創建好一個存儲賬號,在該存儲賬戶里面創建好一個container,然后執行 az storage blob copy命令,將上一步在頁面上執行export后生成的url鏈接作為源,復制到這個存儲賬號下面的blob上,命名為vm2snapsot.vhd,然后將這個vm2snapsot.vhd作為源創建托管磁盤再創建一個VM,這樣就實現了跨region的創建。

捕獲鏡像(image capture)

通常我們創建好VM后,轉到VM下面會看到概述里面有個【捕獲】的按鈕,英文界面顯示的是capture:

 

 

 這里特別提醒,這個capture,不是捕獲虛機的快照,它是捕獲虛機映像用的,通常我們會有以這台配置好的虛擬機為模板,創建多個同樣環境的虛擬機的需求,這里的capture指的就是捕獲這台虛擬機的映像,去掉機器的個人賬戶等信息,通用化之后用於再部署,所以點了這個按鈕,一定會先停機,因為要先解除這台虛擬機的資源分配然后創建鏡像。點完這個按鈕之后頁面上也會有明確的提示,‘創建映像前,請先使用命令做通用化並且會使當前虛機不可用’,下面演示下CLI如何捕獲鏡像再創建VM:

首先登陸到要捕獲的這台VM上執行sudo waagent -deprovision+user 命令將用戶等特定的信息刪除,然后將這台VM解除分配,通用化之后做映像:

 

 

然后用az vm create以剛剛的image為源創建一台新的VM,這里做了個小小的驗證,原來的那台VM0里是啟動了nginx的,通用化之后重新建的這台VM里我們重新開了下80端口去驗證服務是正常啟動沒問題的:

 

 

所以簡單總結就是,鏡像捕獲(capture)會停機,且如果捕獲之前沒有登錄到虛機執行“取消預配”的操作,新創建的虛擬機會報錯。

磁盤復制或導出

如果想對正在運行的VM磁盤做復制,可以用az disk create的方式來創建,源選對就可以:

如果想對正在運行的VM磁盤做導出,必須先停機,將這個盤解除attach才可以執行,頁面上操作的話也會有明確的提示:

接下來的步驟跟快照中導出后再創建虛機一樣,同樣的方式也可以支持跨region創建。

 

最后簡單總結下這幾種方式:

 

 

 

希望這篇文章能幫大家更清楚的認識這幾種操作的區別,方便在生產中做決策。

另附上幾篇參考鏈接:

如何創建虛擬機或 VHD 的映像:https://docs.azure.cn/zh-cn/virtual-machines/linux/capture-image

從快照創建虛擬機:https://docs.azure.cn/zh-cn/virtual-machines/scripts/virtual-machines-linux-cli-sample-create-vm-from-snapshot?toc=%2fcli%2fmodule%2ftoc.json

如何復制或導出托管磁盤:https://docs.azure.cn/zh-cn/articles/azure-operations-guide/virtual-machines/aog-virtual-machines-howto-export-managed-disks

淺談Azure的虛機復制:http://aubreyhan.net/undefined/21136/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM