網管人雜誌
本文刊載於 網管人雜誌第 147 期 - 2018 年 4 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。文章目錄
前言Microsoft Azure Stack 簡介
Azure Stack 運作架構
實戰 – 佈署 ASDK 混合雲平台
建立 AAD(Azure Active Directory)環境
佈署 Dv3 或 Ev3 Azure VM 虛擬主機
MAS-Host 基礎設定
下載 Azure Stack Development Kit
建立 MAS-VM 巢狀式虛擬主機
佈署 ASDK 混合雲平台
登入 ASDK 管理者入口網站
登入 ASDK 租用戶入口網站
結語
前言
根據 RightScale 市調單位最新發表的雲端運算發展趨勢調查結果顯示,企業或組織採用雲端運算技術的比例從 2015 年的 93 % 上升至 95 %,在自建「私有雲」(Private Cloud)的部分,從 2015 年的 63 % 到 2016 年的 77 % 及最新 2017 年的 72%。同時,因為「公有雲」(Public Cloud)的運作環境已經非常成熟,加上企業及組織自建私有雲的比例不斷提升,也連帶讓「混合雲」(Hybrid Cloud)的佔有比例,從 2015 年的 58 % 到 2016 年的 71 % 及最新 2017 年的 67 %(如圖 1 所示),可以明顯感覺到佔有比例逐漸上升的趨勢。
圖 1、2017年雲端運算趨勢–混合雲佔有比例明顯上升
Microsoft Azure Stack 簡介
MAS(Microsoft Azure Stack),是微軟專為新世代混合雲運作架構所設計的雲端平台,並且微軟在 DEVintersection 2017 Orlando 大會上,由 PowerShell 之父 Jeffrey Snover 介紹 MAS 混合雲平台,在經過 2 個月之後微軟於 2017 年 7 月正式發佈 MAS 混合雲平台。簡單來說,目前公有雲運作環境及相關技術都已經非常成熟,但是企業及組織對於內部的機敏資料(例如,營運報表、顧客資料及採購項目……等),在存放至公有雲環境時,雖然已經預先將機敏資料加密後才上傳至雲端環境,然而 CIO 們仍然會覺得機敏資料並非存放在內部資料中心來得安心,不過在審視自家內部資料中心時,卻又會發現內部的資料中心缺少公有雲等級的靈活性及擴充性。
現在,企業及組織可以透過 Microsoft Azure Stack 混合雲平台,自行打造出如同 Microsoft Azure 公有雲的靈活性及大型企業等級運作規模,同時這樣高可用性高靈活性的混合雲平台掌控權,又可以完全由企業及組織的 IT 人員所管控,並且在需要時能夠輕鬆與公有雲環境介接達成混合雲的運作架構(如圖 2 所示)。
圖 2、Azure Stack 混合雲平台提供與 Azure 公有雲一致的操作體驗
在 Microsoft Azure 公有雲管理介面的部分,早期 Azure 傳統入口網站(Azure Classic Portal)管理介面,採用的是 ASM(Azure Service Management)管理模式,只要瀏覽 https://manage.windowsazure.com 網址並鍵入 Azure 訂閱帳戶資訊即可。
請注意,ASM 入口網站管理介面已經正式於 2018 年 1 月 8 日退役。現在,瀏覽 ASM 入口網站將會自動導向至新版 ARM(Azure Rights Management)入口網站管理介面。此外,企業或組織在內部資料中心內,也可以透過 Windows Server 2012 R2 及 Windows Server 2016,自行打造 IaaS 私有雲平台 Microsoft Azure Pack,同樣採用 Azure 傳統入口網站管理介面(如圖 3 所示),並使用 ASM(Azure Service Management)管理模式。
有關採用最新 Windows Server 2016 雲端作業系統,打造內部 IaaS 私有雲平台 Microsoft Azure Pack 的詳細資訊,請參閱本雜誌《第 143 期 - WS 2016 免費整合私有雲快速建置 Azure Pack》專欄內容。
圖 3、Microsoft Azure Pack 採用 Azure 傳統入口網站管理介面
為了更符合雲端操作習慣及因應 HTML5 管理介面的潮流,微軟在 2015 年 12 月 2 日推出新版的 Azure 入口網站管理介面(如圖 4 所示),採用新式的 ARM(Azure Resource Manager)管理模式,只要瀏覽 https://portal.azure.com 網址,並於登入畫面鍵入 Azure 訂閱帳戶資訊即可登入,並且在 2018 年 1 月 8 日正式淘汰舊有的 ASM(Azure Service Management)管理模式。
圖 4、新式 Microsoft Azure 入口網站採用 Azure Resource Manager 管理模式
因此,微軟為了提供給企業及組織 IT 管理人員一致的操作體驗平台,以及 Dev 開發人員一致的程式碼撰寫平台(只要撰寫一次上傳至公有雲環境中便可立即使用),屆時企業或組織自行打造的 Azure Stack 混合雲平台,也同樣採用 Azure Resource Manager 管理模式(如圖 5 所示)。
圖 5、Microsoft Azure Stack 混合雲平台,同樣採用 Azure Resource Manager 管理模式
Azure Stack 運作架構
目前,企業及組織要佈署 Azure Stack 混合雲平台時,倘若是用於「正式營運環境」的話,建議採用 Azure Stack Integrated Systems 解決方案。簡單來說,用於正式營運環境的 Azure Stack 運作架構,其最小規模的運作架構設計原則為「1、1、4 ~ 12」,分別是「1 Region」、「1 Scale Unit」、「4 ~ 12 Nodes」。
圖 6、Azure Stack 運作架構設計原則示意圖
圖片來源: Channel 9 - DEVintersection 2017 Orlando - KEYNOTE:Azure Stack - It’s More Radical Than You Think
倘若是用於「研發測試環境」的話,建議採用 ASDK(Azure Stack Development Kit)解決方案。簡單來說,ASDK 解決方案會將 Azure Stack 所有功能、元件、角色以及運作環境,都部署在「1 台」實體伺服器當中進行運作,所以適合企業及組織在評估初期試用 Azure Stack 混合雲平台,以及導入後期用於研發測試環境中。
下列為 Azure Stack 混合雲平台運作架構中,相關運作元件所擔任的角色及功能說明:
- AzS-ACS01: 負責 ACS(Azure Consistent Storage)儲存資源服務。
- AzS-ADFS01: 負責 ADFS(Active Directory Federation Services)身份驗證服務。
- AzS-BGPNAT01: 擔任 Edge Router 角色,負責提供 Azure Stack 運作架構中 NAT(Network Address Translation),以及 VPN(Virtual Private Network)連線服務。
- AzS-CA01: 負責 CA(Certificate Authority)憑證服務。
- AzS-DC01: 負責 ASDK 運作環境的基礎架構,例如,Active Directory、DNS、DHCP…… 等服務。
- AzS-ERCS01: 負責 ASDK 運作環境中,VM 虛擬主機的 ERC(Emergency Recovery Console)服務,例如,停止整個 Azure Stack 運作架構時依序關閉相關運作元件。
- AzS-GWY01: 擔任 Edge Gateway 角色,負責提供 Azure Stack 運作架構中 Site-to-Site VPN 至租用戶網路服務。
- AzS-NC01: 擔任網路控制器(Network Controller,NC)角色,負責整個 Azure Stack 運作架構中 SDN 軟體定義網路的部份。
- AzS-SLB01: 擔任 SLB(Software Load Balancer)與Network Multiplexing Service 角色,負責整個 Azure Stack 運作架構中有關網路流量負載平衡的部分。
- AzS-SQL01: 擔任 Azure Stack 運作架構中,儲存基礎架構角色中需要資料庫服務的部分。
- AzS-WAS01: 負責建立 Azure Stack 管理者(Administrative Portal),入口網站的 Azure Resource Manager 管理模式服務。
- AzS-WASP01: 負責建立 Azure Stack 租用戶(Tenant Portal),入口網站的 Azure Resource Manager 管理模式服務。
- AzS-XRP01: 負責 Azure Stack 運作架構中,所有資源如 Compute / Network / Storage 等核心資源提供者(Core Resource Provider)服務。
圖 7、ASDK(Azure Stack Development Kit)運作架構示意圖
實戰 – 佈署 ASDK 混合雲平台
開始實戰佈署 ASDK(Azure Stack Development Kit)混合雲平台吧 !本文採用 ASDK 佈署方式進行實作,也就是只要 1 台實體伺服器便能佈署 Azure Stack 混合雲平台並且實作所有功能。原則上,只要採用通過 Windows Server 2012 R2 硬體認證的伺服器即可。那麼,讓我們來看看這台佈署 ASDK 混合雲平台實體伺服器的硬體需求(詳細資訊請參考 Microsoft Docs - Azure Stack Development Kit deployment prerequisites):
- CPU 處理器: 採用 2 顆 CPU 處理器,總運算核心至少應有 12 Cores,建議採用 16 Cores 運算核心。同時,必須支援硬體輔助虛擬化技術,例如,Intel VT-x / EPT 或 AMD AMD-V / NPT。
- 記憶體空間: 至少配置 96 GB 記憶體空間,建議採用 128 GB 記憶體空間或更多。
- BIOS: 啟用硬體輔助虛擬化技術,以便支援及運作 Hyper-V 虛擬化平台及巢狀式虛擬化技術。
- 網路卡: 配置通過 Windows Server 2012 R2 硬體認證的網路卡即可,無須其它額外特色功能。
- 作業系統磁碟: 配置「1 顆」SSD 固態硬碟或 SAS / SATA 機械式硬碟,磁碟空間大小至少應有 200 GB 可用空間。
- 資料磁碟: 配置「4 顆」SSD 固態硬碟 SAS / SATA 機械式硬碟,磁碟空間大小至少應有 140 GB 建議配置 250 GB 可用空間。這些磁碟可用空間,屆時將會存放 Azure Stack 運作環境中的所有資料。值得注意的是,若採用混合硬碟類型時硬碟介面的格式必須一致才行,否則屆時佈署過程將會產生錯誤而停止佈署作業,舉例來說,採用 SATA SSD 固態硬碟便必須搭配 SATA 機械式硬碟才行。
- 硬碟控制器: 建議採用 Simple HBA 硬碟控制器(例如,LSI 9207-8i、LSI 9300-8i、LSI 9265-8i),倘若採用 RAID HBA 硬碟控制器時,必須支援「Pass-Through」模式,或是可以針對「每顆硬碟」建立「RAID-0」的硬碟控制器才行,否則屆時將因為 Azure Stack 的 SDS 軟體定義儲存技術,無法將資料磁碟建立成儲存資源而導致佈署作業失敗。
- 硬體配置檢查工具: 在佈署 ASDK 混合雲平台之前,建議至 TechNet Gallery 下載 Deployment Checker for Azure Stack Development Kit 硬體配置檢查工具,以便確認實體主機硬體資源是否適合佈署 ASDK 混合雲平台。
除了上述硬體配置需求之外,在開始佈署 ASDK 混合雲平台之前還有幾個小細節值得注意:
- ASDK 實體主機,可以採用 Windows Server 2012 R2 或 Windows Server 2016 作業系統。
- ASDK 實體主機「不」需預先加入網域環境,屆時 ASDK 實體主機將會加入 AzS-DC01 虛擬主機,所建立的「StackAzure.local」網域環境中。
- ASDK 實體主機,請避免使用這些網段「192.168.102.0/24、192.168.200.0/24、192.168.103.0/25、192.168.104.0/25、192.168.101.0/26、192.168.100.0/27」,因為這些網段必須保留給 Azure Stack 運作環境中,相關運作角色的 VM 虛擬主機使用。同時,這台 ASDK 實體主機必須可以透過 Port 80、443,存取 graph.windows.net、login.windows.net 及 vortex-win.data.microsoft.com 網際網路站台。
建立 AAD(Azure Active Directory)環境
目前,在佈署 Azure Stack 混合雲平台時,必須搭配 AAD(Azure Active Directory)或 ADFS(Active Directory Federation Services)身份驗證機制才行。在本文實戰環境中,採用 AAD(Azure Active Directory)身份驗證機制,建立的網域名稱為「weithennmas.onmicrosoft.com」,並建立網域使用者帳號「mas-admin」後,指派目錄角色為「全域管理員」以便具備管理者權限(如圖 8 所示)。
圖 8、建立 Azure Active Directory 網域及網域管理者帳號
佈署 Dv3 或 Ev3 Azure VM 虛擬主機
雖然,ASDK 混合雲平台只要 1 台硬體伺服器即可佈署,但是對於 IT 預算不多的中小企業來說可能仍無法準備妥當。此時,我們可以利用 Azure 公有雲的優勢來安裝及佈署 ASDK 混合雲平台以便進行試用。從 2017 年 7 月開始,Azure 公有雲新增 Dv3 及 Ev3 規模 的 VM 虛擬主機,簡單來說這 2 種新增的 VM 虛擬主機,底層為 Windows Server 2016 作業系統,並採用 Haswell E5-2673 v3 2.4GHz 或 Broadwell E5-2673 v4 2.3GHz 系列 CPU 處理器,同時支援「巢狀式虛擬化技術」(Nested Virtualization)(如圖 9 所示)。
圖 9、Nested Virtualization on Azure 運作架構示意圖
在本文實作環境中,我們在 Azure 日本東部資料中心內,建立 1 台「標準 E16s v3」系列名稱為「MAS-Host」的 VM 虛擬主機(如圖 10 所示),並且額外新增「256 GB、1 TB」的資料磁碟,以便屆時建立的巢狀式 VM 虛擬主機,能夠符合 ASDK 混合雲平台對於磁碟空間的要求。
圖 10、建立標準 E16s v3 系列的 VM 虛擬主機,以支援巢狀式虛擬化技術
MAS-Host 基礎設定
順利在 Azure 公有雲環境中佈署好 MAS-Host 虛擬主機,登入後進行系統基礎設定,例如,系統時區調整為 UTC + 8、安裝 Hyper-V 伺服器角色、格式化剛才新增的 256GB、1TB 資料磁碟。在本文實作環境中,將 256 GB 資料磁碟格式化為「M:」存放 ASDK 混合雲平台的作業系統,而 1 TB 資料磁碟格式化為「N:」存放 ASDK 混合雲平台的資料。重新啟動 MAS-Host 虛擬主機之後,為了稍後佈署的 ASDK 混合雲平台巢狀式虛擬主機,能夠順利存取網際網路,舉例來說,至 Azure AD 進行應用程式的註冊作業。
有關 Windows Server 2016 雲端作業系統,啟用巢狀式虛擬化術及建立 NAT vSwitch 虛擬交換器的詳細資訊,請參閱本雜誌《第 133 期 - 實作 Hyper-V 巢狀虛擬化測試研發效率大提升》專欄內容。
因此,必須在 MAS-Host 上建立 NAT vSwitch 虛擬交換器。請依序執行下列 PowerShell Script 即可建立 NAT vSwitch:
New-VMSwitch -Name "MAS-NATSwitch" -SwitchType Internal
New-NetNat -Name "MAS-VMsNAT" -InternalIPInterfaceAddressPrefix "10.10.75.0/24"
Get-NetAdapter "vEthernet(MAS-NATSwitch)" | New-NetIPAddress -IPAddress 10.10.75.1 -AddressFamily IPv4 -PrefixLength 24
圖 11、在 MAS-Host 虛擬主機上建立 NAT vSwitch 虛擬交換器
下載 Azure Stack Development Kit
請至 Azure Stack Development Kit 探索頁面,填入相關資訊後即可下載 Azure Stack Development Kit Downloader(AzureStackDownloader.exe)執行檔。在本文實作環境中,執行後將會下載最新的 ASDK 混合雲平台「20180103.2 版本」(如圖 12 所示)。
圖 12、執行 Azure Stack Development Kit Downloader 執行檔
下載完成後,請執行「AzureStackDevelopmentKit.exe」執行檔,將會解開稍後要使用的 ASDK 混合雲平台系統磁碟「CloudBuilder.vhdx」(如圖 13 所示),請複製到 MAS-Host 主機的 M:磁碟區,這也是稍後 MAS-VM 巢狀式虛擬主機的系統磁碟。
圖 13、解開稍後 MAS-VM 巢狀式虛擬主機的系統磁碟 CloudBuilder.vhdx
建立 MAS-VM 巢狀式虛擬主機
請在 MAS-Host 中建立 MAS-VM 巢狀式虛擬主機,主要配置包括第 2 世代格式、14 vCPU、110GB vRAM,在虛擬網路的部分除了採用剛才建立的 MAS-NATSwitch 虛擬交換器之外,也請記得啟用「MAC 位址變更」(MAC Address Spoofing)功能,以便稍後佈署的 ASDK 混合雲平台相關角色主機能夠存取網際網路。至於,系統磁碟則是採用剛才解開的 CloudBuilder.vhdx,然後新增「4 個」250GB 動態磁碟在 MAS-Host 的 N:磁碟區,這也是稍後 MAS-VM 巢狀式虛擬主機的資料磁碟。最後,記得執行「Set-VMProcessor -VMName MAS-VM -ExposeVirtualizationExtensions $true」PowerShell 指令,以便為 MAS-VM 虛擬主機啟用巢狀式虛擬化技術。
有關 Windows Server 2016 雲端作業系統,啟用巢狀式虛擬化術及啟用 MAC 位址變更功能的詳細資訊,請參閱本雜誌《第 133 期 - 實作 Hyper-V 巢狀虛擬化測試研發效率大提升》專欄內容。
佈署 ASDK 混合雲平台
在開始執行佈署 ASDK 混合雲平台之前,建議先查看 ASDK Release Notes 以避免佈署作業失敗,舉例來說,本文實作環境採用的 ASDK Build 20180103.2 版本 ,在佈署指令中必須要指定 NTP Server 時間校對伺服器的 IP 位址才行。因此,在執行佈署 ASDK 混合雲平台指令前,先查詢「tw.pool.ntp.org」NTP Server 時間校對伺服器的 IP 位址(如圖 14 所示),然後以「系統管理員身分」開啟 PowerShell 指令執行環境,切換至部署 ASDK 混合雲平台的 PowerShell 指令碼路徑「C:\CloudDeployment\Setup」。
圖 14、查詢 NTP Server 時間校對伺服器 tw.pool.ntp.org 的 IP 位址
執行指令「.\InstallAzureStackPOC.ps1 -InfraAzureDirectoryTenantName weithennmas.onmicrosoft.com -NATIPv4Subnet 10.10.75.0/24 -NATIPv4Address 10.10.75.240 -NATIPv4DefaultGateway 10.10.75.1 -TimeServer 61.216.153.106」,開始安裝 ASDK 混合雲平台。值得注意的是,佈署指令中指定 10.10.75.240 的 IP 位址便是屆時 AzS-BGPNAT01 虛擬主機的 IP 位址。
首先,在佈署過程中將會出現「Supply values for the following parameters AdminPassword」訊息,此時鍵入的密碼便是屆時網域管理者帳號「AzureStack.local\AzureStackAdmin」的管理密碼(如圖 15 所示)。
圖 15、鍵入 AzureStack.local\AzureStackAdmin 網域管理者帳號的管理密碼
由於,在剛才的 ASDK 佈署指令中,我們指派屆時的 AzS-BGPNAT01 虛擬主機採用 10.10.75.240 的 IP 位址,所以佈署程序會先檢查此 IP 位址在網路中是否已經被使用,以及指定的 NTP Server 時間校對伺服器 IP 位址是否能夠順利存取(如圖 16 所示)。
圖 16、確認 NTP Server 時間校對伺服器及 AzS-BGPNAT01 虛擬主機 IP 位址
當 ASDK 佈署程序彈出 Microsoft Azure 身份驗證視窗時,請先別急著鍵入 Azure AD 管理者帳號及密碼。由於,本文實作環境是採用巢狀式虛擬主機的方式,所以請開啟「C:\CloudDeployment\Roles\PhysicalMachines\Tests\BareMetal.Tests.ps1」檔案,將內容中「if(-not $isVirtualizedDeployment)」判斷式改為「if($isVirtualizedDeployment)」後存檔離開,以便將 ASDK 佈署程序中偵測機制關閉(如圖 17 所示)。
預設情況下,ASDK 混合雲平台不允許佈署在 VM 虛擬主機當中,所以必須關閉 ASDK 佈署程序中的偵測機制。
圖 17、將 ASDK 佈署程序中偵測機制關閉
此時,請切換回剛才 Microsoft Azure 身份驗證視窗(如圖 18 所示),鍵入先前建立的 Azure AD 管理者帳號「mas-admin@weithennmas.onmicrosoft.com」及密碼,通過使用者身分驗證程序後,便會繼續 ASDK 佈署程序。
圖 18、鍵入 Azure AD 管理者帳號及密碼
當 ASDK 佈署程序進行至「Step 12 – Validate Physical Machines」時(如圖 19 所示),將會驗證目前的 ASDK 主機是否為 VM 虛擬主機,由於我們已經修改好 BareMetal.Tests.ps1 檔案內容,系統將會略過 ASDK 佈署程序中偵測機制,所以順利繼續佈署作業。
圖 19、略過 ASDK 佈署程序中偵測機制順利繼續 ASDK 佈署程序
倘若,在剛才的操作步驟中,並未修改 BareMetal.Tests.ps1 檔案內容將 ASDK 佈署程序中偵測機制關閉的話,那麼將會出現佈署程序錯誤的情況(如圖 20 所示)。
圖 20、ASDK 佈署程序偵測為 VM 虛擬主機而停止佈署作業
整體 ASDK 混合雲平台運作環境的佈署時間,將會依據 ASDK 主機的硬體資源而定(本文實作環境花費 6.5 小時),並且在佈署期間將會重新啟動數次,因為 ASDK 主機將會加入由 AzS-DC01 虛擬主機所建立的 StackAzure.local 網域環境中,每當 ASDK 主機重新啟動再次登入系統後,將會繼續原有的 ASDK 佈署作業程序(如圖 21 所示)。
圖 21、ASDK 主機重新啟動再次登入系統後,將會繼續原有的 ASDK 佈署作業程序
當 ASDK 混合雲平台佈署作業完畢後,可以看到整個 ASDK 混合雲平台佈署程序共有「302」個步驟,並在完成後看到「COMPLETE:Action 'Deployment'」資訊(如圖 22 所示),此時便可以關閉 PowerShell 佈署程序視窗。
圖 22、ASDK 混合雲平台佈署作業完畢
倘若,在 ASDK 混合雲平台佈署作業期間遭遇錯誤而無法繼續佈署程序時,你可以切換至「C:\CloudDeployment\Logs」路徑,查看日誌檔案中詳細的錯誤訊息資訊以利進行故障排除作業,排除故障發生原因後再次執行「.\InstallAzureStackPOC.ps1 -Rerun」佈署指令即可。
登入 ASDK 管理者入口網站
現在,便可以開啟瀏覽器連結至 https://adminportal.local.azurestack.external 網址,然後鍵入 Azure AD 管理者帳號及密碼順利通過使用者身分驗證程序後,便登入 ASDK 混合雲平台管理者入口網站(Administration Portal)(如圖 23 所示)。目前,ASDK 混合雲平台管理者入口網站僅支援「英文」(English)操作介面。
圖 23、登入 ASDK 混合雲平台管理者入口網站
登入 ASDK 租用戶入口網站
此時,可以再另開 1 個瀏覽器視窗,連結至 https://portal.local.azurestack.external 網址,由於尚未建立任何租用戶使用者帳號,因此仍請鍵入 Azure AD 管理者帳號及密碼,順利通過使用者身分驗證程序後,便可以看到 ASDK 混合雲平台租用戶入口網站(Administration Portal)(如圖 24 所示)。目前,ASDK 混合雲平台租用戶入口網站已經支援「多國語系」操作介面。
圖 24、登入 ASDK 混合雲平台租用戶入口網站