說明
企業因應多雲時代的來臨,越來越多的企業考慮混合雲的架構以滿足資料中心延伸、備份或災備、資料中心移轉等的場景,那如果我們剛好在某VMware雲服務供應商那邊新購買了一個以vSphere為主的公有雲環境,應該要如何將本地資料中心的工作負載機動的移到雲端上去呢?
其實現在VMware已經有許多解決方案可以滿足這種需求,例如HCX、vSphere Replication、SRM或利用vCloud Availability等,但今天要介紹的是利用VMware所提供的Fling工具來實現兩地資料中心的虛擬機遷移。
我們都知道一般如果要實現跨vCenter Server之間的vMotion的功能的話,我們的環境必須要滿足這篇VMware的KB的要求:
- The source and destination vCenter Server instances and ESXi hosts must be running version 6.0 or later.
- The cross vCenter Server and long distance vMotion features require an Enterprise Plus license.
- When using the vSphere Web Client, both vCenter Server instances must be in Enhanced Linked Mode and must be in the same vCenter Single Sign-On domain so that the source vCenter Server can authenticate to the destination vCenter Server.
- Both vCenter Server instances must be time-synchronized with each other for correct vCenter Single Sign-On token verification.
- For migration of compute resources only, both vCenter Server instances must be connected to the shared virtual machine storage.
- When using the vSphere APIs/SDK, both vCenter Server instances may exist in separate vSphere Single Sign-On domains. Additional parameters are required when performing a non-federated cross vCenter Server vMotion. The Move-VM cmdlet as of PowerCLI 6.5 supports both federated and non-federated Cross vCenter Server vMotion.
正常設定Enhanced Linked Mode需要兩台vCenter Server都加入同一個SSO Domain(因為如此,PSC服務才可以將兩地vCenter Server所管理的虛擬機相關資料顯現在同一個操作介面上),但憑心而論,往往兩地的vCenter Server並無法達到這種要求,企業地端的vCenter主機或許早在購買雲端環境時已經設定好加入特定的SSO Domain了,這時如果要實現跨vCenter Server的vMotion或遷移,剩下的選項就只能用下指令的方式了。
另外,我們在雲端上SDDC的環境有可能底層的網路架構是以NSX-T所提供的服務(如VMware Cloud on AWS、VMware Cloud Foundation或單純的vSphere+NSX-T或NSX-V),地端的SDDC有可能是NSX-V或沒有跑網路虛擬化,如此一來更添加了兩邊環境的複雜性。
今天幸好有一個不僅僅是免費,而且是安裝非常簡單的小工具可以幫我們解決兩邊vCenter Server隸屬不同SSO Domain的這個問題,那就是使用VMware Community所發布的“Cross vCenter Workload Migration Utility”這個外掛。
如何安裝
依照該工具網站的指示,我們安裝只需要兩個簡單步驟:
- 找一台機器安裝Java Runtime Environment 1.8-10
- 下載及執行Cross vCenter Workload Migration Utility Java主程式
這裡我用的是一台Windows 10,這台機器必須可以網路連結到之後要掛載這個Plug-In的vCenter Server,反之亦然。
首先安裝好Java Runtime:
這個工具可以選擇以單機的方式執行(在執行Java的那台機器上)或以在vCenter Server上面安裝Plug-In的方式執行,這裡我們選擇以掛載vCenter Server UI Plugin的方式執行這個xvm-3.1.jar程式:
程式執行完畢我們可以看到vCenter Server HTML5介面上有訊息顯示說系統有一個新的plugin已經被成功的裝上,這時我們需要登出再登入一次,才可以看到多出來的選項:
再次登入vCenter Server後,我們可以看到新增的”Cross vCenter Migration” UI選項:
當我們點選該選項後,我們可以發現這個plugin其實是連接到我們安裝Java的機器(Endpoint: 10.96.64.136),所以被註冊進來的那一台vCenter Server必須要能連到該台運行Java的endpoint,並且該台機器正在執行xvm的程式,如果有顯示有問題,建議檢查兩端的機器防火牆設定:
使用
新增vCenter Server
首先將其它你要遷移到的目標環境的vCenter Server註冊進來,底下加進來的是配置有NSX-T Opaque Network為Port Group的vCenter Server:
輸入相關登入資訊後,點選”CREATE”,我們可以看到新的vCenter Server已經被加進來。
執行遷移工作
點選上圖的”Migrate VMS”,從下拉選單選擇要搬移的起始vCenter、Datacenter位置和點選是否要遷至相同的環境選項,然後點選”NEXT”:(這邊地端的vCenter Server網路是標準的VSS設定)
挑選要遷移哪一台機器,可以多選,然後點擊”NEXT”:
輸入目的地vCenter環境相關配置資料:
(這裡的網路對應已經支援選擇NSX-T Opaque Network的Segment網段)
在進階設定裡,也支援選擇要轉換為哪種儲存格式:
指定好以後就可以按”OK”,開始執行遷移!
這時可在傳統的vSphere Client看到相關工作進度或任何錯誤訊息:
也可用瀏覽器登入到之前有安裝Java的那台機器上的8443 port觀察相關遷移訊息:
登到雲端vCenter Server驗證一下,確認虛擬機已經遷移過去了:
P.S:
- 當我們執行”MIGRATE VMS”時,工具會視當時所選的虛擬機是處於開機或關機的狀態,自動選擇是要執行cold migration或是vMotion的動作。
- 用單機版的好處之一是可以用“Retry”再次執行之前執行過的遷移,而不用再一次輸入相同的資訊。
- 要注意兩邊vCenter Server可以支援的VM 硬體版本是否一致,請參考這裡。有時會遇到無法Live Migration,這時就要考慮用Cold Migration先停機再遷移的方式了。
- 雖然已經有許多用戶成功利用此工具遷移虛擬機,但因為Fling開發出來的工具只是Experimental (即沒有GSS Support),使用者在使用上遇到問題時必須本身具有一定程度的除錯能力,所以建議是在沒有辦法採用HCX/vCAV/SRM/VR的前提下,才使用此工具(畢竟是免費工具啊),使用前也請先備份vCenter Server。
- 此篇blog參考了以下幾篇文章:
- VMware Fling for Cross vCenter Workload Migration Utility.
- VMware William Lam的兩篇blogs, 第一篇,第二篇。要特別感謝同事之前的分享!
- VMware Shawn Ho的相關分享。
希望這個blog文章對想做混合雲工作負載雙向遷移的人有一點點的幫助,謝謝!