VMware vMotion運作架構及效能最佳建議

虛擬化浪潮已經勢不可擋,許多企業及組織早期仍持觀望態度,但在引進內部測試環境並確定虛擬化技術真的可行後,已經紛紛將線上營運服務遷移到虛擬化環境當中。企業在VMware vSphere虛擬化平台中常用的vMotion功能,究竟有那些常見的問題與疑惑呢?

在2004年時,VMware在ESX虛擬化平台上首次發表實作出來的「VMotion」功能(vSphere 4.1之後正式更名為vMotion),可以讓VM虛擬主機在「運作中(Power On)」情況下,從A Host遷移到B Host且遷移期間沒有任何「停機時間(Downtime)」產生,如圖1所示。


▲圖1 VMware VMotion運作示意圖。(圖片來源:VMware – VMware VMotion文件)

該項技術在當時除了震驚所有與會人員外,也讓大家開始體會到虛擬化技術已經不僅僅是實驗測試用途,而是可以在營運環境上所使用的技術。時至今日,此技術名詞也已經等同於Live Migration Virtual Machine的代名詞。

TOP 1:vMotion怎麼做到VM虛 擬主機線上遷移?

聽說採用vMotion機制可以將VM虛擬主機從A Host遷移到B Host,並且在遷移過程中VM虛擬主機可以正常服務,不會有任何停機時間是真的嗎?它是怎麼辦到的?

VMware vMotion技術是從ESX 2.5虛擬化平台版本開始支援,它能將運作中之VM虛擬主機的「執行狀態(Execution State)」,從一台ESX/ESXi Host移動到另一台ESX/ESXi Host,並且遷移期間不會有任何停機時間產生,如圖2所示。


▲圖2 vMotion遷移機制運作示意圖。(圖片來源:VMware White Paper - Impact of Enhanced vMotion Compatibility on Application Performance)

VM虛擬主機的執行狀態,包含以下三個部分:

1.虛擬裝置狀態:如CPU、硬碟控制器、SVGA虛 擬顯示卡等等,這些虛擬裝置狀態大小通常介於8MB至128MB之間,因此可以迅速地傳送完畢。

2.外部連接裝置:如vNIC網路卡、SCSI設備等等, 以便屆時VM虛擬主機遷移作業完成後發出RARP封包,通知實體交換器進行MAC Table的內容更新,以及在新的vSwitch中進行Port資訊更新。

3.VM虛擬主機的記憶體狀態:此部分在vMotion遷 移作業中占用最多的傳輸時間(視VM虛擬主機記憶體大小而定),在傳輸記憶體狀態時可分為三個傳輸階段:Guest OS Trace Phase、Precopy Phase、Switchover Phase,以下分別加以說明。

階段一為Guest OS Trace Phase。觸發Guest OS遷移機制初始化,在目的端Host當中產生一台與來源端相同的VM虛擬主機,除了虛擬主機的名稱相同外,虛擬硬體裝置也都會一樣。

當稍後在執行線上遷移的過程中,若VM虛擬主機(Guest OS)的記憶體狀態有任何「變更」時,將會進行「追蹤(Trace)」的動作,然後存放在Memory Bitmap內,雖然追蹤記憶體狀態變更的動作會影響傳輸的吞吐量,但對於整體的Guest OS Memory來說影響並不大(例如VM虛擬主機記憶體有4GB,但變動量只有100MB)。

階段二為Precopy Phase。在此階段中會將VM虛擬主機的記憶體狀態,從來源端Host「複製(PreCopy)」到目的端Host。此時,便是透過兩台Host主機之間的vMotion Network(也就是VMkernel Port)進行傳輸,PreCopy複制機制在第一次時,會複製VM虛擬主機的所有的記憶體狀態。

但是在複製期間很有可能部分記憶體內容已經變更,因此會陸續再複製變更後的記憶體狀態,也就是剛才階段一所追蹤後存放的Memory Bitmap內容,在此階段中只會消耗Host主機的Network資源,並不會使用到CPU資源。

階段三為Switchover Phase。將VM虛擬主機的記憶體狀態複製完畢後,此時會有非常短暫的停頓時間(使用者及應用程式都不會感覺到),執行刪除來源端VM虛擬主機,以及釋放出該VM虛擬主機所佔用的記憶體區塊。

當目的端VM虛擬主機接手服務其記憶體區塊後,發出RARP封包通知實體交換器更新其MAC Table內容,以便使用者能夠繼續且無縫地存取VM虛擬主機所提供的服務。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!