vsphere學習筆記系列-vmotion

概念  

     vmotion是vsphere高級功能的基礎,DRS、HA、FT等功能都依賴於vmotion。簡單來說,vmotion指虛擬機漂移。比如有一臺VM原來在exsi1上運行,我們可以通過vmotion技術把VM移動到exsi2上。

     那爲什麼要用到vmotion呢?顯而易見,就是要保證服務能夠快速恢復。在非虛擬化環境中,一臺物理服務器down了,需要重新部署的話必須要重裝系統,部署軟件等,很麻煩。而虛擬化環境中,通過vmotion能夠快速的遷移服務,最大程度的減少服務宕機時間。

原理

vmotion流程圖 

如圖所示,簡答來說包括幾個過程:

1)EXSI-1拷貝VM的當前內存數據到EXSI-2中;

2)由於此時VM仍在運行中,肯定會有新的數據寫入,因此EXSI-1會記錄內存改變(memory bitmap)。這裏說的記錄內存改變不是記錄改變的具體內容,而已記錄內存改變的內容存放的地址。

3)當內存數據完全拷貝到EXSI-2後,EXSI-1中的VM會停止對外服務,保證內存不會再改變了。

4)EXSI-1拷貝memory bitmap到EXSI-2;

5)EXSI-2根據memory bitmap中的地址,去克隆對應地址中的內存數據。完成後,EXSI-2就具備和EXSI-1一模一樣的內存數據了。

6)由於兩個EXSI是共享一個存儲,因此此時VMDK可以直接移動給EXSI-2使用。相當於EXSI-2具有VM的硬盤內容了

7)此時,VM就能直接在EXSI-2運行並對外提供服務了,EXSI-1中內存數據會刪除以釋放空間。整個過程不存在操作系統的開關機操作,是一種在線式的遷移。

8)VM會通過反向ARP協議告訴網絡,VM的IP地址對應的MAC是在EXSI-2上了

實現VMOTION的前提條件

1)各個EXSI必須共享同一個外置存儲(否則無法共享VMDK硬盤文件)

2)服務器必須具有相同的硬件配置,尤其是CPU必須是一樣的品牌型號(CPU不一樣,很多高級功能可能無法落實或速度很慢)

3)CPU必須支持虛擬化命令,如INTEL-VT

4)如沒有采用分佈式交換機的,所有EXSI中的vswitch必須具有一樣的名稱,port group

5)VM必須是連入物理網絡的,不能在純虛擬網絡中。

6)VM不能對應到RAW格式磁盤機

7)必須安裝vmware tools

對於這些條件,可以人工檢查,也可以在集羣中啓用EVC模式(其實重點是檢查CPU兼容性)來自動檢查。當新加入的EXSI不匹配EVC中配置時,將不會啓用VMOTION

EVC模式:

1)disable。不啓用,使得各種類型CPU都使用VMOTION,但功能和速度不保證。

2)enable EVC for AMD hosts:只有AMD系列才能加入集羣。選擇這項能具體到CPU的型號

3)enable EVC for INTEL hosts:只有intel系列才能加入集羣。選擇這項能具體到CPU的型號

VMOTION實踐

一、非動態遷移

這種方法是VM能夠瞬間遷移(因爲沒有內存克隆的過程,僅直接掛載VMDK到另一臺EXSI,所以瞬間完成)到另一臺EXSI中。操作過程是:

VM關機---->用鼠標拖動VM到另一臺EXSI上---->開機,完成遷移。

二、動態遷移

操作方法也是用鼠標拖動VM到另一臺EXSI上即可。另外一種方法是右鍵點擊虛擬機,然後選擇“遷移”,然後按提示操作即可完成vmotion

可以看出vmotion操作都是非常簡單的。而在實際使用中,很少會去手動做vmotion,更多是通過vmotion來實現DRS、HA等高級功能。

SVMOTION

即存儲的vmotion。svmotion由於沒有內存的克隆等操作,而是直接的存儲到存儲的VMDK拷貝,因此較爲簡單。這裏只提及幾點需要注意的地方。

1)引導狀態下的VM做svmotion,會涉及硬盤內容改變的情況,因此會有類似vmotion中內存克隆的操作,因此會較慢,但不會影響業務,不丟包。

2)svmotion一般是要更換新存儲、更換到更快的硬盤(從SATA的LUN到SAS盤的LUN)時會使用到。

3)由於是VMDK拷貝,因此在新存儲和舊存儲中都會有一份VMDK,因此要考慮新舊版本的問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章