Quantcast
Channel: 不自量力 の Weithenn
Viewing all 619 articles
Browse latest View live

Azure Stack HCI in Azure Nested VM 注意事項

$
0
0


簡介

過去,在準備 Nested Virtualization 環境時,一直沒有碰到問題。然而,就在上週 Cloud Summit 2023 大會之前,為了準備實戰工作坊的環境時,卻吃了蠻大的苦頭。因此,透過此篇把需要注意的事項整理一下,最近有碰到問題的朋友可以參考看看。當然,也可以參考黑大的精采文章 【茶包射手日記】無法在 Azure VM 使用 WSL、Android 模擬器-黑暗執行緒

由於,我需要的測試環境為 Windows Server 2022以及 Azure Stack HCI,所以跟黑大的文章內容會有些許不同。下列便是在 Azure VM 環境中,如何順利打造 Nested Virtualization 環境的要點。





選擇支援 Nested Virtualization 的 VM Size

首先,在選擇 Azure VM Size 時,必須要注意的是所選擇的 VM Size 是否支援 Nested Virtualization 功能。舉例來說,這次準備Cloud Summit 2023 大會實戰工作坊時,採用的 VM Size 為 Standard_E8ds_v5,可以看到有正確支援 Nested Virtualization 功能






採用 Gen 1 或 Gen 2?

那麼在選擇 VM Images 時,應該選擇 Gen 1 或 Gen 2? 簡單來說,原則上當然是選擇較新功能更全面的 Gen 2,舉例來說,我這次實作選擇就是 Windows Server 2022 - x64 Gen2

然而,Gen 2採用的「Security Type」預設為「Trusted launch virtual machines」。簡單來說,多了許多安全性功能的增強,但是卻阻斷了 Nested Virtualization 功能。在 Trusted launch for Azure VMs | Microsoft Learn 文章中可以看到,明確說明一旦採用 Trusted launch 時,那麼 Azure VM 將不支援 Nested Virtualization功能,即便你選擇了支援的 VM Size 也沒用!!  😩


所以,簡單的結論:
  • 採用 Gen 1的話,只要先前選對支援 Nested Virtualization 的 Azure VM Size 即可。
  • 採用 Gen 2的話,除了要選對支援 Nested Virtualization 的 Azure VM Size 之外,在 Security Type 還要選擇採用 Standard才行。





組態設定 VM 支援 ExposeVirtualizationExtensions

接著,就是熟悉的組態設定了,一旦 Azure VM 啟用 Hyper-V 虛擬化功能,在建立 Nested VM 完成後,即可執行「Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true -Verbose」指令,將伺服器虛擬化功能給予 VM,然後再執行「Get-VMProcessor -VMName <VMName> | fl -Property ExposeVirtualizationExtensions」指令進行確認。詳細資訊請參考:

當然,也別忘了執行「Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On」指令,啟用 VM 的 MAC Address Spoofing 功能,確保 Nested VM 的網路封包能夠路由和通過 vSwitch。

至此,如果 Nested VM 是採用 Windows Server 2022 的話,那麼 Hyper-V 功能便能順利安裝和啟用在 Nested VM 當中。





Azure Stack HCI in Azure Nested VM 時

倘若,Nested VM 是 Azure Stack HCI 時,你會發現即便上述動作都完成且都有注意到,但是為 Azure Stack HCI 安裝和啟用 Hyper-V 功能時,仍然會失敗並出現「Hyper-V cannot be installed because virtualization support is not enabled in the BIOS」錯誤訊息。

簡單來說,因為 Azure Stack HCI 預設要使用硬體伺服器才行。因此,當執行 Install-WindowsFeature指令,嘗試安裝 Hyper-V 功能時會檢查相容性,系統檢查後發現為 VM Based 便會產生失敗的情況。

此時,只要改為採用「Enable-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V" -All」或「DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V」指令,便能略過相容性檢查進而成功安裝和啟用 Hyper-V 功能在 Azure Stack HCI VM 環境中。詳細資訊請參考下列二篇文章內容:

值得注意的是,從 Run Hyper-V in a Virtual Machine with Nested Virtualization | Microsoft Learn文章中可知,只要滿足下列條件,採用 AMD 處理器也是沒問題的才對:
  • AMD EPYC/Ryzen processor or later
  • The Hyper-V host must be Windows Server 2022/Windows 11 or greater
  • VM configuration version 10.0 or greater
然而,當我嘗試使用 Standard_E8ads_v5的 VM Size,也就是採用 AMD EPYC處理器時,卻無法實作成功,必須採用 Intel Xeon處理器的 Standard_E8ds_v5 才能實作成功 Nested Virtualization。

建構 Azure Stack HCI 工作坊環境 | Azure Cloud Shell

$
0
0


簡介

由於,在 Cloud Summit 2023 大會當天和結束至今,有幾位朋友來詢問怎麼準備當天實戰工作坊的環境。所以,透過本文分享一下個人的準備方式給有興趣的朋友參考。

下列為當天在戰工作坊中,以 Azure 公有雲為實機操作環境,提供與會者每人一台 Azure VM 虛擬主機啟用「巢狀式虛擬化」(Nested Virtualization) 機制,以便說明和實際展示並手把手帶領與會者,體驗在 Microsoft Build 2022 大會中,所發佈的「Azure Stack HCI Single-Node」技術。下列為當天實戰工作坊的簡報檔,有興趣的朋友可以參考看看。






透過 Azure Cloud Shell 大量部署 Azure VMs

過去,在準備工作坊環境時,當然比較簡單的方法,就是透過 Azure Cloud Shell,配合簡單的迴圈即可輕鬆部署大量的 Azure VMs 虛擬主機。為了方便抓圖,再順利登入 Azure Portal 操作介面後,另外開新頁連結「https://shell.azure.com/bash」網址,即可直接使用全畫面的 Azure Cloud Shell

首先,透過「az account show --output table」指令,查詢目前 Azure CLI預設採用的 Azure 訂閱帳戶資訊。

透過「az account list-locations --output table」指令,查詢這個 Azure 訂閱帳戶,可以使用的 Azure Datacenter 有哪些。

由於,預計選擇「JapanEast」的 Azure Datacenter,所以執行「az vm image list-skus --location japaneast --offer WindowsServer --publisher MicrosoftWindowsServer --output table | grep 2022」指令,查詢有哪些 Windows Server 2022 的 VM Images 可以使用。

確認後,因為 Azure CLI 指令部署 VM 時必須指定完整的 URN才行,所以透過「az vm image list --all --location japaneast --publisher MicrosoftWindowsServer --output table | grep 2022」指令,即可查詢完整的 VM Images 和 URN 完整名稱。

然而,當執行迴圈準備部署 VM 時,卻發生 Security Type參數值不支援Standard」的情況 😓。因為,這次的實作工作坊環境中,Security Type 參數值一定要設定為 Standard,否則 Nested Virtualization將無法運作,詳細資訊請參考 Azure Stack HCI in Azure Nested VM 注意事項





使用 JSON template 進行部署

由於,目前的 Azure Cloud Shell環境中, Security Type 參數值不支援Standard」,所以我無法很簡單的進行大量部署。所以,轉為採用 JSON template 方式進行部署。

因此,很簡單的先從 Azure Portal 操作介面中,去執行新增 VM 虛擬主機的流程。首先,當然是選擇到 VM Image 採用 Windows Server 2022 - x64 Gen時,可以看到預設採用的 Security Type 參數值為「Trusted launch virtual machines」,並支援多種安全性機制。

在此次的實戰工作坊環境,記得 Security Type 參數值選擇至「Standard」,以便實作 Nested Virtualization環境。


其中比較麻煩的部份是,部署的每台 VM 需要額外新增「Stadndard SSD 64GB x16個」,只能先苦一次了 😏。等到建立 VM 的流程最後階段時,點選下方的「Download a template for automation」,即可下載一個壓縮檔,內容包含  Template.jsonParameters.json檔案。

那麼,有客製化的 Template.json 和 Parameters.json 後,該怎麼進行部署作業呢? 請在 Azure Portal 搜尋列中,鍵入「Deploy a custom template」關鍵字。

進入後,點選「Build your own template in the editor」連結。


進入 Edit template 畫面後,點選「Load file」,選擇剛才下載的 Template.json 檔案,載入成功後按下 Save 鈕。


接著,點選「Edit parameters」準備載入 Parameters.json 檔案。


進入 Edit parameters 畫面後,點選「Load file」,選擇剛才下載的 Parameters.json 檔案,載入成功後按下 Save 鈕。


此時,可以看到準備部署 VM 虛擬主機的資訊,例如,主機名稱、VM Size、管理帳號、管理密碼……等。


雖然用 JSON Template 來部署也算方便,但一次就只能部署一台,對於準備 40 台 VM 虛擬主機的實戰工作坊環境來講還是不太方便。 😅





Azure Cloud Shell 搭配 JSON Template 進行部署

由於,部署 VM 虛擬主機時,還是會有些資訊不同,例如,主機名稱、Data Disk 名稱……等,所以只要修改 Parameters.json 檔案內容然後另存,接著上傳至 Azure Cloud Shell環境。


此時,請先執行「export ResourceGroup="RG-AzSHCI-HOL0719"」指令,建立「ResourceGroup」變數,然後執行「az group create --name ${ResourceGroup} --location japaneast」,在 JapanEast中建立 ResourceGroup名稱為「RG-AzSHCI-HOL0719」。

為了截圖方便,用個簡單的 for 迴圈,搭配剛才上傳的  Template.json 和 Parameters.json 檔案,即可在剛才的 ResourceGroup 中部署 5 台客製化的 VM 虛擬主機。

部署好 5 台 VM 虛擬主機後,為了屆時連線方便,準備幫這 5 台 VM 虛擬主機建立網際網路連線的 DNS 名稱。請先執行「az network public-ip list --resource-group ${ResourceGroup} --output table」指令,確認 Name 的欄位名稱。

再次採用簡單的 for 迴圈,指定剛才確認的 Name 名稱,然後指定 VM 虛擬主機的網際網路連線的 DNS 名稱。舉例來說,可以看到順利為第一台 VM 虛擬主機,建立的 FQDN 為「hci-hol-1.japaneast.cloudapp.azure.com」。


至此,便完成大量部署客製化,支援 Nested Virtualization實作,並且每台 VM 虛擬主機除了 OS Disk 之外,還額外配置 Standard SSD 64GB * 16個。 😁

自動開啟多個 RDP 連線 Azure VM 虛擬主機

$
0
0


簡介

上一篇文章中,已經透過 Azure Cloud Shell搭配 JSON template,部署 40 台 Azure VM 虛擬主機,並組態設定好 FQDN 名稱。在本文中,將利用 PowerShell 開啟 RDP 後,嘗試連結這 40 台 Azure VM 虛擬主機,確保實戰工作坊環境已經準備完畢。





PowerShell 內容說明

原則上,這個 PowerShell 的內容不是很複雜功能性明確,所以只會說明重點的部份。首先,在「第 12 行」中,為何需要送出 3 個 Tab 後才送出 Enter,主要原因在於透過 mstsc 指令呼叫出來的 Remote Desktop Connection連線畫面中,需要按下 3 次的 Tab 後才按下 Enter 進行連線作業。


在「第 9 行和 13 行」,因為執行第 9 行進行連線後,倘若未執行第 13 行進行刪除的話,這個 RDP 連線資訊便會儲存在系統中,使用「cmdkey /list」即可看到連線儲存資訊。


在「第 17 - 21 行」,主要是希望清除系統 Registry中 RDP 連線歷史記錄。倘若,不執行的話, 在 RDP 連線過並順利登入後,系統的 Registry 內將會自動儲存 RDP 連線歷史記錄。


所以,當這個 PowerShell 執行後,便會自動開啟多個 RDP 連線,並自動連結至指定的 Azure VM 虛擬主機。同時,連線後自動刪除 RDP 連線主機、帳號、密碼、歷史記錄。






RDP_to_Azure_VMs.ps1



Windows Server 30th 歲了 !

$
0
0


簡介

你知道嗎? Windows Server 已經 30 歲了! 😱  從 1993 年時,採用 Windows NT 3.1 的名稱首次發布以來,到今天已經 30 年的歷史過去了。在這 30 年當中,Windows Server 不斷增加各項新功能,為企業和組織提供可靠、安全、高效能和彈性的伺服器解決方案,並且支援各種應用服務,例如,網頁、電子郵件、資料庫、檔案分享、虛擬化、雲端運算……等。





Windows Server 發展歷程

Windows Server 的整體發展歷程,大致可以分為下列幾個階段:
  • Windows NT 3.1 - Windows NT 4.0 (1993 - 1996): 這是 Windows Server 的初始階段,微軟以 Windows NT 為基礎,開發一個專為伺服器設計的作業系統,具有多工、多執行緒、多處理器和安全性…等特性。Windows NT 3.1 是第一個支援網路功能的 Windows 版本,而在 Windows NT 4.0 版本時,則加入了 Windows 95 的使用者介面和 Plug and Play 功能。
  • Windows Server 2000 - Windows Server 2003 (2000 - 2003): 此時的 Windows Server 開始往成長階段前進,微軟在這個階段中增加許多新功能和功能增強,例如,Active Directory、Internet Information Services (IIS)、Terminal Services、Distributed File System (DFS)、Group Policy、Windows Management Instrumentation (WMI)… 等。Windows Server 2000 是第一個支援 Active Directory 的 Windows 版本,而 Windows Server 2003 則提升效能和安全性,並加入 Volume Shadow Copy 和 Windows Deployment Services…等功能。
  • Windows Server 2008 - Windows Server 2012 R2 (2008 - 2014): 此時的 Windows Server 為轉型階段,微軟在這個階段中將 Windows Server 轉向虛擬化和雲端運算的方向,並導入了許多創新技術和功能,例如,Hyper-V、Server Core、PowerShell、Server Manager、Failover Clustering、DirectAccess、Remote Desktop Services (RDS) 等。Windows Server 2008 是第一個支援 Hyper-V 的 Windows 版本 (雖然還是玩具等級 😅),而 Windows Server 2012 R2則增加 Storage Spaces 和 Work Folders 等功能 (此時的虛擬化可以上檯面了 😎)。
  • Windows Server 2016 - Windows Server 2022 (2016 - 今天): 此時的 Windows Server 已經邁入現代化階段,微軟在這個階段中將 Windows Server 與 Azure 和其他雲端平台進行深度整合,並提供更多的靈活性和選擇性,例如,Nano Server、Containers、Docker、Windows Subsystem for Linux (WSL)、Azure Stack HCI、Azure Arc 等。其中,Windows Server 2016是第一個支援 Containers 和 Nano Server 的 Windows 版本,而 Windows Server 2022則增加 Secured-core serverSMB over QUIC…等功能。





Windows Server 意見調查和回饋

如果,你對於新一代的Windows Server 2025 (暫訂名稱?),有許多意見或功能想要回饋給微軟的話,現在正有一項調查在進行當中,歡迎大家填寫意見調查和反應你的需求及使用體驗。

活用 Azure Migration 機制,地端 VM 搬上微軟公有雲 | 網管人第 211 期

$
0
0


網管人雜誌

本文刊載於 網管人雜誌第 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 個字元,否則後續可能遭遇到非預期的錯誤。

在第 2 個選項 Download Azure Migrate appliance,可以選擇下載「.VHD file」選項,直接下載 Azure Migrate Appliance 的 .VHD 檔案(12 GB),然後匯入地端資料中心的 Hyper-V 虛擬化平台中,或是選擇下載「.zip file」選項,則是下載 PowerShell 安裝程式指令碼,然後登入地端 Hyper-V 虛擬化平台中,執行 Azure Migrate Appliance 安裝作業,選擇完畢後按下 Download 鈕即可(如圖 6 所示)。

圖 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 公有雲環境時,期望這篇文章能夠提供必要的幫助。

DevOps Days Taipei 2023 | 站長開講

$
0
0


活動簡介

DevOpsDays Taipei 2023是一個專注於 DevOps 文化和實踐的開發者盛會。自 14 年前 DevOps 之父 Patrick Debois 在比利時舉辦了第一場 DevOpsDays 以來,全球各地的 DevOps 實踐家一直承先啟後,將 DevOps 帶進了各個組織、領域,在這條邁向 DevOps 的漫漫長路中,成為眾人的道標及參考案例,為我們照明了未來的可行路徑。

本次 DevOpsDays Taipei 2023再次聚集在地社群,包括台灣敏捷社群、DevOps Taiwan、HashiCorp User Group Taipei 以及 IT 媒體 iThome,邀請台灣在 DevOps 領域的技術專家,規劃多場論壇,深入探討各種 DevOps 相關主題。同時,我們還將設置工作坊和社群互動環節,讓與會者透過實作和討論更深入地了解 DevOps 的實踐方法和最佳實踐。誠摯邀請您加入我們,共同推動 DevOps 技術與文化的轉型運動,與世界脈動接軌。





活動資訊

日期:   2023 年 9 月 25 日 (一) ~ 9 月 26 日 (二)
時間:   09:00 - 17:00
地點:   臺北文創大樓 6 樓 & 松山文創園區多功能展演廳
報名:   報名購票
議程:   大會議程表
講者:   講者陣容







體驗工作坊

本次大會體驗工作坊中,站長規劃一個 90 分鐘的「GitOps Workshop | 自動化 / 審核 / AI for Code」體驗工作坊,顧名思義參與的朋友們,你可以在短短 90 分鐘之內實作體驗,如何透過 RESTful API 執行撰寫好的 Ansible Playbook實作體驗 GitOps 自動化機制? 實作體驗 Ansible Playbook Approval 審核機制

你可能會說,我還不熟悉也不太寫 Ansible Playbook,沒問題! 在體驗工作坊中,也會跟大家說明和實際展示,如何透過在今年 RedHat Summit 2023 大會上,最新發佈的 Ansible Lightspeed with IBM watsonx Code Assistant 技術預覽版,簡單來說就是透過生成式 AI 機制,幫助你撰寫  Ansible Playbook。

參與站長體驗工作坊的朋友,請參考下列事項並預先準備一下,否則可能會造成體驗不佳的情況: 😏


連接及管理 Windows 主機 | Ansible WinRM

$
0
0


簡介

最近有使用 Ansible 管理 Windows 主機的需求,所以來研究一下了 😁。在本文中,將會說明如何為 Windows 進行前置設定作業,例如,開啟 WinRM (Windows Remote Management)機制,以便屆時 Ansible 主機能夠順利連接及管理 Windows 主機。
如果,你有點開去看剛才的 WinRM (Windows Remote Management) 機制內容,應該一時之間很難懂吧? 在 Ansible Document中,有關 WinRM 認證機制的說明整理個簡單易懂的表格,相信可以幫助你更快入門。






安裝 Windows 測試主機

在本文實作環境中,為了快速搭建測試環境,直接在 Azure 公有雲環境中建立相關測試主機,分別是擔任 Ansible 主機的 AlmaLinux 9.2,以及 Windows 測試主機 Windows 10、Windows 11、Windows Server 2019、Windows Server 2022、Windows Server 2022 Azure Edition







Windows 主機啟用 WinRM 遠端管理機制

為了能夠更方便且快速啟用 WinRM (Windows Remote Management) 遠端管理機制,Ansible 有提供 ConfigureRemotingForAnsible.ps1檔案。透過這個 PowerShell 檔案,便能夠快速且正確的為 Windows 主機啟用 WinRM (Windows Remote Management) 遠端管理機制,並且屆時 Ansible 主機也能夠順利連接及管理。

由於操作步驟是一樣的,以下便以其中一台 Windows 測試主機為例。首先,請確保採用 Administrator 管理帳號開啟 PowerShell 視窗後,執行 ConfigureRemotingForAnsible.ps1 檔案,簡單來說執行後會幫 Windows 主機建立 HTTPS Listener和自簽憑證……等動作。順利啟用之後,可以透過「netstat -na | findstr ":5985 :5986"」指令,確認主機是否已經啟用 WinRM HTTP (Port 5985) 和 WinRM HTTPS (Port 5986)。此外,也會幫 Windows 主機建立網路卡防火牆規則,允許 WinRM HTTPS (Port 5986)能夠通過。






Ansible 主機運作環境

在本文實作環境中,採用 AlmaLinux 9.2 擔任 Ansible 主機,可以看到採用的 Python3、PIP3、Ansible 版本,並且已經安裝好需要的 pywinrm 模組


在連接 Windows 主機之前,先在 Ansible 主機端透過簡單的 for 迴圈搭配 nc 指令,確認 Ansible 跟 Windows 主機之間,WinRM HTTPS (Port 5986) 是連通的。


由於,之前踩過 Ansible 採用 dnf 和 pip 二種安裝方式的雷,所以在執行連接 Windows 主機的動作之前,先確認 Ansible 能夠正確執行並使用 pywinrm 模組。執行「ansible -m python_requirements_info -a dependencies=winrm localhost」指令即可判斷,目前運作環境 Ansible 能否順利使用  pywinrm 模組






Ansible 連接及管理 Windows 主機

Ansible 主機準備就緒後,先編輯 hosts檔案,把要測試連接的 5 台 Windows 主機 IP 鍵入,然後加上連接參數:
  • ansible_user=weithenn,指定連線 Windows 主機的使用者帳號。
  • ansible_password=password,指定連線 Windows 主機的使用者密碼。
  • ansible_connection=winrm,指定連線方式採用 winrm。
  • ansible_winrm_server_cert_validation=ignore,忽略連線時憑證警告訊息。

編寫完成後,即可執行「ansible win -i hosts -m win_ping」進行連接 Windows 主機的測試作業。


倘若,你想要確認 Ansible 主機,是否真的和 Windows 主機之間採用 WinRM HTTPS (Port 5986) 進行通訊,你可以再次使用 nc 指令,但是參數僅使用 -v 即可,例如,「nc -v 10.0.0.5 5986」即可,然後 Windows 主機預設情況下,網卡防火牆的 Public profile 是不允許 WinRM HTTP (Port 5985) 通行的。


確認 Ansible 主機可以透過 win_ping 連接 Windows 主機後,可以試試 win_command 模組的功能,讓 Ansible 主機連線 Windows 主機後執行 hostname 指令,例如,ansible win -i hosts -m win_command -a "hostname"


也可以試試 win_shell 模組的功能,讓 Ansible 主機連線 Windows 主機後執行 hostname 指令,例如,ansible win -i hosts -m win_shell -a "Get-Date"




No module named winrm | Ansible WinRM

$
0
0


Question: No module named 'winrm'

嘗試使用 Ansible win_ping 模組,測試是否能夠連接 Windows 主機時,卻發生「winrm or requests is not installed: No module named 'winrm'」的錯誤訊息,但檢查後發現是有安裝 pywinrm 模組的?



使用「ansible -m python_requirements_info -a dependencies=winrm localhost」指令檢查時,系統確實是找不到 winrm 模組?






Answer:

查了很多資料之後,突然發現系統的 Python 版本為 3.9.16,但是 Ansible 檢查版本時卻顯示 Python 版本為 3.11.2


嘗試使用 alternatives 去切換主機的 Python 版本為 3.11,想說應該就可以匹配完成了吧?


但還是沒有解決匹配的問題,依然出現找不到 WinRM 模組的錯誤。後來,索性一個步驟一個步驟檢查,發現透過「sudo dnf -y install ansible」指令安裝 Ansible 時,便會讓 Ansible 使用相較於系統較新的 Python 3.11.2


改為採用「sudo pip3 install ansible」方式安裝,那麼 Ansible 便能使用跟系統一樣的 Python 3.9.16,也就能正確找到 WinRM 模組並執行指令正確連接到 Windows 主機。







參考資源


Kubernetes Summit 2023 | 站長開講

$
0
0


活動簡介

踏入雲原生的領航之地。邀請您報名參加 Kubernetes Summit 2023! 作為一個匯集 Kubernetes & Cloud Native 領域最頂尖的技術專家和開發者的盛會,您將獲得一場難忘的技術體驗。透過論壇演講,您將與技術專家一同探討最前沿的技術趨勢。

參加實戰工作坊,您將深入學習並實踐最佳解決方案。攤位展示和產品 Demo 將為您展示最新的創新產品和技術,讓您與業界頂尖專家及開發者互動交流。 無論您是新手還是專家,Kubernetes Summit 2023是不可錯過的盛會,讓您進一步拓展專業技能、提升技術實力。現在就報名加入我們,一同開啟雲原生的未來之旅。





活動資訊

日期:   2023 年 10 月 25 日 (三) ~ 10 月 26 日 (四)
時間:   09:00 - 17:00
地點:   臺北文創大樓 6 樓 & 松山文創園區多功能展演廳
報名:   報名購票
議程:   大會議程表
講者:   講者陣容
共筆:   Kubernetes Summit 2023 共筆







體驗工作坊

本次大會體驗工作坊中,站長規劃 90 分鐘的「IoT/Edge Computing | AKS Edge Essential 超輕量容器平台」體驗工作坊,顧名思義參與的朋友們,你可以在短短 90 分鐘之內實作體驗,如何部署超輕量級的 AKS Edge Essential 容器平台,以便應用於物聯網 (IoT) 和邊緣運算 (Edge Computing) 環境中,並搭配手把手的實際操作演練,讓與會人員可以選擇整合 K8s 或 K3s 的 Kubernetes 平台,以及實際部署雲原生的 Linux 容器和 Windows 容器。



透過 Cloud Run 部署網站 - Task1 | GSP659

$
0
0


簡介

在本文實作練習中,將會透過 Deploy Your Website on Cloud Run | Google Cloud Skills Boost主題,學習如何在 GCP 雲端環境中,如何透過 Cloud Run (Serverless)技術,部署和管理組織和企業的網站。
倘若,組織和企業僅單純為了網站的順利運作,而必須建立和管理 VM 虛擬主機、叢集、Pod、服務……等,那麼對於組織和企業的管理成本來說太過沈重。因此,針對這類單純運作網站的需求,或許可以思考改為採用 Cloud Run 技術來達成。

簡單來說,Cloud Run 技術是透過 Google Cloud 整合 Knative 框架達成的技術,由於是 Serverless 技術,所以企業和組織的管理人員,無須管理 VM 虛擬主機或容器,更不用管理 Kubernetes 叢集,所以從管理成本的角度來看,是個更簡單維運企業網站的好方法。下列為 Cloud Run 技術 的運作架構圖。






啟用 Cloud Shell (gcloud)

本次實作時間給予 1.5 小時也是非常充裕。同樣的,啟動實作環境後,系統提供暫用的使用者帳號、密碼、Project ID…等資訊。


在 Cloud Console 畫面中,點選右上角圖示後,準備啟用 Cloud Shell (gcloud),稍後也會使用到。簡單來說,Cloud Shell 是個已經載入了開發工具的極小型 VM 虛擬主機,並且提供 5 GB 儲存空間,以便管理人員可以透過 Cloud Shell 對 Google Cloud 資源進行存取等管理動作。

順利啟用 Cloud Shell 之後,可以嘗試執行「gcloud auth list」、「gcloud config list project」指令,了解目前運作環境的相關系統資訊。詳細資訊請參考 gcloud CLI overview  |  Google Cloud CLI Documentation官方文件。






Task 1、執行 Git Clone 複製來源 Repository

首先,在部署網站之前,先透過 Git Clone 指令將來源 Repository 進行複製的動作,以便後續可以專注於建立 Docker 映像檔及部署到 Cloud Run 環境的動作。請在 Cloud Shell 視窗中,執行「git clone https://github.com/googlecodelabs/monolith-to-microservices.git」和「
cd ~/monolith-to-microservices」指令,待 Git Clone 指令執行完畢後,執行「./setup.sh」以便安裝 NodeJS Dependencies,以便在執行部署作業之前測試應用程式是否正常運作。


執行「./setup.sh」幾分鐘之後,只要看到出現「Setup completed successfully!」訊息,表示已經執行完畢。


接著執行「cd ~/monolith-to-microservices/monolith」和「npm start」指令,切換到正確路徑後,啟動 Web 網頁伺服器服務以便測試能否正常運作,啟動後 Cloud Shell 視窗中,將會顯示「Monolith listening on port 8080!」訊息,表示 Web 網頁伺服器服務已經順利啟動。

請點選「Preview on port 8080」,將會自動開啟瀏覽器並看到正在運作的 Fancy Store 網頁內容。


確認 Fancy Store 網頁正常運作後,回到 Cloud Shell 視窗只要按下「Ctrl + C」組合鍵,即可停止 Web 網頁伺服器服務。





透過 Cloud Run 部署網站系列文章

  • (本文) 透過 Cloud Run 部署網站 - Task1 | GSP659
  • 透過 Cloud Run 部署網站 - Task2 | GSP659
  • 透過 Cloud Run 部署網站 - Task3 | GSP659
  • 透過 Cloud Run 部署網站 - Task4 | GSP659
  • 透過 Cloud Run 部署網站 - Task5 | GSP659
  • 透過 Cloud Run 部署網站 - Task6 | GSP659

透過 Cloud Run 部署網站 - Task2 | GSP659

$
0
0

 


簡介

在本文實作練習中,將會透過 Deploy Your Website on Cloud Run | Google Cloud Skills Boost 主題,學習如何在 GCP 雲端環境中,如何透過 Cloud Run (Serverless) 技術,部署和管理組織和企業的網站。
上一篇文章中,已經順利 Git Clone 來源 Repository,並安裝 NodeJS  Dependencies 和啟動 Web 網頁伺服器,確保網站的一切已經運作正常。在本文中,將會使用 Cloud Build來建立 Docker 容器。下圖為本文實作環境的 Cloud Run 運作架構示意圖:






Task 2、透過 Cloud Build 建立 Docker 容器

建立目標 Docker 儲存庫

確認 NodeJS 網頁伺服器正常運作後,便可以準備透過 Cloud Build 機制,將 NodeJS 網頁伺服器容器化。一般來說,將應用程式容器化有兩個步驟,分別是建立 Docker 容器後,推送到 Registry 儲存後,以便 GKE 容器平台可以提取 Docker 容器映像檔。

但是,在 Cloud Run 運作架構中,可以讓這樣的步驟更精簡。簡單來說,透過 Cloud Build 建立 Docker 容器時,它會壓縮目錄中的檔案並移動至 Cloud Storage 儲存資源,並且在建置過程將中,會將從 Cloud Storage 儲存資源中取得所有檔案,並使用同一目錄的 Dockerfile 來執行 Docker 建置流程,最後透過單一指令將 Docker 映像檔,推送到 Artifact Registry當中。

首先,在 Google Cloud Console 管理介面中,依序點選「CI/CD > Artifact Registry > Repositories」項目,在 Artifact Registry 頁面中,點選「Create Repository」項目,準備建立測試用的 Repository。


在 Create Repository 頁面中,採用下列相關資訊建立新的測試用途 Repository:
  • Name: monolith-demo
  • Format: Docker
  • Mode: Standard
  • Location type: Region (us-central1 (lowa)

採用上述資訊後,按下 Create 鈕順利建立新的測試用途 Repository。




組態設定身份驗證機制

在執行推送或拉取 Docker 映像檔之前,請先為 Docker 組態設定為使用 Artifact Registry 時進行身份驗證。在本文實作環境中,將會針對 us-central1區域中 Docker 儲存庫,進行身份驗證機制,請在 Cloud Shell 中執行「gcloud auth configure-docker us-central1-docker.pkg.dev」指令。


上述指令執行後,將會更新 Docker 組態設定,以便稍後可以順利連接 Artifact Registry,並且推送和拉取 Docker 映像檔。



部署 Docker 容器

在執行部署作業之前,必須先啟動 Cloud Build、ArtifactRegistry、Cloud Run API 等服務,請執行「gcloud services enable artifactregistry.googleapis.com cloudbuild.googleapis.com run.googleapis.com」指令。

順利啟用相關服務後,執行「gcloud builds submit --tag us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0」指令建立 Docker 容器映像檔。


倘若,管理人員希望查看歷史記錄或是在建立 Docker 容器映像檔的流程時,可以點選「Cloud Build > History」,便可以看到建置的 Docker 容器映像檔的清單。


點選 Build ID 後,便可以查看建置過程中的詳細資訊。








透過 Cloud Run 部署網站 - 系列文章

  • 透過 Cloud Run 部署網站 - Task1 | GSP659
  • (本文) 透過 Cloud Run 部署網站 - Task2 | GSP659
  • 透過 Cloud Run 部署網站 - Task3 | GSP659
  • 透過 Cloud Run 部署網站 - Task4 | GSP659
  • 透過 Cloud Run 部署網站 - Task5 | GSP659
  • 透過 Cloud Run 部署網站 - Task6 | GSP659

vSAN 8 U1新功能升級,體驗解構式 ESA 超融合叢集 | 網管人第 212 期

$
0
0

 



網管人雜誌

本文刊載於 網管人雜誌第 212 期 - 2023 年 9 月 1 日出刊,NetAdmin 網管人雜誌為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

在本文中,將深入剖析 VMware 於 2023 年 4 月,所推出最新 vSAN 8.0 Update 1 超融合版本中,有哪些亮眼特色功能,能夠幫助企業和組織更容易進行維護管理,或是幫助管理人員縮短問題分析和故障排除時間。





vSAN 8 U1 亮眼特色功能

Skyline 健康指數儀表板

隨著企業和組織,接受 vSAN 超融合解決方案帶來的管理和效益後,對於僅熟悉傳統 vSphere 架構的管理人員來說,在問題分析和故障排除時,勢必產生一定程度的影響。

因此,在最新的 vSAN 8 U1 版本中,除了加強原有 Skyline Health for vSAN 之外,更推出全新的 Skyline 叢集健康儀表板,在全新儀表板當中共有三大區塊(如圖 1 所示),分別是 vSAN 叢集的健康評分、運作狀態趨勢和結果的健康指數、健康狀態和需要修復的項目。

圖 1、全新推出的 Skyline 叢集健康儀表板

首先,管理人員應該也會好奇,vSAN 叢集健康評分結果是如何產生的 ?事實上,這是系統根據兩種方式,分別是「類別影響」(Category Impact)「優先權影響」(Priority Impact),再依照不同事件產生的權重,最後所產生的評分結果,舉例來說,類別影響包含可用性、運作效能、儲存空間使用率、合規性……等,而優先影響則是類別中觸發的事件,對於 vSAN 叢集健康影響的程度所給予的權重。

簡單來說,當 vSAN 叢集健康評分結果落在 81-100 分時健康狀態,表示管理人員無須擔心 vSAN 叢集的健康情況,當評分結果落在 61-80 分時健康狀態惡化,此時管理人員應檢查系統建議的項目並進行排除或修復,以便將 vSAN 叢集恢復為健康狀態,當評分落在 0-60 分時為不健康狀態,管理人員應立即進行故障排除作業。

另一個儀表板為運作狀態趨勢和結果健康指數,透過這個運作趨勢歷史資料,管理人員可以輕鬆得知,vSAN 超融合叢集的健康評分,點選不同的時間點和評分時,下方的健康檢查項目和需要修復項目也會變化,讓管理人員一目了然健康情況不佳時,是因為哪個項目必須進行修復,以及修復後能夠獲得的健康權重(如圖 2 所示)。

圖 2、vSAN 叢集健康儀表板中,運作狀態趨勢和結果健康指數

最後,透過健康狀態和需要修復項目,可以清楚看到每個事件的類別,以及帶來的健康權重影響為何(如圖 3 所示)。因此,即便是資歷較淺的管理人員,透過說明和提供的資訊,也能輕鬆了解事件發生的根本原因以及如何進行故障排除,進而提升 vSAN 叢集的整體健康情況。

圖 3、透過健康狀態和需要修復項目機制,輕鬆幫助管理人員進行故障排除



不斷增強的效能檢測工具

在最新 vSAN 8 U1 版本中,針對 vSAN 超融合叢集效能檢測的部份,也在三個部份進行加強。首先,透過「效能支援」(Performance for Support)檢測機制,可以針對 vSAN 超融合叢集的效能和穩定性進行故障排除。

事實上,過去管理人員只能透過 vSAN Observer,也就是 RVC(Ruby vSphere Console)工具,才能針對 vSAN 超融合叢集進行效能資料收集和分析作業,直到舊版 vSAN 6.6.1 版本中,才推出效能支援內建工具,以便取代 vSAN Observer 工具,讓 vSAN 管理人員能夠輕鬆查看,vSAN 超融合叢集和節點主機之間,整體運作效能的統計資訊以利判斷。

現在,最新的 vSAN 8 U1 版本中,管理人員可以直接看到 vSAN ESA 叢集中,針對 IOPS 儲存效能、Latency 延遲時間、Throughput 傳輸量等統計資訊(如圖 4 所示),有效幫助管理人員進行判斷,縮短對於 vSAN 超融合叢集的故障排除時間。

圖 4、透過效能支援儀表板有效縮短故障排除時間

此外,vSAN 8 U1 版本中,針對 vSAN 物件提供「物件追蹤」(Trace Objects)功能,系統每隔 1 分鐘將會自動複製或備份,vSAN 相關物件到 vSAN Datastore 儲存資源中,用於存放專用物件的路徑,而這些特殊物件僅保存 6 天後,系統便會自動執行清除作業,在 32 台節點主機的 vSAN 叢集規模中,儲存 6 天的 vSAN 物件和物件追蹤日誌,大約會佔用 512GB 的儲存空間。

一旦企業或組織碰上無法解決的問題,而尋求 VMware 技術支援時,技術支援團隊便能透過取得物件追蹤日誌內容,以便在最短時間能夠為幫助企業或組織,識別和解決問題。

在 vSAN 超融合叢集環境中,節點主機之間的網路環境至關重要,無論是傳輸穩定性或傳輸效率,輕者影響 vSAN 叢集運作效能,重者節點主機之間造成網路隔離的情況。因此,在 vSAN8U1 版本中,針對網路測試和健康檢測機制進行改進,舉例來說,在 vSAN 網路主機測試作業中,由於新式 vSAN ESA 和傳統 vSAN OSA,在網路傳輸方便的基本要求並不相同,所以當 vSAN ESA 環境執行網路測試時,將會自動忽略目標網路卡的傳輸速度,而嘗試採用並呈現最大網路吞吐量(如圖 5 所示),以避免管理人員產生混淆的情況。

圖 5、改良的網路傳輸速率測試避免管理人員產生混淆

此外,在網路延遲檢查作業中,也簡化 vSAN 叢集節點主機之間的測試結果,在過去的版本中,將會針對每台節點主機之間,呈現 ping 測試的結果,然後在大規模的 vSAN 叢集環境中,由於節點主機數量較多,導致管理人員不易從測試結果中,快速的得知是否有節點主機發生網路異常的情況。現在,除非有個別的節點主機網路發生異常,否則將會直接呈現 vSAN 叢集整體測試結果(如圖 6 所示)。

圖 6、增強後的網路測試結果,協助管理人員快速判斷網路環境健康情況



VM 效能問題分析利器 I/O Trip Analyzer

過去,在 vSAN 叢集中的 VM 虛擬主機,倘若發生儲存效能問題時,主要依靠管理人員的經驗進行問題分析和故障排除。現在,透過最新 vSAN 8 U1 版本中,VM I/O Trip Analyzer 機制,管理人員只要針對發生問題的 VM 虛擬主機,執行一段時間的效能診斷資料收集作業,後續 VM I/O Trip Analyzer 便能進行效能問題分析。

從 VM I/O Trip Analyzer 分析結果可以看到,管理人員可以透過簡單的視覺化圖形(如圖 7 所示),了解發生效能問題的 VM 虛擬主機,從 vDisk 虛擬硬碟的 vSAN Policy,到與其它 VM 虛擬主機進行通訊的路徑,系統也會在每個傳輸路徑中,指示可能發生效能問題的原因。

圖 7、透過 VM I/O Trip Analyzer 機制,有效分析 VM 虛擬主機效能問題





實戰演練 – vSAN ESA HCI Mesh

在實戰小節中,將實作演練新版 vSAN 8 Update 1 版本中,ESA 超融合儲存架構最新支援的「解構式儲存」(Disaggregated Storage)運作架構(如圖 8 所示)。值得注意的是,在 vSAN 8 U1 版本中,雖然 ESA 超融合叢集已經正式支援解構式儲存運作架構,然而與傳統的 OSA 超融合儲存架構相較之下,仍有下列功能項目尚未支援
  • 跨 vCenter Server 管理平台時,不支援運作解構式儲存架構。
  • 在 vSAN 延伸叢集運作架構中,不支援運作解構式儲存架構。
  • 在 vSAN ESA 解構式儲存架構中,不支援重複資料刪除。因為,vSAN ESA 超融合叢集本身尚未支援重複資料刪除功能。
  • 在 vSAN ESA 解構式儲存架構中,不支援加密金鑰更新功能。因為,vSAN ESA 超融合叢集本身尚未支援加密金鑰更新功能。
圖 8、vSAN ESA 超融合叢集支援解構式儲存架構運作示意圖

在實作環境方面,採用最新 vCenter Server 8 U1 版本之外,共有三個 vSphere 叢集,分別是擔任管理用途的 Management 叢集,和 vSAN8-ESA 超融合叢集,以及僅用於運算的 Compute 叢集(如圖 9 所示)。在 vSAN 8 ESA 的部份共三台 vSAN 叢集節點主機,每台 vSAN 叢集節點主機,除了安裝 vSphere 虛擬化平台系統硬碟之外,還額外配置四顆 600 GB NVMe 儲存裝置。此外,另有一台 vSphere 8 U1 虛擬化平台,屆時將遠端掛載使用由 vSAN 8 ESA 超融合叢集的儲存資源。

圖 9、實作環境中共有三個不同用途和功能的 vSphere 及 vSAN 叢集



部署 vSAN ESA 超融合叢集

在部署 vSAN ESA 超融合叢集的部份,有關建立 DataCenter 和 Cluster,以及組態設定 vDS 分佈式虛擬交換器和 vSAN VMkernel Port……等詳細資訊,請參考本刊「第 208 期 - vSAN 8 新儲存架構開工,實戰 ESA 超融合叢集」內容,因此不再贅述。

順利部署 vSAN ESA 超融合叢集後,在實作解構式儲存功能之前,先確認 vSAN ESA 超融合叢集一切運作正常,相關服務順利啟用,並採用正確的 Storage types(如圖 10 所示)。

圖 10、確認 vSAN ESA 超融合叢集採用正確的 Storage types



暫時關閉 vSphere HA 服務

在本文實作環境中,將組態設定傳統的 vSphere 叢集,專責擔任 Compute 運算叢集的用途,讓其中運作的工作負載,例如,VM 虛擬主機或容器,能夠充分使用 Compute 運算叢集的運算資源,至於儲存資源的部份,則使用高可用性高效能的 vSAN ESA 超融合叢集。

因此,在組態設定 vSAN ESA 超融合叢集解構式運作架構之前,先將 vSphere HA 高可用性機制暫時關閉(如圖 11 所示),以避免在組態設定過程中,除了可能不小心觸發 vSphere HA 高可用性機制,產生非預期的高負載工作量,進而導致對 VM 虛擬主機中,持續運作的服務或應用程式產生中斷或影響。

圖 11、暫時關閉 vSphere HA 高可用性服務,避免組態設定解構式儲存架構時產生非預期的影響



規劃專屬 vSAN VMkernel Port

在 vSAN 解構式儲存運作架構中,無論擔任 Server Cluster、Client Cluster、Compute Cluster 角色,一律建議管理人員必須為這些 vSAN 叢集節點主機或 ESXi 主機,組態設定專用於連接和掛載,遠端 vSAN Datastore 儲存資源的 vSAN VMkernel Port。

在 vSAN 解構式儲存架構時,跨叢集的傳輸流量採用「RDT over TCP/IP」,和原有傳統 vSAN 超融合叢集的網路流量,採用幾乎完全相同的 TCP/IP 網路協定堆疊架構。此外,建議配置 NIC Teaming 容錯機制,並採用專屬的 vDS 分佈式虛擬交換器,且搭配 NIOC 網路流量管理機制之外,為了避免因為跨叢集之間的網路延遲,導致影響 VM 虛擬主機運作效能,建議至少應採用 25 Gbps 網路卡。

根據 VMware 官方最佳建議作法,採用傳統 vSAN OSA 超融合叢集,運作解構式儲存架構時,一旦網路延遲時間超過 5 ms 時,將會觸發系統的告警機制。而採用新式 vSAN ESA 超融合叢集運作解構式儲存架構時,當網路延遲時間超過 1 ms 時,將會觸發系統告警機制。

事實上,從 vSAN 7 Update 1 版本開始,便支援整合 Layer 3 路由機制的網路層。因此,當企業或組織因為某些原因,不採用原有建議的 Layer 2 資料連結層時,可以採用具備路由機制的 Layer 3 網路層。只要管理人員在新增專屬的 vSAN VMkernel Port 時,勾選「override default gateway for this adapter」項目,並指定採用的預設閘道 IP 位址,即可立即支援具備路由機制的 Layer 3 網路層。

在本文實作環境中,已經為 Compute 叢集中的 ESXi 主機,配置另一個專屬實體網路卡,用於連接和掛載 vSAN ESA 超融合儲存資源。請在 vCenter 管理介面中,依序點選「vCenter Server > Datacenter > Compute Cluster > ESXi > Configure > Networking > VMkernel adapters > Add Networking」項目,準備為 Compute 叢集中的 ESXi 主機,配置專屬的 vSAN VMkernel Port。

在彈出的 Add Networking 視窗中,在 1. Select connection type 頁面中,請選擇 VMkernel Network Adapter 項目,在 2. Select target device 頁面中,選擇 Select an existing standard switch 及 vSwitch0,先使用系統預設的 vSS 標準虛擬網路交換器,稍後將會遷移至 vDS 分佈式虛擬網路交換器。

在 3. Port properties 頁面中,於 Network label 欄位鍵入 vSAN-VMkernel,並在下方 Enabled services 區塊中勾選 vSAN 項目,表示這個新增的 VMkernel Port 將會啟用 vSAN 類型網路流量,在 4. IPv4 settings 頁面中,鍵入 vSAN VMkernel Port 的 IPv4 位址和網路遮罩,在 5. Ready to complete 頁面中,確認組態設定正確無誤後,按下 Finish 鈕即可套用生效。

接著,將剛才 Compute 叢集中,ESXi 主機中的 vSAN VMkernel Port,由原本的 vSS 標準虛擬網路交換器遷移至 vDS 分佈式虛擬網路交換器,請依序點選「Inventories > Networking > Datacenter > vSAN-DSwitch > Actions > Add and Manage Hosts」項目,在 1. Select task 頁面中,選擇 Add hosts 項目,在 2. Select hosts 頁面中,請勾選 Compute 叢集中的 ESXi 主機,在 3. Manage physical adapters 頁面中,可以看到 ESXi 主機規劃專屬用於解構式儲存的 vmnic1,請在 Assign uplink 下拉式選單中,選擇 Uplink1 項目,此時 In use by switch 將會顯示為 This switch。

在 4. Manage VMkernel adapters 頁面中,由於剛才 ESXi 主機新增的 vSAN VMkernel Port 名稱為 vmk1,所以請在 vmk1 項目中點選 Assign Port Group 連結,在 Assign port group 頁面中,可以看到採用 vSAN-DPortGroup 和 vSAN-DSwitch,請按下 Actions 中的 Assign 連結,確認使用這個 vDS 分佈式虛擬網路交換器和 Port Group。

在 5. Migrate VM networking 頁面中,由於不需要將 VM 虛擬主機,連接至 vSAN 網路環境中,因此採用系統預設值即可,在 6. Ready to complete 頁面中,確認組態設定正確無誤後,按下 Finish 鈕即可套用生效。

現在,可以在 vDS 分佈式虛擬網路交換器中看到,除了 vSAN ESA 超融合叢集節點主機之外,還有剛才加入 Compute 叢集中的 ESXi 主機(如圖 12 所示)。

圖 12、為 Compute 叢集 ESXi 主機規劃專屬的 vSAN VMkernel Port 和網路環境



啟用 HCI Mesh Computer Cluster

前置作業完畢後,請點選 Compute 叢集後,依序點選「Configure > vSAN > Serivces > I don’t need a local vSAN datastore > Configure cluster without vSAN datastore > Configure」,在彈出的視窗中,系統說明雖然會為 vSphere Cluster 啟用 vSAN 功能,但是並沒有使用本機儲存資源,確認無誤後按下 Apply 鈕以便套用生效(如圖 13 所示)。

圖 13、啟用 vSAN HCI Mesh Computer Cluster 功能

此時,管理人員可能會有疑問,這個 Compute 叢集啟用 vSAN 進階功能,並且稍後會掛載 vSAN Datastore 儲存資源使用,那麼企業和組織是否需要為 Compute 叢集購買 vSAN 軟體授權 ?簡單回答是不需要購買 vSAN 軟體授權。



掛載 vSAN ESA Datastore 儲存資源

系統經過一連串的組態設定作業後,順利為傳統的 vSphere 叢集,啟用 vSAN HCI Mesh Computer Cluster 進階功能,在掛載 vSAN ESA Datastore 儲存資源之前,請先確保 vSphere 叢集的 vSAN Service 狀態和 Storage Types 運作模式,確保稍後能夠掛載 vSAN ESA Datastore 儲存資源(如圖 14 所示)。

圖 14、為傳統 vSphere 叢集,啟用 vSAN HCI Mesh Computer Cluster 進階功能

確認無誤後,在 Compute 叢集中,依序點選「Configure > vSAN > Remote Datastores > Mount Remote Datastore」項目,在 1. Select datastore 頁面中,選擇先前建立的 vSAN ESA Datastore 儲存資源,在 2. Check compatibility 頁面中,系統將會針對剛才選擇的 vSAN ESA Datastore 儲存資源,進行多種項目的相容性檢查(如圖 15 所示),例如,遠端 vSAN Datastore 儲存資源是否為支援格式的版本、vSAN 叢集是否已經達到 Client Cluster 的掛載上限、網路延遲時間是否符合最佳建議的 5ms……等,確保稍後能順利掛載和使用 vSAN ESA Datastore 儲存資源。

圖 15、系統進行掛載遠端 vSAN Datastore 儲存資源的相容性檢查作業

值得注意的是,倘若 vSAN 叢集節點主機「停用 IPv6」網路堆疊功能,那麼系統將無法進行相容性檢查作業,並且顯示「Failed to run the remote datastore mount pre-checks」錯誤訊息,又或者 Compute 叢集的 ESXi 主機,雖然建立 vSAN VMkernel Port,並且加入同一個 vDS 分佈式虛擬網路交換器,但是在 vSAN VMkernel Port 組態設定內容中,卻忘了勾選 Enabled servies 中的 vSAN 項目時,也會導致相容性檢查作業,在「Server and client clusters have no connectivity issues」出現紅色錯誤,並提醒問題原因為「Cannot connect to any server host」,並且無法繼續掛載作業(如圖 16 所示)。

圖 16、遺漏的組態設定,導致無法通過相容性檢查作業程序

現在,管理人員可以在 Remote Datastore 視窗中,看到多出 vSAN ESA Datastore 儲存資源(如圖 17 所示),並且後續在 Compute 叢集新增 VM 虛擬主機時,在選擇 Datastore 儲存資源頁面中,也會看到 vSAN ESA Datastore 儲存資源項目可供選擇。

圖 17、Compute 叢集順利掛載 vSAN ESA Datastore 儲存資源

順利啟用並完成 vSAN HCI Mesh Computer Cluster 組態設定作業後,管理人員即可將剛才暫時關閉的 vSphere HA 高可用性機制進行啟用。值得注意的是,在為 Compute 叢集啟用 vSphere HA 高可用性機制時,因為 vSAN HCI Mesh Computer Cluster 並非一般普通 vSphere 叢集,假設 vSAN ESA 超融合叢集發生災難事件時,將會導致 Compute 叢集中的 VM 虛擬主機受到影響,並觸發「設備永久遺失」(Permanent Device Loss,PDL)或「所有路徑關閉」(All Paths Down,APD)機制。

因此,建議管理人員在重新啟用 vSphere HA 高可用性機制時,應確認 Datastore with APD 和 Datastore with PDL 組態設定值,分別建議採用「Power off and restart VMs」,和「Power off and restart VMs – Conservative restart policy」選項(如圖 18 所示)。有關 APD 和 PDL 組態設定內容的詳細資訊,請參考 VMware KB2004684KB2032934KB2032940KB2004605KB2059622知識庫文章內容。

圖 18、Compute 叢集啟用 vSphere HA 時建議採用的 PDL 和 APD 組態設定



遷移 VM 虛擬主機儲存資源並套用 vSAN 原則

現在,Compute 運算叢集無論是部署新的 VM 虛擬主機,或是現有 VM 虛擬主機需要執行 Storage vMotion 遷移儲存資源時,都能選擇已經連接和掛載完成的,遠端 vSAN ESA Datastore 儲存資源,並且套用具備高效能和高彈性的 vSAN 儲存原則。

在本文實作環境中,於 Compute 運算叢集中,共有五台運作中的 VM 虛擬主機,這是在建立 vSAN HCI Mesh Computer Cluster 之前,便已經部署運作的 VM 虛擬主機。因此,這五台 VM 虛擬主機的儲存資源,仍然使用 Compute 運算叢集中,ESXi 主機的本機系統硬碟(如圖 19 所示)。

圖 19、現有運作的 VM 虛擬主機儲存資源位於 ESXi 主機本機硬碟內

將以其中名稱為 DB01 的 VM 虛擬主機為例,透過 Storage vMotion 線上儲存遷移機制,將 VM 虛擬主機的儲存資源,由原本的 ESXi 主機本機硬碟,遷移至高可用性的 vSAN ESA Datastore 儲存資源。

請點選 DB01 虛擬主機後,在右鍵選單中選擇 Migrate 項目,在 1. Select a migration type 頁面中,選擇 Change storage only 選項,在 2. Select storage 頁面中,即可看到透過 vSAN HCI Mesh Computer Cluster 機制,掛載完成的 vSAN ESA Datastore 儲存資源,在 3. Ready to complete 頁面中,確認無誤後按下 Finish 鈕,系統便立即執行 Storage vMotion 線上遷移儲存資源的動作。

當 Storage vMotion 工作任務執行完畢後,管理人員查看 DB01 虛擬主機的儲存資源時,可以發現轉為使用 vsanDatastore 儲存資源,並且查看 DB01 虛擬主機的 vSAN 儲存物件分佈情況時,可以看到套用高可用性的 vSAN RAID-1 儲存原則,並且將 vSAN 儲存物件分佈在不同的 vSAN 叢集節點主機中(如圖 20 所示),達成 DB01 虛擬主機使用 Compute 叢集的運算資源,而儲存資源則是使用遠端的 vSAN ESA Datastore 儲存資源。

圖 20、遷移 VM 虛擬主機儲存資源至 vSAN ESA Datastore





結語

透過本文的深入剖析和實作演練後,相信管理人員除了理解最新 vSAN 8 U1 版本中,有哪些亮眼特色功能之外,透過實際操作並驗證 vSAN HCI Mesh Computer Cluster 機制,能夠為企業和組織所帶來的效益,將 VM 虛擬主機的工作負載中,運算資源和儲存資源分別運作在不同的 vSphere/vSAN 叢集中。

VMware vSphere 8 攻略 - 系列文章 (更新: vSAN 8 U1新功能升級,體驗解構式 ESA 超融合叢集)

$
0
0


簡介

在 2022 年 VMware Explore 大會上,VMware 官方正式發佈最新 vSphere 8 版本。同時,從 vSphere 8 版本開始,VMware 官方採用新的版本發佈模型,分別稱為「初始可用性」(Initial Availability,IA)「通用可用性」(General Availability,GA),簡單來說,新的版本發佈方式和 vSphere+ 雲端服務版本將保持一致。後續,站長也將不定期針對最新 VMware vSphere 8 版本,各種亮眼特色功能進行深入剖析和實戰演練。 




網管人技術專欄

Authentication to smtp.gmail.com:587 failed | Ansible

$
0
0

 



Question: Authentication to smtp.gmail.com:587 failed

嘗試使用 Ansible Playbook 利用 Gmail SMTP Server 來寄送信件時,雖然採用的使用者帳號跟密碼都正確,但是卻出現「Authentication to smtp.gmail.com:587 failed」錯誤訊息?






Answer:

簡單來說,要使用 Gmail SMTP Server 來寄送信件時,必須採用應用程式密碼才行。詳細資訊請參考:

首先,必須先確認採用的 Gmail 帳號,必須「開啟」雙因素驗證機制。


接著,產生「應用程式密碼」。


將 Playbook 內,原本使用的 Gmail 使用者帳號的密碼,修改成剛才產生的「應用程式密碼」,便發現 Ansible Playbook 能夠順利執行,並且透過 Gmail SMTP Server 寄信。



回到 Google 帳戶的應用程式密碼頁面時,可以發現剛才建立的應用程式密碼,會出現「上次使用應用程式密碼的時間」資訊。






利用 Playbook 透過 Gmail SMTP 寄 E-Mail

這是站長今年在 DevOpsDays Taipei 2023 - GitOps 體驗工作坊中的一環,下列是透過 Gmail SMTP Server 寄送 E-Mail 的 Playbook,有興趣的朋友可以參考看看。



Deploying Single Node Cluster | Nutanix CE

$
0
0

 



簡介

因為手邊還沒有 Nutanix 硬體 😆,所以先使用簡單的 VMware WrokStation Player 17搭配 Nested Virtualization 機制,來搭建最新的 Nutanix CE (phoenix-ce2.0-fraser-6.5.2-stable-fnd-5.3.4-x86_64.iso)版本,建構最簡單的 Nutanix CE Single Node Cluster架構進行後續測試。







建立 Nutanix CE VM 虛擬主機

透過 VMware WrokStation Player 17 建立的 Nutanix CE VM 虛擬主機,大概需要注意幾個地方。首先,本文實作環境採用目前最新的Nutanix CE (phoenix-ce2.0-fraser-6.5.2-stable-fnd-5.3.4-x86_64.iso) 版本。


在選擇 OS 作業系統時,選擇採用「CentOS 7 64-bit」即可。


在本文實作環境中,針對 Nutanix CE VM 虛擬主機的配置如下:
  • 8 vCPU (記得勾選 Virtualize Intel VT-x/EPT or AMD-V/RVI項目)
  • 64 GB vMemory
  • 50 GB (Hypervisor Boot - h)、200 GB (Data - Cold tier - d)、500 GB (CVM Boot - Hot tier - c)

在開始 Power On 及安裝之前,記得編輯 .vmx 設定檔內容,加上「disk.EnableUUID = "TRUE"」參數後存檔離開,否則屆時 vDisk 會沒有 Serial Number,並且後續 Cluster 也會發生某些服務無法順利啟動的情況。






安裝 Nutanix CE Single Node

執行 Power On 並開始安裝程序,在這個部份會需要等待一小段時間 (我的環境大約等待 3 分鐘)。


Nutanix CE Installer - AOS 6.5.2安裝畫面中,選擇採用 AHV在硬碟的部份,可以發現有顯示 Serial Number,並且系統也自動選擇好 Hypervisor Boot, CVM Boot, Data。同時,請指定 AHV Host IP 跟 CVM IP 位址。請勿使用 192.168.5.0/24網段,因為 Nutanix CE 預設會使用到這個網段,請避開以免衝突。


在 CE EULA 畫面,請一定要使用「向下箭頭」或「Page Down」鈕看完整個 CE EULA,否則僅勾選 I accept 項目的話,稍後的安裝作業會中斷,並且還是要回來看完 CE EULA 才能繼續安裝。😏


開始執行安裝作業後,可以看到所花費的時間,以及還有多少安裝工作任務需要執行,也看到預設採用的 192.168.5.0/24 資訊。


在本文實作環境中,大約花費 25 分鐘完成安裝任務,請鍵入 Y 後重新啟動主機。






建構 Nutanix CE Single Node Cluster

重新啟動後,即可從 VM Console 畫面或透過 SSH 登入 AHV 虛擬化平台。下列表格,為 AHV、CVM、Prism Element 預設管理者帳號和密碼:


順利登入 AHV 後,你可能會發現無法 Ping 到 CVM 的 IP 位址? 原因可能是 CVM 還沒有順利啟動完畢,舉例來說,本文實作環境在安裝完畢重新啟動後,大約 5 分鐘之後才順利啟動 CVM,不確定 CVM 的運作狀態時,可以在 AHV 上執行「virsh list --all」指令進行確認。


當 CVM 順利啟動後,即可 Ping 到 CVM IP 位址並嘗試登入了。


首先,我們查詢一下 AHV主機上的相關資訊,可以看到採用的是 CentOS 7.9,並使用剛才安裝程序中組態設定的 10.10.75.30 並預設使用 192.168.5.1的 IP 位址。


同樣的,登入 CVM後查詢相關資訊,可以看到同樣採用的是 CentOS 7.9,並使用剛才安裝程序中組態設定的 10.10.75.31 並預設使用 192.168.5.2 和 192.168.5.254 IP 位址。當然,執行「cluster status」指令,可以看到 Nutanix Cluster 尚未組態設定。


確定基本組態沒問題後,請在 CVM 主機上,執行「cluster -s 10.10.75.31 --redundancy_factor=1 create」指令,建構 Nutanix Single Node Cluster運作環境。


需要等待一段時間,可以看到相關的服務逐步啟動中,而整個指揮中心則是稱為 ZeusLeader (玩 Nutanix 會發現有一堆跟希臘神話有關的術語 😎),最後所有服務順利啟動 Single Node Cluster 建構完成。



倘若,還是擔心或想再次確認 Single Node Cluster 運作狀態時,請執行「cluster status」即可進行確認。






登入 Prism Element 管理介面

在 CVM 主機上,確認 Prism Element 管理介面 (Port 9440) 是否已經 Listen。然而,使用 Chrome 或 Edge嘗試登入 Prism Element 管理介面時,卻顯示「NET::ERR_CERT_INVALID」的警告訊息,並且展示 Advanced 也沒有略過的按鈕可以略過?


此時,只要在錯誤網頁中空白處,直接敲打鍵盤上的「thisisunsafe」(舊稱為 badidea) 💩,即可順利載入這個不安全的網頁,並看到 Prism Element 登入畫面 😅。


初次登入需要變更管理者密碼。


重新回到登入畫面,並使用新的管理者密碼登入。


登入後,會發現系統要求你填入 Nutanix CE 的註冊資訊 (這是使用 Nutanix CE 的限制條件之一!)。


系統將會檢查是否通過驗證程序。請記得登入 My Nutanix 網站,點選 Community EditionActivate鈕,否則這裡可能會無法通過驗證程序。


順利登入,看到 Prism Element 管理介面。



Nutanix CE 攻略 - 系列文章 (更新: Deploying Single Node Cluster)

$
0
0

 



簡介

簡單來說,後續要開始玩 Nutanix 超融合架構,在還沒有正式硬體設備之前,可以先透過 Nutanix CE (Community Edition)來體驗整個運作環境和相關特色功能。









安裝 Nutanix CE 系列文章











學習資源


透過 Cloud Run 部署網站 - Task3 | GSP659

$
0
0

 


簡介

在本文實作練習中,將會透過 Deploy Your Website on Cloud Run | Google Cloud Skills Boost 主題,學習如何在 GCP 雲端環境中,如何透過 Cloud Run (Serverless) 技術,部署和管理組織和企業的網站。
上一篇文章中,已經順利建立屆時存放 Docker 容器映像檔的 Artifact Registry Repositories,並且組態設定身份驗證機制,以及建構 Docker 容器映像檔。在本文中,將會把 Docker 容器部署至 Cloud Run 環境中。下圖為本文實作環境的 Cloud Run 運作架構示意圖:






Task 3、將 Docker 容器部署至 Cloud Run

Task 2、透過 Cloud Build 建立 Docker 容器實作中,我們已經針對 NodeJS 網站進行容器化的動作,並且將 Docker 容器映像檔推送至 Artifact Registry Repositories。現在,可以開始將 Docker 容器部署至 Cloud Run 運作環境,原則上部署到 Cloud Run 有下列兩種方式:

  • Managed Cloud Run: 這是 PaaS (Platform as a Service) 的運作模式,所有容器的生命週期,都是透過 Cloud Run 進行管理和維護。本文實作環境,便是採用此運作模式。
  • Cloud Run on GKE:  Cloud Run 支援額外的控制層級,讓企業和組織的管理人員,可以透過 GKE 整合自行管理的 Kubernetes 叢集和 Pod,詳細資訊請參考 Setting up Cloud Run for Anthos | Google Cloud

請執行「gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region us-central1」指令,將 Docker 容器映像檔部署到 Cloud Run 運作環境中,當系統出現「Allow unauthenticated invocation to [monolith] (y/N) ?」時,請回答「Y」即可。

順利執行將 Docker 容器映像檔部署到 Cloud Run 環境的動作後,請執行「gcloud run services list」指令,驗證剛才的部署動作是否成功,請在顯示結果的 URL 中,將 URL 網址複製後開啟瀏覽器貼上網址後,應該可以順利看到 Fancy Store! 網頁。






透過 Cloud Run 部署網站 - 系列文章

ERROR The installation cannot proceed | Nutanix CE

$
0
0

 



Question: 安裝 Nutanix CE 到一半時系統中斷安裝程序?

在安裝 Nutanix CE 中,安裝到一半時系統突然中斷安裝,並出現「ERROR The installation cannot proceed if you do not scroll to the end of the End User License Agreement.」錯誤訊息?






Answer:

簡單來說,因為在 Nutanix CE 安裝過程中,在 CE EULA 安裝階段時,沒有把使用者授權條款看完,就直接選擇 I accept 然後進行安裝作業所導致。


在 CE EULA 畫面,請一定要使用「向下箭頭」或「Page Down」鈕看完整個 CE EULA,否則僅勾選 I accept 項目的話,稍後的安裝作業便會中斷,並且還是要回來看完 CE EULA 才能繼續安裝。😏


Medusa ERROR Cassandra gossip failed | Nutanix CE

$
0
0

 



Question: 在啟動 Nutanix CE Cluster 時,卡在 Medusa 服務?

在嘗試啟動 Nutanix CE Cluster 時,卡在 Medusa 服務並出現「Medusa ERROR: Cassandra gossip failed」錯誤訊息?

然後,在 CVM 主機日誌記錄中,可以看到「Duplicate Serial number discovered for serial drive-scsi0」錯誤訊息。

突然想到,在安裝 Nutanix CE 時,似乎並沒有看到顯示硬碟的 Serial Number,這在虛擬化測試環境時,常常會發生這種問題。






Answer:

請在開始 Power On 及安裝 Nutanix CE 之前,記得編輯 .vmx 設定檔內容,加上「disk.EnableUUID = "TRUE"」參數後存檔離開,屆時 vDisk 便會指派隨機的 Serial Number,後續嘗試啟動 Nutanix CE Cluster 時便沒遇到問題並順利啟動。

 
在 Nutanix CE Installer - AOS 6.5.2 安裝畫面中,便可以看到在硬碟部份有顯示 Serial Number,並且系統也自動選擇好 Hypervisor Boot, CVM Boot, Data。


透過 Cloud Run 部署網站 - Task4 | GSP659

$
0
0

 


簡介

在本文實作練習中,將會透過 Deploy Your Website on Cloud Run | Google Cloud Skills Boost 主題,學習如何在 GCP 雲端環境中,如何透過 Cloud Run (Serverless) 技術,部署和管理組織和企業的網站。
上一篇文章中,已經順利將建構的 Docker 容器映像檔,部署至 Cloud Run 運作環境。在本文中,將會重新部署  Docker 容器映像檔,但是採用不同的 Concurrency 數值。下圖為本文實作環境的 Cloud Run 運作架構示意圖:






Task 4、建立新版本但採用較低的 Concurrency 數值

預設情況下,部署至 Cloud Run 中的應用程式,將會採用「Concurrency 80」的數值,這個數值的意義表示,每個容器執行個體一次最多可以處理「80 個請求」。在這個工作任務中,將會把 Concurrency 數值進行調整,模擬企業和組織因應變化重新部署及調整相關參數的情況。

請執行「gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region us-central1 --concurrency 1」指令,重新部署 Docker 容器映像檔,但是調整 Concurrency 數值為「1」。


切換回 Google Cloud Console 管理介面中,準備查看詳細資訊。


進入後點選 REVISIONS,可以看到目前總共有兩個版本,點選最新的版本並查看右側資訊,便可以看到剛才部署時指定的「concurrency 1」。


確認新的部署版本可以採用不同的參數後,就可以將 Concurrency 恢復成預設值的 80,因為在一般應用情境下,容器通常是可以支援多個併發請求的。請執行「gcloud run deploy monolith --image us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/monolith-demo/monolith:1.0.0 --region us-central1 --concurrency 80」指令,建立新的版本並將 Concurrency 恢復成預設值的 80





透過 Cloud Run 部署網站 - 系列文章

Viewing all 619 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>