新版的vSphere 7.0 Update 1c(Patch 02)及後續版本釋出了整合新功能Advanced Cross vCenter Server vMotion(XVM),管理人員無論想自建跨地區資料中心,或是整合雲端資料中心來達成混合雲運作,只要透過XVM就能夠輕鬆地將原本的虛機工作負載無縫地遷移到不同的運作環境。
過去,在vSphere虛擬化基礎運作架構中,線上運作中的VM虛擬主機能夠在沒有發生任何停機時間的情況下,任意地在vSphere虛擬化基礎架構中進行「線上遷移」(Live Migration),無論是線上遷移至不同的ESXi虛擬化平台主機,使用更高運算效能的CPU處理器和記憶體資源,或是線上遷移至不同的Datastore儲存資源,讓VM虛擬主機無縫地提升整體儲存效能表現。
事實上,在這樣的高彈性運作架構下,有個很大的前提是必須在同一個vCenter SSO Domain管理架構中,舉例來說,小型架構中只有「單台」vCenter Server管理主機時很容易理解,在中大型架構中有多台vCenter Server管理主機時,此刻除了整合Enhanced Linked Mode(ELM)或Hybrid Linked Mode(HLM)運作模式之外,重點是所有vCenter Server管理主機必須加入同一個「vCenter SSO(Single Sign-On)」環境中,無論是在本地端或是不同的站台,甚至是雲端。如此一來,整個vSphere虛擬化基礎架構,便能視為一個大的邏輯管理架構,才能彈性化地將線上運作中的工作負載,例如VM虛擬主機進行線上即時遷移等等動作,如圖1所示。
倘若多台vCenter Server管理主機彼此處於「不同」的vCenter SSO Domain環境時,那麼只能透過PowerCLI指令,搭配額外的參數呼叫vSphere API和SDK,才能夠順利遷移相關工作負載。
現在,管理人員只要採用新版vSphere 7.0 Update 1c(Patch 02)或後續版本,便能整合新功能Advanced Cross vCenter Server vMotion(簡稱為XVM),將線上運作中的VM虛擬主機工作負載,隨意進行線上即時遷移的動作,即便多台vCenter Server管理主機之間皆處於不同的vCenter SSO Domain也沒問題。
事實上,這個完備vSphere虛擬化彈性基礎架構最後一哩的新功能並非突然出現。早在2015年的vSphere 6.0版本時,VMware官方便已經推出Cross vCenter vMotion即時遷移功能,但僅限於同一個vCenter SSO Domain架構下才能實現。
因此,在VCF(VMware Cloud Foundation)團隊的努力下,推出以PowerCLI整合vSphere API的方式,幫助企業和組織達成跨不同vCenter SSO Domain架構遷移工作負載,並在2017年推出的PowerCLI 6.5R1中,將該特色功能整合至Move-VM cmdlet當中,隨後於2018年在VMware Fling實驗室中正式推出「Cross vCenter Workload Migration Utility」工具集(https://flings.vmware.com/cross-vcenter-workload-migration-utility),讓企業能夠更方便地使用此特色功能來遷移資料中心內相關的工作負載。
到了2019年,開始支援以Plug-ins的方式,整合此特色功能至vSphere HTML5 Client當中,最後在2020年正式整合至新推出的vSphere 7.0 Update 1c版本中,成為正式內建功能,如圖2所示。
Cross vCenter Server vMotion運作架構
Advanced Cross vCenter Server vMotion(XVM)特色功能,在經過幾年的功能演化後,從原本僅支援PowerCLI的Move-VM指令模式,到VMware Fling實驗室成為最熱門的項目之一,終於在新版vSphere 7 Update 1c中成為vSphere虛擬化基礎架構中內建的特色功能。
XVM特色功能可有效解決多台vCenter Server管理主機處於不同vCenter SSO Domain環境,仍然能夠線上遷移VM虛擬主機,同時多台vCenter Server管理主機之間,也無須建立Enhanced Linked Mode(ELM)或Hybrid Linked Mode(HLM)等運作模式。
此外,XVM特色功能的推出,更有助於企業組織建構混合雲環境,舉例來說,企業原有的工作負載運作在自家地端資料中心內部,現在希望將工作負載能夠無縫遷移到雲端環境,例如AWX、Azure、GCP等等,如圖3所示,便能透過XVM特色功能輕鬆完成。而且,XVM特色功能支援「單台」或「批次」遷移工作負載的工作任務。
XVM特色功能支援「Import VMs」和「Migrate」兩種工作流程模式,如圖4所示。管理人員過去在執行Import VMs動作時,在工作流程中只能依序選擇欲匯入的VM虛擬主機、運算資源、儲存資源等,而現在透過XVM特色功能,在工作流程中可選擇匯入VM虛擬主機的來源端vCenter Server,以及匯入VM虛擬主機後的目的端vCenter Server管理主機。至於Migrate工作流程,與過去遷移工作負載的操作步驟和體驗大致相同,主要差異在於選擇遷移選項時,將多出一個全新的「Cross vCenter Server Export」選項可供選擇。
實戰Advanced Cross vCenter Server vMotion
在本文實作環境中,負責使用者身分驗證和DNS伺服器名稱解析任務,Windows網域控制站所建構的網域名稱為「lab.weithenn.org」,而在vSphere虛擬化平台和vCenter Server管理主機的部分,皆採用最新發佈的「vSphere 7 Update 2」版本。至於vCenter Server管理主機的部分,總共建構二台vCenter Server管理主機,主機名稱是「vCenter-A」和「vCenter-B」,並且分別建構所屬的「Datacenter-A、Cluster-A」和「Datacenter-B、Cluster-B」。
至於部署vCenter Server管理主機時,採用不同的vCenter SSO Domain名稱,分別是「SSO-A.lab.weithenn.org」和「SSO-B.lab.weithenn.org」,如圖5所示,在vCenter-A管理主機中,已經部署一台VM虛擬主機名稱為「VM-A」,稍後便是針對此台VM虛擬主機工作負載,透過XVM特色功能進行跨vCenter Server和vCenter SSO Domain的線上即時遷移工作任務。
Cross vCenter Server Export工作流程
確認前置作業和實作環境運作無誤後,在「vCenter-A」管理的虛擬化環境中,已經部署一台名稱為「VM-A」的虛擬主機,透過XVM特色功能在VM-A虛擬主機線上運作不中斷的情況下,遷移至「vCenter-B」的虛擬化環境中繼續運作,達成進行跨不同vCenter Server管理主機,以及跨不同vCenter SSO Domain線上即時遷移的工作任務。
在VM-A虛擬主機運作中的情況下,於vSphere HTML5 Client管理介面中,依序點選「Datacenter-A > Cluster-A > VM-A」,並在右鍵視窗中選擇「Migrate」項目。在彈出的Migrate互動精靈視窗中,選擇線上遷移項目,前三項是過去管理人員所熟知的線上即時遷移項目,本文實作環境則是選擇最新XVM特色功能項目「Cross vCenter Server export」,如圖6所示。此外,在繼續下一個工作程序之前,可以點選互動精靈視窗中右上角的「VM origin」,系統將會顯示VM-A虛擬主機,目前使用的資源位置為何,包含vSphere Cluster、ESXi虛擬化主機、vNetwork、Datastore等等資訊。
接著,在2-Select a target vCenter Server頁面中,於New vCenter頁籤中,填入目的端vCenter Server管理主機資訊,本文實作環境指向目的端「vcenter-b.lab.weithenn.org」主機,管理者帳號則是「Administrator@sso-b.lab.weithenn.org」,鍵入管理者密碼並確認無誤後按下〔LOGIN〕按鈕,系統將會進行使用者身分驗證程序,如圖7所示,順利通過驗證程序後將會得到Successfully connected成功驗證的訊息,才能繼續下一步工作流程。
值得注意的是,若勾選在〔LOGIN〕按鈕上方的「Save vCenter Server address」項目,將代表順利通過使用者身分驗證程序後,後續需要再次使用XVM特色功能時,便可以直接點選「Saved vCenters」頁籤,使用此次成功驗證的使用者身分執行,而無須不斷反覆地輸入目的端vCenter Server管理主機的機敏資訊。
在3-Select a compute resource頁面中,由於已經通過目的端vCenter Server使用者身分驗證程序,所以從這個工作流程項目開始,後續顯示的各項資源包括運算資源、儲存資源、虛擬網路等等,都是以目的端vCenter Server所管理的vSphere虛擬化基礎架構。在本文實作環境中,依據管理需求點選VM-A虛擬主機工作負載,屆時所要使用的運算資源,包含vSphere Cluster、DRS資源集區、ESXi虛擬化平台等等。
而在4-Select storage頁面內,與過去熟悉的遷移流程相同,倘若VM虛擬主機的vDisk虛擬硬碟格式需要進行調整,例如由Thick Provision Eager Zeroed改為Thin Provision,可以在遷移的過程中於此步驟點選「Select virtual disk format」下拉式選單,選擇VM虛擬主機要採用的新vDisk虛擬硬碟格式即可。另外,如果目的端vCenter Server主機有管理vSAN超融合叢集環境時,那麼可以在「VM Storage Policy」中選擇要套用哪個vSAN Policy至欲遷移的VM虛擬主機。
然後,選擇屆時VM-A虛擬主機工作負載所要使用的儲存資源,本文實作環境選擇「Datastore-B」儲存資源,如圖8所示,點選Datastore儲存資源後,系統將檢查目的端Datastore儲存資源是否滿足需求,通過系統檢測程序後,下方的Compatibility相容性檢測區塊中,就會顯示「Compatibility checks succeeded」檢測成功的訊息,並且繼續下一個工作流程。
在5-Select folder頁面中,選擇VM虛擬主機所要歸類的「VM資料夾」(VM Folder),管理人員依照VM虛擬主機工作負載的屬性,選擇目的端VM資料夾。來到6-Select networks頁面後,於「Source Network」欄位,將會顯示VM-A虛擬主機原本在來源端vCenter Server管理架構中採用的vSwitch Port Group名稱,而在「Destination Network」欄位,則讓管理人員可以選擇屆時VM-A虛擬主機在目的端vCenter Server管理架構中欲連接和使用的vSwitch Port Group名稱。
在本文實作環境中,VM-A虛擬主機原本連接至名稱為「SSO-A-vNetwork」的vSwitch Port Group,而屆時連接的目的端為「SSO-B-vNetwork」的vSwitch Port Group,如圖9所示。同樣地,選擇VM-A虛擬主機目的端使用的vSwitch Port Group名稱後,系統將檢查目的端vNetwork虛擬網路是否可用,通過系統檢測程序後,下方的Compatibility相容性檢測區塊內將會顯示「Compatibility checks succeeded」檢測成功的訊息,並繼續下一個設定。
在7-Select vMotion priority頁面中,選擇預設值「Schedule vMotion with high priority (recommended)」項目,盡快遷移指定的VM虛擬主機至目的端vCenter Server管理架構中,但可能會使用較多的CPU運算資源。
最後,在8-Ready to complete頁面中,再次確認剛才在每個工作流程中的選擇項目內容,確認無誤後按下〔Finish〕按鈕,便會立即執行跨不同vCenter Server和vCenter SSO Domain的線上即時遷移工作任務。值得注意的是,由於同時遷移VM虛擬主機的運算和儲存資源,因此需要視vMotion網路頻寬,以及VM虛擬主機的記憶體大小和vDisk虛擬硬碟空間,才能有效預估線上遷移所需花費的時間。
在二端vCenter Server管理的虛擬化基礎架構中,vMotion線上遷移網路規劃良好的情況下,例如近端「往返時間」(Round-Trip Time,RTT)請規劃在「10毫秒(ms)」以內,即便二端為遠距離不同站台,也規劃RTT時間在「150ms」以內,以避免vMotion線上遷移發生不可預期的錯誤。
待一段時間線上遷移工作任務執行完畢後,可以在目的端vCenter Server管理主機中發現,原本運作在來源端vCenter Server管理架構內的VM-A虛擬主機,已經無縫式線上遷移至目的端vCenter Server管理主機中,並且使用指定的ESXi虛擬化平台、Datastore儲存資源、vNetwork虛擬網路,如圖10所示。
Import VMs工作流程
順利透過Cross vCenter Server export工作流程,達成VM虛擬主機跨不同vCenter Server和vCenter SSO Domain遷移後。緊接著,實作演練在XVM特色功能中另一個工作流程「Import VMs」。
在過去的vSphere版本中,當管理人員執行「Import VMs」動作時,通常會選擇「OVF/OVA/VMDK」等檔案進行部署的動作,此時VM虛擬主機的運作狀態都是處於「關機」(Power Off)。
現在,透過XVM特色功能執行的「Import VMs」工作流程,則是與剛才執行的Cross vCenter Server export工作流程類似。同時,與舊版Import VMs機制最大的不同點,在於能夠選擇的VM虛擬主機運作狀態可以是「運作中」(Power On)。
在本文實作環境中,將剛才遷移至vCenter-B所管理的VM-A虛擬主機,透過XVM特色功能執行新式的「Import VMs」工作流程,線上不中斷地遷移回vCenter-A虛擬化基礎架構中。在vCenter-A管理介面中,點選vSphere Cluster或ESXi虛擬化平台,然後在右鍵視窗中選擇「Import VMs」項目,如圖11所示,準備進入新式Import VMs工作流程。
隨後,在Import VMs精靈互動視窗,於1-Select a source vCenter Server頁面中,選擇所要匯入的VM虛擬主機,目前正被哪台vCenter Server主機所管理,在本文實作環境中VM-A虛擬主機目前被vCenter-B主機所管理。
由於在剛才的Cross vCenter Server export工作流程中已經鍵入vCenter-B主機的連線和管理者帳號資訊,以及勾選「Save vCenter Server address」項目,並且通過系統的身分驗證程序,所以此次無須再次鍵入vCenter-B主機連線和管理者帳號資訊,直接在「Saved vCenters」下拉式選單中選擇vCenter-B主機項目即可,如圖12所示。
在2-Import Virtual Machines頁面中,將會列出VM虛擬主機狀態,無論VM虛擬主機為關機中或運作中皆能勾選。倘若VM虛擬主機數量過多時,可先透過右上方「Filter」欄位鍵入所要過濾顯示的VM虛擬主機關鍵字,再按下過濾圖示,即可顯示過濾關鍵字後的結果。
此外,如果顯示的欄位不足以幫助管理人員判斷時,則點選左下方Show Columns圖示,便能勾選想要額外顯示的欄位。舉例來說,該台vCenter Server管理架構中有多個vSphere Cluster,便可勾選額外顯示「Cluster」項目,讓管理人員能容易選擇至要執行Import VMs工作流程的VM虛擬主機。在本文實作環境中,分別勾選VM-A和VM-C虛擬主機為「運作中」(Power On)狀態,如圖13所示。
在3-Select a compute resource頁面中,由於已經通過目的端vCenter-A主機身分驗證程序,後續顯示的各項資源,將為目的端vCenter-A所管理的vSphere虛擬化基礎架構。在本文實作環境中,依據管理需求點選VM-A和VM-C虛擬主機工作負載,屆時所要使用的運算資源,包含vSphere Cluster、DRS資源集區、ESXi虛擬化平台等等。
在4-Select storage頁面中,同樣可以在此遷移的過程中,透過Select virtual disk format下拉式選單中,選擇變更VM虛擬主機的vDisk虛擬硬碟格式,例如由Thin Provision變更為Thick Provision Lazy Zeroed,倘若vCenter-A主機整合管理vSAN超融合叢集環境時,可以在VM Storage Policy下拉式選單中,選擇要套用哪個vSAN Policy至VM-A和VM-C虛擬主機。
在本文實作環境中,為VM-A和VM-C虛擬主機選擇採用「Datastore-A」儲存資源,如圖14所示,在繼續下一個工作流程之前,確認下方Compatibility相容性檢測區塊中是否顯示「Compatibility checks succeeded」檢測成功的訊息。
在5-Select folder頁面中,選擇VM-A和VM-C虛擬主機所要歸類的「VM資料夾」(VM Folder),管理人員依照VM虛擬主機工作負載的屬性,選擇目的端VM資料夾。
在6-Select networks頁面中,預設情況下,將會在「Source Network」欄位內顯示VM-A和VM-C虛擬主機,在來源端vCenter-B管理架構中使用的vSwitch Port Group名稱,在「Destination Network」欄位內,為VM-A和VM-C虛擬主機選擇屆時使用的vSwitch Port Group名稱。
值得注意的是,如果VM-A和VM-C屆時採用的vSwitch Port Group名稱不同時,可以按下右下角的〔Advanced〕按鈕,為不同的VM虛擬主機選擇採用不同的vSwitch Port Group。在本次實作中,為VM-A虛擬主機選擇目的端「SSO-A-vNetwork」的vSwitch Port Group,為VM-C虛擬主機選擇「SSO-A-App-vNetwork」的vSwitch Port Group,如圖15所示。同樣地,在繼續下一個工作流程之前,確認下方Compatibility相容性檢測區塊中,是否顯示「Compatibility checks succeeded」檢測成功的訊息。
而在7-Select vMotion priority頁面中,採用預設值「Schedule vMotion with high priority (recommended)」項目即可,以便盡快遷移指定的VM虛擬主機至目的端vCenter-A管理架構中。最後,在8-Ready to complete頁面中,再次確認剛才在每個工作流程中的選擇項目內容,確認無誤後按下〔Finish〕按鈕,如圖16所示,便立即為多台運作中的VM虛擬主機,執行跨不同vCenter Server和vCenter SSO Domain的Import VMs工作流程。
同樣地,可以在來源端的vCenter-B主機中,看到為VM-A和VM-C虛擬主機執行「Relocate virtual machine」工作任務,在目的端的vCenter-A主機中,則是執行「Initiate vMotion receive operation」工作任務。待Import VMs工作流程執行完畢,便可在目的端vCenter-A主機中發現,已經順利將原本運作在來源端vCenter-B主機內,VM-A和VM-C虛擬主機無縫式遷移完成。同時,在Import VMs工作流程中,使用指定的ESXi虛擬化平台、Datastore儲存資源、vNetwork虛擬網路,如圖17所示。
結語
透過本文的深入剖析和實作演練,相信管理人員除了理解Advanced Cross vCenter Server vMotion(XVM)特色功能和運作架構之外,搭配實作演練更能進一步體會XVM特色功能帶來的便利性和彈性,無論是企業和組織自建跨地區資料中心,或者希望整合雲端資料中心達成混合雲運作架構,透過XVM特色功能都能幫助管理人員輕鬆將原有VM虛擬主機工作負載無痛且無縫地遷移到不同運作環境中。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>