網管人雜誌
本文刊載於 網管人雜誌第 211 期 - 2023 年 8 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。本文目錄
前言
過去,企業或組織,想要將地端資料中心內的 VM 虛擬主機,遷移至 Azure 公有雲環境運作時,作業通常為在 Azure 公有雲環境中,建立全新乾淨的 VM 虛擬主機,然後再依照 VM 虛擬主機的屬性,將相關資料進行複製或複寫。
現在,透過 Azure Migrate 移轉機制,即可將地端資料中心內的 VM 虛擬主機,經過探索 / 評估 / 測試等程序後,遷移至 Azure 公有雲環境繼續運作(如圖 1 所示)。
圖 1、Azure Migrate 移轉機制運作架構示意圖
此外,不僅支援將地端資料中心內 Hyper-V VM 虛擬主機進行移轉,不同的 Hypervisor 虛擬化平台或實體主機,甚至其它公有雲環境的 VM 虛擬主機,都可以透過 Azure Migrate 移轉機制,遷移至 Azure 公有雲環境繼續運作(如圖 2 所示)。
圖 2、透過 Azure Migrate 移轉機制,將 VM 工作負載遷移至 Azure 公有雲環境
實戰 – Azure Migration 地端 Hyper-V VM
在實戰演練小節中,將在地端資料中心 Windows Server 2022 Hyper-V 虛擬化平台中,透過 Azure Migration 遷移機制,逐步將 VM 虛擬主機移轉至 Azure 公有雲環境中繼續運作。
由於移轉地端 VM 虛擬主機至 Azure 公有雲時,將會使用到網路頻寬進行傳輸作業,為避免過多的等待時間,因此僅移轉一台 VM 虛擬主機為範例。目前,在地端 Hyper-V 虛擬化平台中,運作一台名稱為 WS2022-IIS 的 VM 虛擬主機,並且該主機已經啟用 IIS 網頁伺服器服務(如圖 3 所示)。
圖 3、地端資料中心內 VM 虛擬主機並啟用 IIS 網頁伺服器服務
建立 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 的評估和移轉作業。
圖 4、建立 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 委派認證機制。
圖 5、執行 MicrosoftAzureMigrate-Hyper-V.ps1 進行檢查和組態設定作業
事實上,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 個字元,否則後續可能遭遇到非預期的錯誤。
圖 6、產生 Azure Migrate 專案金鑰並下載 Azure Migrate Appliance 部署檔案
下載完成 .Zip 檔案後,在解壓縮並執行部署作業之前,請同樣先透過「Get-FileHash -Path ./AzureMigrateAppliance.zip -Algorithm SHA256」指令,檢查所下載的 VHD 檔案雜湊是否正確,避免下載到被竄改的檔案產生非預期的資安事件。
正確的 SHA256 雜湊值為後十碼字元為 A8B24EB504。
在地端資料中心內部署 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 時,必須先鍵入管理者帳號和密碼,通過使用者身份驗證程序後才能夠看到初始化頁面。
圖 7、連線至 Azure Migrate Appliance 初始化組態設定頁面
在 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 查看詳細的登入資訊。
圖 8、鍵入 Azure Migrate 專案金鑰執行自動更新並登入 Azure PowerShell 環境
在 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 時,便會發生驗證失敗的情況。
圖 9、填入 Hyper-V 虛擬化平台或叢集的主機和管理者帳密資訊
在步驟 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 公有雲的評估作業。
圖 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: 採用效能為主進行評估作業時,系統將會根據探索和收集到的 VM 虛擬主機效能資料進行評估,然後採用建議的 Azure VM 規模和 IOPS 儲存效能。同時,選擇 Performance history 效能歷史資料週期,例如,1 天、1 週、1 個月,以及 Percentile utilization 使用率百分比,例如,50% - 99%
- As on-premises: 直接採用地端資料中心的 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 軟體授權。
圖 11、選擇屆時移轉為 Azure VM 虛擬主機的相關評估選項
在 2. Select servers to assess 頁面中,首先在 Assessment name 欄位填入此評估作業的名稱,建立這個評估作業的群組,在本文實作中,由於是針對地端的 IIS 網頁伺服器進行移轉作業,所以分別採用「IIS_Azure_Migrate」為評估名稱,以「IIS_VMs_Group」為群組名稱,接著選擇地端的 Azure Migrate appliance 主機名稱,以及勾選準備進行評估作業的地端 VM 虛擬主機(如圖 12 所示)。
圖 12、建立評估作業名稱和群組,並勾選準備進行評估作業的地端 VM 虛擬主機
在 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 檔案。
圖 13、查詢移轉至 Azure 公有雲的各項建議和成本估算
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 訊息。
圖 14、安裝 Microsoft Azure Site Recovery Provider 並完成註冊作業
複寫地端 VM 虛擬主機至 Azure 公有雲
請在 Azure Portal 入口網站中,點選 Migration and modernization 中的 Replicate 項目,在 Specify intent 頁面中採用預設值即可,在 1.Basics 選擇 Yes,with Hyper-V 選項,在 2.Virtual machines 頁面中,選擇先前建立的 IIS_VMs_Group 群組,並勾選希望執行複寫作業的 VM 虛擬主機(如圖 15 所示)。
圖 15、勾選準備進行複寫作業的地端 VM 虛擬主機
在 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 所示)。
圖 16、開始將地端 VM 虛擬主機複寫至 Azure 公有雲
測試移轉
一旦複寫完成後,在正式移轉到 Azure 公有雲運作之前,管理人員可以先執行測試移轉,以便確定移轉後 VM 能夠順利在 Azure 公有雲環境中正常運作。
請按下 Test Migration 鈕,選擇 Azure VM 在移轉後所要使用的 Azure 虛擬網路,一旦測試移轉運作後,會看到 Azure VM 尾碼有「-Test」字樣,便是測試移轉的 Azure VM 虛擬主機,確認 Azure VM 運作正常時,選擇 Clean up test migration 即可(如圖 17 所示)。
圖 17、測試移轉並清除測試移轉 VM 虛擬主機
移轉地端 VM 虛擬主機至 Azure 公有雲
現在,可以放執行移轉地端 VM 虛擬主機至 Azure 公有雲的動作。請勾選複寫 VM 虛擬主機清單中,確認進行移轉的 VM 虛擬主機後,按下 Migrate 鈕,並選擇關閉地端 VM 虛擬主機,以避免在移轉期間資料不同步的情況發生(如圖 18 所示)。
圖 18、執行地端 VM 虛擬主機移轉至 Azure 公有雲並關閉來源 VM
當移轉狀態轉換為 planned failover finished 時,便是移轉程序執行完畢。確認能夠正常運作並看到 IIS 網頁後(如圖 19 所示),記得按下 Stop replication 停止複寫程序,讓複寫資源可以釋放給其它 VM 虛擬主機使用。此外,倘若需要 Public IP 進行存取的話,也僅需要建立 Public IP 後與 VM 虛擬主機進行關聯即可。
圖 19、順利將地端 VM 虛擬主機移轉至 Azure 公有雲繼續運作
結語
透過本文的深入剖析和實作演練後,相信管理人員已經知道 Azure Migrate 的運作原理和執行程序,當企業或組織需要評估,地端資料中心內的 Hyper-V VM 虛擬主機,評估是否需要移轉至 Azure 公有雲環境時,期望這篇文章能夠提供必要的幫助。