本文將深入說明Azure Migrate的運作原理和執行程序,並進行實作演練,當企業或組織需要評估地端資料中心內的Hyper-V VM虛擬主機是否需要移轉至Azure公有雲環境時,就能夠正確判斷,並且平順安全地進行移轉作業。
過去,企業或組織想要將地端資料中心內的VM虛擬主機,遷移至Azure公有雲環境運作時,作業通常為在Azure公有雲環境中建立全新乾淨的VM虛擬主機,然後再依照VM虛擬主機的屬性,將相關資料進行複製或複寫。
現在,透過Azure Migrate移轉機制,即可將地端資料中心內的VM虛擬主機,經過探索、評估、測試等程序後,遷移至Azure公有雲環境繼續運作,如圖1所示。
此外,不僅支援將地端資料中心內Hyper-V VM虛擬主機進行移轉,不同的Hypervisor虛擬化平台或實體主機,甚至其他公有雲環境的VM虛擬主機,都可以透過Azure Migrate移轉機制,遷移至Azure公有雲環境繼續運作,如圖2所示。
準備開始實作
本文的實戰演練將在地端資料中心Windows Server 2022 Hyper-V虛擬化平台中,透過Azure Migration遷移機制,逐步將VM虛擬主機移轉至Azure公有雲環境中繼續運作。
由於移轉地端VM虛擬主機至Azure公有雲時,將會使用到網路頻寬進行傳輸作業,為避免過多的等待時間,因此僅移轉一台VM虛擬主機。目前在地端Hyper-V虛擬化平台中,運作一台名稱為WS2022-IIS的VM虛擬主機,並且該主機已經啟用IIS網頁伺服器服務,如圖3所示。
建立Azure Migrate專案
首先登入Azure Portal操作介面,接著透過關鍵字搜尋「Azure Migrate」,並依序點選「Get Started > Servers, databases and web apps > Discover, assess and migrate > Create project」。
在Create project頁面,選擇Azure訂閱帳戶,並填入Azure Migrate專案相關資訊,如圖4所示:
‧Subscription:選擇建立Azure Migrate專案所使用的Azure訂閱帳戶。
‧Resource group:選擇建立Azure Migrate專案所使用的資源群組。
‧Project:鍵入即將建立的Azure Migrate專案名稱。 ‧Geography:選擇建立Azure Migrate專案所使用的地理位置。這個地理位置的選擇,只是用來儲存從地端資料中心內收集到的「中繼資料」(Metadata),所以無論管理人員選擇位置為何處,都仍然可以執行Azure Migrate的評估和移轉作業。
探索Hyper-V虛擬化平台
在開始執行移轉作業之前,必須先確保地端資料中心內的Hyper-V虛擬化平台屆時能夠順利地與Azure公有雲環境溝通,透過Microsoft下載中心來下載「MicrosoftAzureMigrate-Hyper-V.ps1」指令碼,即可快速且逐一檢查Hyper-V虛擬化平台是否符合條件,以便稍後能夠順利執行探索Hyper-V虛擬化平台的工作任務。
在開始進行檢查作業之前,先在PowerShell視窗中執行「CertUtil -HashFile .\MicrosoftAzureMigrate-Hyper-V.ps1 SHA256」指令,確保使用SHA256雜湊驗證指令碼的完整性,避免遭受非預期的安全性威脅和惡意攻擊,確保無誤後便可以安心執行「.\MicrosoftAzureMigrate-Hyper-V.ps1」指令碼進行檢查作業。
MicrosoftAzureMigrate-Hyper-V.ps1指令碼檢查作業,將會執行下列多個確認項目,除了免去管理人員逐一手動組態設定之外,同時確保未遺漏任何必須執行的前置作業(圖5):
‧PowerShell版本:檢查Hyper-V主機上的PowerShell版本是否為4.0或更新的版本,避免發生非預期的錯誤。
‧提升權限:驗證目前Session執行狀態為提升權限中。
‧作業系統版本:驗證Hyper-V主機是否採用支援的作業系統版本,支援的版本為Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server 2022。
‧Hyper-V角色:驗證Hyper-V主機是否已經安裝和啟動Hyper-V伺服器角色。
‧啟用WinRM服務:是否啟用WinRM服務,確認啟用後將會在Hyper-V主機上開啟Port 5985(HTTP)和5986(HTTPs)連線通訊埠,讓設備可以使用Common Information Model(CIM)會話進行連線,以便提取Hyper-V伺服器的中繼資料和效能資料。
‧啟用PowerShell遠端管理:是否在Hyper-V主機上啟用PowerShell遠端管理功能,讓Azure Migrate設備可以透過WinRM機制,連線至Hyper-V主機執行PowerShell命令。
‧設定Hyper-V整合服務:檢查Hyper-V主機是否已經啟用Hyper-V整合服務。
‧SMB委派認證:檢查Hyper-V主機是否為容錯移轉叢集中的成員主機,以便啟用CredSSP進行SMB委派認證機制。
事實上,Azure Migrate遷移機制會透過在地端資料中心Hyper-V虛擬化平台,導入Azure Migrate Appliance執行探索作業,並將Hyper-V主機的組態設定及運作效能等中繼資料,收集後傳送至Azure公有雲的Azure Migrate專案。
切換至Azure Portal入口網站,在Azure Migrate頁面依序點選「Migration goals > Servers, databases and web apps > Assessment tools > Azure Migrate: Discovery and assessment > Discover」。
首先,詢問採用的虛擬化技術為何,在下拉式選單中共有三個選項,分別是VMware vSphere Hypervisor、Hyper-V、實體主機或AWX, GCP, Xen。在本文實作環境中,選擇「Yes, with Hyper-V」選項,選擇後將出現Azure Migrate Appliance資訊頁面。
在第1個選項Generate project key中,提供稍後部署至地端資料中心內Azure Migrate Appliance的名稱,按下〔Generate key〕按鈕以便產生金鑰,這個產生Azure Migrate專案金鑰的動作,需要花費幾分鐘的時間,並且在稍後地端資料中心的部署階段中,必須填入這個專案金鑰才能完成註冊程序。值得注意的是,命名Azure Migrate Appliance名稱時,採用英數位元並且長度不要超過14個字元,否則後續可能遭遇到非預期的錯誤。
在第2個選項Download Azure Migrate appliance,可以選擇下載「.VHD file」選項(https://go.microsoft.com/fwlink/?linkid=2191848),直接下載Azure Migrate Appliance的.VHD檔案(12GB),然後匯入地端資料中心的Hyper-V虛擬化平台中,或是選擇下載「.zip file」選項(https://go.microsoft.com/fwlink/?linkid=2191847),則是下載PowerShell安裝程式指令碼,然後登入地端Hyper-V虛擬化平台中,執行Azure Migrate Appliance安裝作業,選擇完畢後按下〔Download〕按鈕即可,如圖6所示。
下載完成.Zip檔案後,在解壓縮並執行部署作業之前,同樣先透過「Get-FileHash -Path ./AzureMigrateAppliance.zip -Algorithm SHA256」指令,檢查所下載的VHD檔案雜湊是否正確,避免下載到被竄改的檔案產生非預期的資安事件。
在地端資料中心內部署Azure Migrate Appliance時,必須先確保Hyper-V虛擬化平台能夠滿足部署Azure Migrate Appliance的條件,採用Windows Server 2016作業系統,需要配置8 vCPU、16GB vMemory、80GB vDisk磁碟空間。
在地端資料中心的Hyper-V虛擬化平台中,執行Azure Migrate Appliance匯入作業,在匯入作業流程中值得注意兩個部分。首先,在選擇匯入類型時,選擇「Copy the virtual machine (create a new unique ID)」,確保為匯入的Azure Migrate Appliance虛擬主機產生新的唯一識別ID,而在選擇採用的vNetwork虛擬網路時,確保選擇能夠存取網際網路的vNetwork虛擬網路即可。
成功匯入並啟動Azure Migrate Appliance虛擬主機後,先組態設定管理者密碼、時區、IP位址等等基本設定,接著開啟瀏覽器連線至Azure Migrate Appliance虛擬主機,採用HTTPs搭配Port 44368,連線至Azure Migrate Appliance初始化的組態設定頁面,並且同步確認是否能夠連線存取Azure公有雲,以及檢查時間是否與網際網路時間同步,後續的探索作業才能正常運作,如圖7所示。
值得注意的是,若是採用別台主機開啟瀏覽器,連線至Azure Migrate Appliance虛擬主機的Port 44368時,必須先鍵入管理者帳號和密碼,通過使用者身分驗證程序後,才能夠看到初始化頁面。
在1. Set up prerequisites階段中,第3個步驟Verification of Azure Migrate project key,便是請管理人員將剛才產生的Azure Migrate專案金鑰填入,然後按下〔Verify〕按鈕進行驗證。通過驗證程序後,將會顯示「Azure Migrate project key has been verified.」訊息,接著系統開始執行自動更新服務,確保所有服務更新至最新版本,這個更新作業可能需要5分鐘時間。在自動更新作業期間,只要按下View appliance services,就能夠查看每個服務的更新情況和進度。
自動更新作業完成後,必須登入Microsoft Azure PowerShell環境,確保能夠將Azure Migrate Appliance註冊至Azure Migrate專案中。按下〔Login〕按鈕複製裝置代碼,搭配Azure訂閱帳戶進行登入作業程序,如圖8所示,登入完成之後,可以點選View details查看詳細的登入資訊。
在2. Manage credentials and discovery sources頁面中,提供地端資料中心Hyper-V虛擬化平台的管理資訊。按下〔Add credentials〕按鈕,在視窗中鍵入Hyper-V主機或叢集的管理者帳號和密碼,以便系統稍後使用這個管理者憑證執行探索伺服器或叢集的動作。
接著按下〔Add discovery source〕按鈕,在視窗中鍵入Hyper-V主機或叢集的IP位址或FQDN完整名稱,以便連線至地端資料中心Hyper-V虛擬化平台,如圖9所示。值得注意的是,如果地端資料中心內只有一台Hyper-V主機,選擇Add single item即可,多台Hyper-V主機時則選擇Add multiple items,當Hyper-V主機或叢集節點主機數量眾多時,也支援採用Import CSV的方式一次加入大量主機。
一旦使用者身分驗證成功後,在Status狀態欄位中便會顯示Validation successful訊息,倘若管理者帳號密碼錯誤,或是Hyper-V主機未正確啟用WinRM服務並開啟Port 5985時,便會發生驗證失敗的情況。
在步驟3提供伺服器認證,以便執行軟體清查和無代理程式相依性分析,以及探索SQL Server實例和資料庫的部分,如果未使用這些功能,可以按下〔Disable〕按鈕略過此步驟,並繼續執行探索Hyper-V主機或叢集伺服器的工作程序。
現在,可以按下最下方的〔Start Discovery〕按鈕,開始讓探索程序執行偵測和探索,並將探索程序中取得的Hyper-V主機中繼資料,顯示在Azure Portal入口網站當中。此外,在預設情況下,探索及偵測每台Hyper-V主機大約需要花費2分鐘時間,才會顯示在Azure Portal入口網站中。
當系統完成探索Hyper-V主機或叢集環境時,系統會自動進行軟體清查作業,並且每隔12小時,再自動執行一次軟體清查作業。事實上,在軟體清查期間,會透過剛才所新增的伺服器認證逐一探索指定的Hyper-V主機或叢集,並針對無代理程式相依性分析進行驗證。
當探索和偵測作業完成,系統在Hyper-V主機或叢集的Status欄位狀態,將會顯示為Discovery Initiated,並且在〔Start Discovery〕按鈕旁顯示Discovery has been successfully initiated訊息,而且會提醒管理人員可以前往Azure Portal入口網站,查看詳細的探索資訊。
評估Hyper-V VM是否可移轉至Azure公有雲
探索作業完成後,在正式將地端Hyper-V主機中的VM虛擬主機移轉至Azure公有雲之前,可以先進行評估作業,以便管理人員除了了解移轉至Azure公有雲的可行性之外,也可以評估移轉至Azure公有雲後所要花費的費用,或者能否在盡量不影響效能的情況下如何節省點花費。
首先,在Azure Portal入口網站中,依序點選「Azure Migrate > Migration goals > Servers, databases and web apps > Assessment tools > Assess > Azure VM」項目,如圖10所示,進行地端VM虛擬主機移轉至Azure公有雲的評估作業。
在建立評估作業的第一階段Basics頁面中,評估類型請選擇至Azure VM項目,而Discovery source則選擇Servers discovered from Azure Migrate appliance項目,表示評估的VM虛擬主機,是從地端的Azure Migrate appliance執行探索和偵測工作任務而來,如圖11所示。
按下Assessment settings旁的Edit,進行相關屬性的編輯任務以便符合移轉需求:
‧Target location:選擇要將VM虛擬主機移轉至哪一個Azure資料中心,本文實作選擇East Asia。
‧Storage type:選擇移轉後的Azure VM虛擬主機所要採用的虛擬硬碟類型有哪些種類,可以依據IOPS儲存效能進行選擇。
‧Savings options(Compute):選擇要採用的節省選項,採用1年或3年的Azure保留資源方案,或者是1年或3年的Azure節省費用方案,管理人員依據VM虛擬主機的效能和工作負載考量後,選擇適合的選項即可。
‧Sizing criteria:選擇採用效能為主(Performance-based)或依照地端部署(As on-premises)進行評估作業。採用效能為主進行評估作業時,系統將會根據探索和收集到的VM虛擬主機效能資料進行評估,然後採用建議的Azure VM規模和IOPS儲存效能。同時,選擇Performance history效能歷史資料週期,例如1天、1週、1個月,以及Percentile utilization使用率百分比,例如50%~99%。若是選擇依照地端部署進行評估作業,便是直接採用地端資料中心的VM虛擬主機中繼資料,選擇相近的Azure VM規模和IOPS儲存效能。
‧VM series:選擇所要採用的Azure VM規模和系列,例如只考量D和E系列的Azure VM規模,而排除A系列的Azure VM。
‧Offer/Licensing program:選擇採用的Azure付費方式,例如企業授權的EA或Pay-As-You-Go等方案。
‧Currency:選擇在自身Auzre訂閱帳戶中用來支付費用的貨幣。
‧VM uptime:填入屆時Azure VM的運作時間,預設為每個月31天,每天24小時。
‧Already have a Windows Server license:選擇是否已經具備Windows Server軟體授權。
在2. Select servers to assess頁面中,首先在Assessment name欄位填入此評估作業的名稱,建立這個評估作業的群組。在本文實作中,由於是針對地端的IIS網頁伺服器進行移轉作業,所以分別採用「IIS_Azure_Migrate」為評估名稱,以「IIS_VMs_Group」為群組名稱,接著選擇地端的Azure Migrate appliance主機名稱,以及勾選準備進行評估作業的地端VM虛擬主機,如圖12所示。
在3. Rreview + create assessment頁面中,再次檢視相關組態設定值內容,確認無誤後按下〔Create assessment〕按鈕,系統將立即進行移轉至Azure VM的評估作業。
當評估作業完成後,點選Assessment Tools區塊內的Overview選項,可以看到剛才評估作業中所建立的IIS_VMs_Group群組內,目前評估的VM虛擬主機數量為1台,點選Manage下的Assessments選項,將會顯示地端VM虛擬主機移轉至Azure VM虛擬主機的建議評分,這個建議評分從最低的1顆星到最高的5顆星,簡單來說,評分越高代表地端VM虛擬主機移轉至Azure公有雲的可行性越高。
點選IIS_Azure_Migration項目後,在Overview頁面中,直接看到Azure移轉和成本估算的概要資訊。點選左側的Azure readiness項目,可以看到根據各項效能資料的分析後,建議移轉至Azure公有雲環境時,只需要採用「Standard_A1_v2(1 vCPU / 2GB vRAM)」的Azure VM Size即可,倘若先前評估採用地端選項的話,那麼便會建議採用4 vCPU / 16GB vRAM規格相對應的Azure VM Size。
點選左側的Cost details項目,則可以看到根據各項分析及建議採用的Azure VM Size後,每個月所花費的估算成本為多少錢,如圖13所示。此外,當評估的VM虛擬主機數量眾多時,可以按下〔Export assessment〕按鈕,將評估作業結果匯出為Excel檔案。
ASR提供者和代理程式
由於在地端資料中心內的Azure Migrate Appliance,並未負責稍後的Hyper-V複寫和移轉作業,而是由ASR(Azure Site Recovery)負責。因此,必須為地端資料中心內的Hyper-V主機或叢集安裝Microsoft Azure Site Recovery Provider和Microsoft Azure Recovery Service Agent。
在Azure Portal入口網站中,點選Migration and modernization中的Discover項目,在Discover視窗中選擇Yes, with Hyper-V項目,以及選擇移轉的East Asia資料中心後,按下〔Create resources〕按鈕,便會在背景中建立Azure Site Recovery保存庫。當保存庫建立完成後,按下〔Download〕按鈕下載AzureSiteRecoveryProvider.exe和註冊金鑰,安裝在地端資料中心內的Hyper-V主機或叢集中。
當Microsoft Azure Site Recovery Provider安裝完成後,按下〔Register〕按鈕並選擇剛才下載的註冊金鑰,組態設定Hyper-V主機或叢集的Proxy設定,完成註冊作業。回到Azure Portal入口網站,將會看到Registered Hyper-V hosts呈現連接狀態,此時按下〔Finalize registration〕按鈕,如圖14所示,系統將會提示15分鐘後便可以開始執行複寫地端VM虛擬主機至Azure公有雲的訊息。一切就緒,便會出現Registration finalized訊息。
複寫地端VM虛擬主機至Azure公有雲
在Azure Portal入口網站中,點選Migration and modernization中的Replicate項目,在Specify intent頁面中採用預設值即可,在1.Basics選擇Yes, with Hyper-V選項,在2.Virtual machines頁面中,選擇先前建立的IIS_VMs_Group群組,並勾選希望執行複寫作業的VM虛擬主機,如圖15所示。
在3. Target settings,必須提供Azure訂閱帳戶、資源群組、儲存體帳戶、虛擬網路等等資訊,以便屆時儲存複寫地端VM虛擬主機時的相關資訊。然後,在4. Compute填入Azure VM名稱、VM Size、OS Type等等資訊。而在5. Disks選擇地端VM虛擬主機中,需要複寫到Azure VM的磁碟。
在6. Tags填入名稱和值等Tag設定以便後續管理作業。最後,再次檢視組態設定是否正確無誤,確認後按下〔Replicate〕按鈕執行複寫作業。值得注意的是,最多支援一次複寫10台VM虛擬主機。開始執行複寫程序後,可以同時在Azure Portal入口網站,或是地端Hyper-V管理員操作介面中,如圖16所示,看到複寫進度百分比。
測試移轉
一旦複寫完成,在正式移轉到Azure公有雲運作之前,管理人員可以先執行測試移轉,以便確定移轉後VM能夠順利在Azure公有雲環境中正常運作。
按下〔Test Migration〕按鈕,選擇Azure VM在移轉後所要使用的Azure虛擬網路,一旦測試移轉運作後,就會看到Azure VM尾碼有「-Test」字樣,便是測試移轉的Azure VM虛擬主機,確認Azure VM運作正常時,選擇Clean up test migration即可,如圖17所示。
移轉地端VM虛擬主機至Azure公有雲
現在,可以放心執行移轉地端VM虛擬主機至Azure公有雲的動作。勾選複寫VM虛擬主機清單中,確認進行移轉的VM虛擬主機後,按下〔Migrate〕按鈕,並選擇關閉地端VM虛擬主機,以避免在移轉期間資料不同步的情況發生,如圖18所示。
當移轉狀態轉換為planned failover finished時,便是移轉程序執行完畢。確認能夠正常運作並看到IIS網頁後,如圖19所示,記得按下Stop replication停止複寫程序,讓複寫資源可以釋放給其他VM虛擬主機使用。此外,若需要Public IP進行存取的話,也僅需要建立Public IP後與VM虛擬主機進行關聯即可。
結語
透過本文的深入剖析和實作演練後,相信管理人員已經知道Azure Migrate的運作原理和執行程序,當企業或組織需要評估地端資料中心內的Hyper-V VM虛擬主機是否需要移轉至Azure公有雲環境時,期望這篇文章能夠提供必要的幫助。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>