作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。

當管理者要使用VMware HCX來進行虛機移轉到另一個vSphere環境時,他有幾種選擇:Cold Migration / vMotion / Bulk Migration / Replication-Assisted vMotion這些不同的移轉方式。在接下來要和大家討論的就是這些不同方式的差異比較,如果各位後續會使用到HCX這個服務,可以依據業務的特性來考慮要採用哪種方式。

Cold Migration

沒有那麼複雜,Cold Migration就是虛機在關機狀況下,在兩個vSphere環境間做移轉。因為是關機,當然在過程當中,業務無法提供服務。當我們在進行HCX移轉選擇時,只要虛機的狀態是關機,自動地就會被選擇為Cold Migration的方式。在下圖內,當管理者選擇的虛機都是關機狀態,後面Migration Info內就會直接指出目前採用的是Cold Migration機制

Cold Migration要可以運作,有下列幾個限制:

  • VM的版本必須要在第9版以上
  • 來源端與目的端vSphere間的vMotion網路需要可以路由連接且防火牆開啟

Cold Migration是採用VMware NFC (Network File Copy) 機制進行虛機複製,執行時,只能一個一個虛機轉移。也就是說即使我一次選了十個虛機,一次就只能拷貝一個,一個做完再做下一個。這個時候大家就會覺得奇怪了,那我們幹嘛不直接用vCenter裡面的Migration就好啦,為什麼還特別要裝HCX,而且vCenter裡面還可以容許一次多個Cold Migration / vMotion進行耶。

如果大家願意採用Cold Migration,而且可以直接執行,當然不用HCX沒問題。但請考慮下列問題:

  • 來源與目的端的vCenter / vSphere版本可能差很多,也沒有支援enhanced linked mode,不用HCX,要怎麼用UI來進行虛機移轉呢?(其實可以啦,但要用API)
  • 用了HCX,可以透過底層廣域網路加速 / 傳輸加密的機制,來優化資料傳輸喔

但不管怎麼說,Cold Migration是在虛機停機的狀況下來移轉,對於支援核心業務的虛機肯定是不夠好的。所以來討論下一個vMotion。

vMotion

如果我們是選擇目前正在開機的虛機,就可以選擇vMotion這種移轉形式,如下圖:

如名字所述,HCX就是呼叫標準Live vMotion的方式在來源與目的端間進行虛機移轉。方案限制與上面一樣:HW version必須在第9版以上,兩端vMotion網路必須可以互通。而當然,採用HCX時就可以享受到跨vSphere版本,以及底層傳輸網路優化等好處了。但幾件事情特別討論:

  • 與Cold Migration不一樣,因為是Live Migration,此時轉移時就會有CPU指令集版本的問題。之前標準我們的做法是採用EVC (Enhanced vMotion Compatibility),但HCX裡面有支援per-VM EVC,即使目的地的vSphere叢集沒有開EVC,仍然可以執行成功
  • 可是如果是從新的CPU轉移到早期的CPU環境,此時Live vMotion就無法執行了
  • 與Cold Migration相同,管理者可以在HCX介面內一次選很多個虛機進行vMotion轉移,但此時HCX會『一個一個做』。而vMotion又是從頭開始去進行虛機的轉移,比如說一個虛機佔用200G的儲存空間,此時要把第一個虛機傳完,才傳第二個,大家就排隊排不完。在下圖我們可以看到在選擇多個虛機做vMotion轉移時,當一個正在跑,另一個就是排隊等著 (Parked)

所以以『大規模進行批次轉移』這樣的需求來說,Cold Migration / vMotion其實不太符合需求。如果一次是需要轉幾百個虛機,那麼下篇我們來討論,在VMware HCX內的Bulk Migration機制是更為常用的。