為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。
前言
過去,在 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 所示)。
圖 1、Long-Distance vSphere vMotion 運作架構示意圖
倘若,多台 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」工具集,讓企業和組織能夠更方便的使用此特色功能,遷移資料中心內相關的工作負載。
在 2019 年時,開始支援以 Plug-ins 的方式,整合此特色功能至 vSphere HTML 5 Client 當中,最後在 2020 年時,正式整合至新推出的 vSphere 7.0 Update 1c 版本當中成為正式內建功能(如圖 2 所示)。
圖 2、Advanced Cross vCenter Server vMotion 特色功能歷史演進示意圖
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 特色功能支援「單台」或「批次」遷移工作負載的工作任務。
圖 3、VMware Cloud on AWS with Direct Connect 運作架構示意圖
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 的線上即時遷移工作任務。
因為二台 vCenter Server 管理主機,並未處於「同一個」vCenter SSO Domain。所以,只能開啟二個獨立的 vSphere HTML 5 Client 管理介面,分別連接至不同的 vCenter Server 管理主機。
圖 5、跨 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 HTML 5 Client 管理介面中,依序點選「Datacenter-A > Cluster-A > VM-A」,在右鍵視窗中選擇「Migrate」項目。在彈出的 Migrate 互動精靈視窗中,首先選擇線上遷移項目,前三項是過去管理人員所熟知的線上即時遷移項目,本文實作環境則是選擇最新 XVM 特色功能項目「Cross vCenter Server export」(如圖 6 所示)。此外,在繼續下一個工作程序之前,管理人員可以點選互動精靈視窗中右上角的「VM origin」,系統將會顯示 VM-A 虛擬主機,目前使用的資源位置為何,包含,vSphere Cluster、ESXi 虛擬化主機、vNetwork、Datastore…… 等資訊。
圖 6、選擇 Cross vCenter Server export 線上即時遷移項目
在 2-Select a target vCenter Server 頁面中,於 New vCenter 頁籤中,請填入目的端 vCenter Server 管理主機資訊,本文實作環境請指向目的端「vcenter-b.lab.weithenn.org」主機,管理者帳號則是「Administrator@sso-b.lab.weithenn.org」(如圖 7 所示),鍵入管理者密碼並確認無誤後按下「Login」鈕,系統將會進行使用者身份驗證程序,順利通過驗證程序後將會得到 Successfully connected 成功驗證的訊息,才能繼續下一步工作流程。
值得注意的是,在 Login 鈕上方的「Save vCenter Server address」勾選項目,表示順利通過使用者身份驗證程序後,後續需要再次使用 XVM 特色功能時,便可以直接點選「Saved vCenters」頁籤,使用此次成功驗證的使用者身份執行,而無須不斷反覆的輸入目的端 vCenter Server 管理主機的機敏資訊。
圖 7、鍵入另一台 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 虛擬主機採用的 Datastore 時,可以點選右上方「VM origin」,即時了解 VM 虛擬主機原有使用的 Datastore 儲存資源。
請選擇屆時 VM-A 虛擬主機工作負載所要使用的儲存資源,本文實作環境為選擇「Datastore-B」儲存資源(如圖 8 所示),點選 Datastore 儲存資源後,系統將會檢查目的端 Datastore 儲存資源是否滿足需求,通過系統檢測程序後,下方的 Compatibility 相容性檢測區塊中,將會顯示「Compatibility checks succeeded」檢測成功的訊息,並且繼續下一個工作流程。
圖 8、選擇 VM 虛擬主機所要使用的目的端 Datastore 儲存資源
在 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」檢測成功的訊息,並且繼續下一個工作流程。
圖 9、選擇 VM 虛擬主機所要使用的目的端 vSwitch Port Group 名稱
在 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 為執行「Relocate virtual machine」工作任務,在目的端 vCenter Server 為執行「Initiate vMotion receive operation」工作任務。
在二端 vCenter Server 管理的虛擬化基礎架構中,vMotion 線上遷移網路規劃良好的情況下,例如,近端「往返時間」(Round-Trip Time,RTT)請規劃在「10 ms」以內,即便二端為遠距離不同站台,也請規劃 RTT 時間在「150 ms」以內,以避免 vMotion 線上遷移發生不可預期的錯誤。
待一段時間線上遷移工作任務執行完畢後,可以在目的端 vCenter Server 管理主機中發現,原本運作在來源端 vCenter Server 管理架構內的 VM-A 虛擬主機,已經無縫式線上遷移至目的端 vCenter Server 管理主機中,並且使用指定的 ESXi 虛擬化平台、Datastore 儲存資源、vNetwork 虛擬網路(如圖 10 所示)。
圖 10、達成跨不同 vCenter Server 和 vCenter SSO Domain 線上即時遷移 VM 虛擬主機
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 工作流程。
圖 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 所示)。
圖 12、直接使用先前通過的驗證資訊,無須再次鍵入 vCenter-B 主機連線和管理者帳號資訊
在 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 所示)。
請注意,勾選多台 VM 虛擬主機時,這些勾選的 VM 虛擬主機運作狀態必須「一致」,否則系統將無法進入下一個工作流程,並顯示「All VMs to be migrated in a batch must be in the same power state」的錯誤訊息。
圖 13、勾選二台 VM 虛擬主機執行 Import VMs 工作流程
在 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 虛擬主機。
與 Cross vCenter Server export 工作流程不一樣的地方在於,管理人員忘記原本 VM 虛擬主機採用的 Datastore 時,只能取消此工作流程至 VM 虛擬主機進行查看,而不像 Cross vCenter Server export 工作流程,可以隨時點選右上方「VM origin」進行查看。
在本文實作環境中,為 VM-A 和 VM-C 虛擬主機選擇採用「Datastore-A」儲存資源(如圖 14 所示),在繼續下一個工作流程之前,請確認下方 Compatibility 相容性檢測區塊中,是否顯示「Compatibility checks succeeded」檢測成功的訊息。
圖 14、VM-A 和 VM-C 虛擬主機選擇屆時採用的 Datastore 儲存資源
在 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」檢測成功的訊息。
圖 15、為個別 VM 虛擬主機選擇不同的目的端 vSwitch Port Group 名稱
在 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 工作流程。
圖 16、為多台運作中的 VM 虛擬主機,執行跨不同 vCenter Server 和 SSO 的 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 所示)。
圖 17、透過 Import VMs 工作流程,線上不中斷且無縫式的遷移多台 VM 虛擬主機
結語