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

網管人 193 期 - WS 2022 新版亮點巡禮實測體驗 SMB 壓縮功能

$
0
0


網管人雜誌

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





本文目錄






前言

微軟 Ignite 2021 秋季大會上,總共發佈 90 多項新服務和功能更新,包含針對元宇宙(Metaverse)、人工智慧(Artificial Intelligence,AI)、數位分身(Digital Twins)、超級連結(Hyperconnectivity)……等關鍵趨勢(如圖 1 所示),其中也包括最新一代的 Windows Server 2022 雲端作業系統的正式發佈。

圖 1、透過虛擬人物幫助大家在數位環境中相聚的元宇宙概念





Windows Server 2022 亮眼特色功能

SMB Direct 加密傳輸

在過去的 Windows Server 版本中,雖然支援 RDMA 網路介面卡啟用 SMB 簽署和 SMB 加密機制,然而此舉卻會造成 RDMA 資料放置原則停用,簡單來說將會影響 RDMA 資料讀寫效能,進而影響 S2D 和其它整合 RDMA 機制的運作效能。

現在,全新的 Windows Server 2022版本,透過新增 AES-128AES-256密碼編譯套件,針對 SMB 3.1.1 的網路封包進行加密(如圖 2 所示),確保提供最佳的安全性之外,同時不影響 RDMA 資料放置原則,所以並不會因為啟用加密機制而影響到運作效能。

圖 2、透過 SMB 加密機制保護 SMB 網路封包示意圖



SMB over QUIC

傳統的 SMB 網路流量,在企業或組織的地端資料中心內,可以提供穩定可靠且高效能的網路傳輸。然而,在現今混合雲逐漸成為主流應用的時代,傳統 SMB TCP Port 445 網路流量在網際網路上,則是會被大多數的 ISP 網路服務供應商設備所阻擋,倘若企業透過 VPN 建立加密通道後再使用 SMB 進行傳輸,雖然達到網路流量高安全性的需求,卻又會無法兼顧到 SMB 網路傳輸效能。

因此,全新推出的 SMB over QUIC特色功能,能夠有效解決傳統 SMB 通訊協定,無法在網際網路上全面發揮的痛點。簡單來說,SMB over QUIC 機制讓 SMB 網路流量,採用 IETF 標準化的 QUIC 通訊協定,而非傳統的 TCP 通訊協定,同時搭配「UDP Port 443」來建立 TLS 1.3 加密通道(如圖 3 所示),確保所有傳送的網路封包一律加密,所以無須額外建立 VPN 加密通道,並且能夠順利通過 ISP 網路服務供應商的網路設備且不被阻擋。

圖 3、QUIC 通訊協定網路封包 Handshake 運作流程示意圖

值得注意的是,SMB over QUIC 特色功能,在目前的 Windows Server 2022 Standard 或 Datacenter 版本並未支援,必須採用「Windows Server 2022 Datacenter : Azure Edition」版本(如圖 4 所示),才能支援此項特色功能。




SMB 壓縮機制再增強

事實上,「SMB 壓縮」(SMB Compress)機制,在過去的 Windows Server 版本中便已經支援。但是,最早僅用於 Hyper-V 虛擬化平台中,執行 VM 虛擬主機線上即時遷移時,傳輸 VM 虛擬主機的記憶體分頁狀態時使用,也就是「Hyper-V Live Migration with SMB Compression」機制(如圖 5 所示),啟用後可以讓 VM 虛擬主機線上即時遷移的時間有效縮短。

圖 5、Hyper-V Live Migration with SMB Compression 組態設定

雖然,SMB 壓縮機制,早已經是 Windows 10 和 SMB 2 通訊協定規範的一部份,但是並未積極整合其它服務。因此,一開始只有整合 Hyper-V Live Migration 線上遷移機制,後來則是整合 IT 人員常用的檔案複製工具 Robocopy 和 Xcopy 。

透過 SMB 壓縮機制,系統將在檔案傳輸時自動化處理空白區塊進行壓縮,例如,VM 虛擬主機磁碟、圖形檔案、科學數據……等。如圖 6 所示,可以看到未啟用和啟用 SMB 壓縮機制後,在檔案傳輸上將會有明顯的效能改進。

圖 6、未啟用和啟用 SMB 壓縮機制後傳輸效能比較表



更新後無須重新啟動的 Hotpatch 技術

在過去的 Windows Server 版本中,安裝相關安全性更新後,通常必須要重新啟動 Windows Server,以便安全性更新或相關修正能夠套用生效。雖然,企業和組織的管理人員已經習慣此維運節奏,然而有些即時性的安全性更新,管理人員可能因為營運服務暫時無法中斷,而延後安裝安全性更新,間接造成營運服務暴露在資安風險當中。

透過最新的「熱修補」(Hotpatch)技術(如圖 7 所示),在安裝安全性更新時,將會直接針對 Windows Server 內,執行中的系統程序進行記憶體內部程式碼修正的動作,不僅營運服務中系統程序可持續運作,並且修正完畢後 Windows Server 也無須重新啟動,達成安全性更新和修補的目的。

圖 7、Hotpatch 技術運作架構示意圖

Microsoft IT Ops Talk技術社群,和 Windows Server Summit 2021 大會中,實際展示針對傳統 Windows Server,以及支援 Hotpatch 技術的 Windows Server,執行大量檔案複製作業,同時進行安全性更新的修補作業,從展示中可以看到,支援 Hotpatch 技術的 Windows Server,除了不影響運作中的檔案複製作業之外,在展示開始「32 秒」時便完成安全性更新的套用,而傳統的 Windows Server 在安裝安全性更新的過程中,除了影響到檔案複製作業時間之外,更延長安裝安全性更新的整體時間,該測試中傳統 Windows Server 除了花費「8 分 20 秒」,才順利完成安裝安全性更新的動作,最後仍須重新啟動主機才能完成安全性更新套用生效的目的(如圖 8 所示)。

圖 8、實際展示傳統和支援 Hotpatch 技術的 Windows Server 安裝安全性更新流程

值得注意的是,Hotpatch 特色功能,在目前的 Windows Server 2022 Standard 或 Datacenter 版本並未支援,必須採用「Windows Server 2022 Datacenter : Azure Edition」版本(如圖 9 所示),才能支援此項特色功能。




巢狀式虛擬化技術正式支援 AMD 處理器

事實上,在 Windows 10 和 Windows Server 2016 版本中,只要採用的 Intel 處理器支援「VT-x 和 EPT」硬體輔助虛擬化技術,那麼便可以在 Hyper-V 虛擬化平台中,建立「巢狀式虛擬化」(Nested Virtualization)環境(如圖 10 所示),除了方便管理人員更容易建構複雜的測試環境之外,也讓容器執行個體環境,搭配巢狀式虛擬化技術,實作出隔離性更佳更安全的「Hyper-V 容器」(Hyper-V Container)運作環境。

圖 10、Hyper-V 虛擬化平台巢狀式虛擬化運作架構示意圖

隨著 AMD 處理器的重新崛起,企業和組織也逐漸將採用 AMD 處理器的伺服器,導入至地端資料中心內,甚至從過去僅用於測試和研發用途,也慢慢提升為負責二線服務或部份營運服務。因此,在最新的 Windows 11 和 Windows Server 2022 版本中,正式支援採用虛擬化技術的 AMD EPYC/Ryzen處理器,也能夠建立 Hyper-V 巢狀式虛擬化環境(如圖 11 所示)。

圖 11、AMD 處理器建構 Hyper-V 巢狀式虛擬化環境



Microsoft Edge 瀏覽器

雖然,相較於 Windows Desktop 來說,在 Windows Server 運作環境中較少使用瀏覽器,然而需要使用到時在 Windows Server 環境中,卻一直都是採用年代已久且效能和支援度不佳的 IE 瀏覽器。因此,在新版 Windows Server 2022 雲端作業系統中,正式將內建的瀏覽器更改為新式的 Edge 瀏覽器,對於採用 WAC(Windows Admin Center)管理伺服器的人員來說,也同時增加管理上的方便度,當然管理人員也可以隨時把內建的 Edge 瀏覽器移除,並採用其它供應商的瀏覽器。



TCP/UDP 傳輸效能再增強

在 Windows Server 2022 雲端作業系統中,針對 TCP 和 UDP 網路通訊協定,有超過數百項資料路徑的功能改進。舉例來說,在 RTP 和 UDP 串流及遊戲通訊協定日益普及之下,以 UDP 為基礎的 QUIC 通訊協定,可將 UDP 效能和穩定度提升至和 TCP 通訊協定相同層級。

此外,Windows Server 2022 預設情況下,便會啟用「UDP 分割卸載」(UDP Segmentation Offload,USO)機制,讓硬體網路介面卡能夠大量處理 UDP 網路封包,而無須損耗 Windows Server 2022 的 CPU 運算資源,讓 Windows Server 2022 能有更多運算資源承載營運服務。

在 TCP 通訊協定部份,Windows Server 2022 預設網路堆疊,便會使用新式的 TCP HyStart++機制,以便減少連線啟動期間封包遺失的情況,進而降低「重新傳輸超時」(Retransmit TimeOuts,RTO),這對於高速網路日漸普及的資料中心來說,能夠提供更好更穩定的網路資料流和更多的網路頻寬。
在微軟和 Dropbox 的合作中,針對 WAN 傳輸效能的測試結果顯示,新的 TCP 通訊協定網路吞吐量提升了「10 倍」以上。

此外,微軟也針對最新 Windows Server 2022,和過去的 Windows Server 版本進行比較。如圖 12 所示,可以看到在「128 MB」和「200 ms RTT」的網路環境中,採用新式網路堆疊機制的 Windows Server 2022,在網路吞吐量方面增加超過「40 倍」以上,在其它網路情境測試中也至少提升「5 倍」的網路吞吐量。

圖 12、採用新網路堆疊機制的 Windows Server 2022 網路吞吐量大幅增加



獨立伺服器啟用 SBC 快取機制

在舊版的 Windows Server 運作環境中,「獨立伺服器」(Standalone Server)並無法使用 Storage Spaces Direct 相關技術,必須整合多台 Windows Server 並建構容錯移轉叢集後才能使用。

現在,最新的 Windows Server 2022 版本中,單台的獨立伺服器只要硬體配置時,採用混合式的儲存媒體裝置,例如,SSD + HDD 或 NVMe + HDD 的情況下,便能啟用「儲存匯流排快取」(Storage Bus Cache,SBC)機制,讓獨立伺服器能夠大幅提升資料的讀取和寫入效能(如圖 13 所示)。
獨立伺服器啟用 SBC 機制,支援混合式儲存架構不支援 All-Flash 儲存架構。
圖 13、獨立伺服器支援 SBC 儲存匯流排快取機制運作架構示意圖

值得注意的是,雖然是獨立伺服器運作環境,但是要啟用 SBC 特色功能之前,除了配置混合式儲存媒體裝置之外,也必須為 Windows Server 2022 安裝容錯移轉叢集功能才行,但是不能加入任何一個容錯移轉叢集,也就是不能成為任何一個容錯移轉叢集的成員節點。當然,採用舊有的 Windows Server 2019 和 2016 版本,也無法支援獨立伺服器啟用 SBC 特色功能。





實戰演練 - SMB Compress

在過去的 Windows Desktop 和 Windows Server 版本中,主機之間最常進行檔案交換的方式便是採用 SMB 通訊協定。然而,當主機所處的網路環境中,倘若傳輸頻寬不足導致傳輸速度較慢,例如,1 Gbps 乙太網路或 Wi-Fi 無線網路……等,或者因為主機數量過多造成網路頻寬擁擠的情況時,往往就會大大影響整體檔案交換的傳輸時間。

現在,最新版本的 Windows 11 和 Windows Server 2022,已經內建支援最新的「SMB 壓縮」(SMB Compress)機制。簡單來說,當 SMB 用戶端和 SMB 伺服器端皆啟用 SMB 壓縮機制後,在檔案交換的傳輸過程中,將會使用更少的網路頻寬且更快傳輸完畢,唯一的缺點就是在傳輸過程中,主機的 CPU 使用率會稍微增加。
SMB 壓縮機制支援多種壓縮演算法,包含,XPRESS(LZ77)、XPRESS Huffman(LZ77 + Huffman)、LZNT1 或 PATTERN_V1 *,預設情況下將會採用 XPRESS 壓縮演算法。

同時,新式的 SMB 壓縮機制,也已經和其它 SMB 傳輸機制整合完成,例如,支援 SMB 簽署(SMB Signing)、SMB 加密(SMB Encyrption)、SMB over QUIC、SMB 多重通道(SMB MultiChannel)。值得注意的是,目前 SMB 壓縮機制尚未與 SMB Direct over RDMA 機制整合完成,但是微軟官方已經預告,將會在後續的更新版本中,將 SMB 壓縮機制與 SMB Direct over RDMA 進行整合。



啟用 SMB 壓縮機制

首先,在擔任 SMB 伺服器端的 Windows Server 2022 主機上,安裝「檔案伺服器」(File Server)伺服器角色後,在組態設定檔案共享機制時,管理人員可以透過 WAC(Windows Admin Center)或 PowerShell 指令,針對指定的檔案共享啟用 SMB 壓縮機制。

當管理人員登入 WAC 平台並連線 SMB 伺服器端主機後,依序點選「Files & file sharing > File shares > New share」,在彈出的 New file share 視窗中,依據需求組態設定 SMB 檔案共享機制,在 Folder location 欄位,選擇 SMB 伺服器端主機準備分享的資料夾,在 Share name 欄位填入網路分享的名稱,在 Share permissions 欄位組態設定,哪些使用者和群組具備存取此 SMB 檔案共享的權限,最重要的是請勾選「Compress data」項目(如圖 14 所示),再按下 Create 鈕建立 SMB 檔案共享,確保此 SMB 檔案共享啟用並支援 SMB 壓縮機制。
請注意,原有的「伺服器管理員」(Server Manager)管理工具,並未支援組態設定 SMB 檔案共享啟用 SMB 壓縮機制。
圖 14、建立 SMB 檔案共享並啟用 SMB 壓縮機制

當 SMB 檔案共享建立完成後,管理人員也可以透過 WAC 管理平台,輕鬆在 SMB 伺服器主機端查看,哪些 SMB 檔案共享資料夾已經啟用並支援 SMB 壓縮機制(如圖 15 所示)。

圖 15、透過 WAC 管理平台判斷,哪些 SMB 檔案共享資料夾已經啟用並支援 SMB 壓縮機制

習慣使用 PowerShell 指令進行管理任務的資訊人員,可以透過「New-SmbShare」指令,在建立新的 SMB 檔案共享時,加上「-CompressData $true」參數(如圖 16 所示),即可達成建立 SMB 檔案共享資料夾,並且啟用和支援 SMB 壓縮機制。

圖 16、建立 SMB 檔案共享資料夾並啟用和支援 SMB 壓縮機制

倘若,在建立 SMB 檔案共享資料夾時,未啟用 SMB 壓縮機制的話,後續也可以透過「Set-SmbShare」指令搭配「-CompressData $true」參數,針對指定的 SMB 檔案共享啟用 SMB 壓縮機制(如圖 17 所示)。

圖 17、針對已建立的 SMB 檔案共享資料夾啟用 SMB 壓縮機制



手動測試 SMB 壓縮機制

在正式使用支援 SMB 壓縮機制的 SMB 檔案共享資源之前,管理人員可以先透過 Robocopy 或 Xcopy 工具,驗證目標端的 SMB 檔案共享資源,是否真的支援 SMB 壓縮機制。同時,在驗證過程中也可以觀察,SMB 用戶端未支援和支援 SMB 壓縮機制時,對於網路頻寬使用率、CPU 工作負載、檔案傳輸時間上的差異和變化。

由於 SMB 壓縮機制具備空白區塊自動壓縮的特性,所以管理人員可以透過此特性建立簡單的測試環境。首先,在 SMB 用戶端透過磁碟管理員(本文實作採用最新 Windows 11),建立 VHDX 虛擬磁碟檔案,並勾選採用「固定大小」(Fixed size)選項,在本文實作環境中建立 10 GB大小的 VHDX 虛擬磁碟檔案(如圖 18 所示),建立完成並掛載成功後將一些圖片檔案複製到其中,此次複製了 200 個圖片檔案並佔用約 700 MB 的儲存空間。

圖 18、建立 10GB 檔案大小的 VHDX 虛擬磁碟檔案

在開始執行檔案傳輸之前,請先確保 SMB 用戶端已經將剛才掛載的 C:\tmp\test.vhdx 虛擬磁碟檔案卸載,接著透過「ROBOCOPY」指令,指定檔案傳輸的來源端資料夾「C:\tmp」,以及 SMB 伺服器端的 SMB 檔案共享路徑「\\ws2022-smb.lab.weithenn.org\smb-share」。

在檔案傳輸過程中,管理人員可以透過工作管理員,觀察網路頻寬的使用量和 CPU 工作負載,以便稍後和使用 SMB 壓縮機制時進行比較。在本文實作環境中,可以看到 SMB 用戶端未使用 SMB 壓縮機制時,傳輸 10GB 虛擬磁碟檔案所花費的時間為「1 分 17 秒」(如圖 19 所示)。

圖 19、SMB 用戶端未使用 SMB 壓縮機制進行檔案傳輸花費 1 分 17 秒

刪除 SMB 伺服器端檔案共享路徑內的 test.vhdx 測試檔案後,再次於 SMB 用戶端使用 robocopy 指令執行檔案傳輸作業。但是,這次加上「/COMPRESS」參數,確保在檔案傳輸的過程中,SMB 用戶端也啟用 SMB 壓縮機制和 SMB 伺服器端溝通。

在本文實作環境中,可以看到 SMB 用戶端啟用 SMB 壓縮機制後,傳輸 10GB 虛擬磁碟檔案所花費的時間減少為「46 秒」(如圖 20 所示),並且在傳輸檔案的過程中使用的網路頻寬較少,在 CPU 工作負載方面,則是由原先的未啟用 SMB 壓縮機制的「8% - 13%」,些許升高為「15% - 20%」。

圖 20、SMB 用戶端使用 SMB 壓縮機制進行檔案傳輸僅花費 46 秒



掛載網路磁碟機測試 SMB 壓縮機制

採用 Robocopy 或 Xcopy 檔案複製工具,對於 IT 管理人員來說並沒有任何問題和困擾,但是對於一般使用者來說,除了不熟悉指令和參數之外,在操作上也沒有那麼直覺易用。因此,在手動測試並確認 SMB 壓縮機制正常運作後,接著測試使用者經常使用檔案傳輸的情境,便是將 SMB 檔案共享資源掛載為網路磁碟機,接著透過檔案總管進行檔案傳輸的動作。

首先,在 SMB 用戶端掛載 SMB 檔案共享資源時,使用「NET USE」指令時,可以先採用傳統的掛載方式,完成後測試檔案傳輸機制使用的網路頻寬、傳輸時間、CPU 工作負載,接著卸載該 SMB 檔案共享資源後,再次使用「NET USE」指令並搭配「/REQUESTCOMPRESSION:YES」參數(如圖 21 所示),確保掛載的 SMB 檔案共享資源有啟用 SMB 壓縮機制,並再次測試檔案傳輸,應該可以得到跟剛才 Robocopy 一樣的測試結果,也就是使用網路頻寬少、傳輸時間降低、CPU 工作負載略微升高的結果。

圖 21、掛載 SMB 檔案共享資源並啟用 SMB 壓縮機制



SMB 用戶端一律啟用 SMB 壓縮機制

透過上述的二項測試,相信管理人員已經體會到在執行檔案傳輸時,只要 SMB 伺服器端和 SMB 用戶端,同時支援並啟用 SMB 壓縮機制後,將能有效降低網路頻寬的使用率並降低檔案傳輸時間。然而,SMB 用戶端無論是在指令或是掛載 SMB 檔案共享資源時,必須確保啟用 SMB 壓縮機制,才能享受到 SMB 壓縮機制所帶來的優點,是否有方法能夠讓 SMB 用戶端一律啟用 SMB 壓縮機制,而無須再使用前加上參數? 答案是有的。

管理人員可以透過 GPO 群組原則,為每台支援 SMB 壓縮機制的 SMB 用戶端中,於「Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Sereivces\LanmanWorkstation\Parameters」路徑下,新增一筆 REG_DWORD機碼值,名稱為「EnableCompressedTraffic」並設定數值為「1」(如圖 22 所示),即可組態設定 SMB 用戶端一律啟用 SMB 壓縮機制。同時,新增這筆 REG_DWORD 機碼值後,SMB 用戶端無須重新啟動即可立即套用生效。

圖 22、組態設定 SMB 用戶端一律啟用 SMB 壓縮機制





結語

透過本文的深入剖析後,相信管理人員已經了解,微軟最新推出的 Windows Server 2022 雲端作業系統,增強哪些原有功能和推出哪些亮眼新功能,並且實戰演練內建於 Windows Server 2022 和 Windows 11 的 SMB 壓縮機制,有效幫助企業和組織減少網路頻寬使用率降低檔案傳輸時間,為企業和組織減少不必要的時間成本浪費。

AlmaLinux 8.x 攻略 - 基礎設定系列文章

$
0
0


前言

簡單來說,最近又要開始玩 AlmaLinux所以基礎設定系列文章就出現了。至於為何採用 AlmaLinux 而非過去熟悉的 CentOS 呢? 有在注意 IT 新聞的朋友應該早就知道了,沒空看到這個新聞的朋友,可以參考加下連結追上進度:




RHEL 8 特色功能簡介

目前,新版本的 RHEL 8與舊版 RHEL 7 有很大的不同,舉例來說,套件庫主要有二個「BaseOS 和 AppStream」、預設檔案系統採用「XFS」、套件管理工具由過去的 YUM 升級為「dnf」、時間校時工具僅採用「Chrony」、網路組態僅採用「NetworkManager」、防火牆 Firewalld 底層由 iptables 改為「nftables」……等,詳細資訊請參考 Considerations in adopting RHEL 8 Red Hat Enterprise Linux 8 | Red Hat Customer Portal :
  • Kernel 版本: 4.18+
  • System Compiler: GCC 8.2, LLVM 6.0
  • Hardware Architectures: Intel / AMD 64-bit, IBM Power LE, IBM z Systems, ARM 64-bit
  • File System: XFS
  • Package Management: dnf (YUM v4)
  • Time Synchronization: Chrony
  • Networking: NetworkManager

圖、RHEL 7 / 8 Repositories 差異示意圖

圖、新版 dnf 套件管理工具示意圖





RHEL 8 Overview 線上免費課程

在前年 Red Hat Summit 2020 中,推出許多線上免費課程,其中包含 Red Hat Enterprise Linux Technical Overview (RH024) 的線上免費課程,註冊後可以享有 30 天免費課程的機會,方便有興趣的朋友快速了解。下列是這個 RH024 免費課程的大綱:
  • What are Linux, open source software, and a distribution?
  • Introduction to the shell
  • Kernel and user spaces
  • Orientation to the graphical user interface
  • File management in Linux
  • The file system hierarchy
  • Editing files using Vim
  • Organizing users and groups
  • File permissions
  • Managing software
  • Configuring networking
  • Controlling system startup processes
  • Introduction to containers
  • Overview of cockpit
  • Learning more about Red Hat Enterprise Linux 8







AlmaLinux 8 基礎設定

下列便是 AlmaLinux 8.x 攻略的基礎設定系列文章:
  • AlmaLinux 8.x 基礎設定 (1) - 安裝 AlmaLinux 8
  • AlmaLinux 8.x 基礎設定 (2) - NetworkManager 組態設定網路功能
  • AlmaLinux 8.x 基礎設定 (3) - 安裝 Hyper-V 整合服務
  • AlmaLinux 8.x 基礎設定 () - Cockpit 圖形化介面管理工具
  • AlmaLinux 8.x 基礎設定 () - 組態設定 VIM 及 Bash Shell 操作環境
  • AlmaLinux 8.x 基礎設定 () - 設定 sudo 管理員帳號管理機制
  • AlmaLinux 8.x 基礎設定 () - 禁止 Root 帳號本機及 SSH 遠端登入
  • AlmaLinux 8.x 基礎設定 () - SELinux 安全性增強機制
  • AlmaLinux 8.x 基礎設定 () - DNF 套件管理工具
  • AlmaLinux 8.x 基礎設定 () - 擴充 DNF 套件數量
  • AlmaLinux8.x 基礎設定 () - 簡述 Systemd 啟動模式等級
  • AlmaLinux 8.x 基礎設定 () - 調整 Firewalld 防火牆規則
  • AlmaLinux 8.x 基礎設定 () - 定期寄送 CentOS 主機系統資訊 Log
  • AlmaLinux 8.x 基礎設定 () - 關閉不必要的系統服務
  • AlmaLinux 8.x 基礎設定 () - 採用 I/O Scheduler Noop 加速 Disk I/O
  • AlmaLinux 8.x 基礎設定 () - 完成 CentOS Base VM 的製作
  • AlmaLinux 8.x 基礎設定 () - 範本 CentOS 重新產生 Product_UUID

AlmaLinux 8.x 基礎設定 (1) - 安裝 AlmaLinux 8

$
0
0


前言

最近要開始玩 AlmaLinux 所以基礎設定系列文章就出現了。本文實作中,採用最新版本AlmaLinux 8.5最小化安裝版本 (Minimal Install),開始玩吧。 💪





建立 VM 虛擬主機

首先,本文實作環境採用 Windows Server 2022 Hyper-V 虛擬化平台,建立 VM 虛擬主機並安裝最新版本的 AlmaLinux 8.5。下列為這台 VM 虛擬主機的虛擬硬體配置:





安裝 AlmaLinux 8.5 (Minimal Install)

安裝流程和步驟相信大家應該都很熟悉,以下只提幾項個人喜好的組態設定部分,例如,Mount Point 的切割方式,建議 /var 掛載點的使用空間不要給太少,以免後續維護時發生問題。原因在於 /var 掛載點為預設所有記錄檔存放處、dnf 套件管理暫存取、Docker 容器映像檔預設路徑……等。所以,/var 掛載點空間太小很可能導致各種非預期的錯誤發生,當然若是測試用途的話採用系統預設的自動分割即可。
  • Language: English
  • Date & Time: Asia / Taipei
  • Keyboard: English (US)
  • Installation Source: Local media
  • Software Selection: Minimal Install


可以看到,AlmaLinux 8.5 採用 Minimal Install 時只需要安裝 363個套件。


安裝完畢並重新啟動後,可以透過「uname -a」和「cat /etc/almalinux-release」指令,查看採用的 Kernel 版本和 AlmaLinux 版本。


本文的 AlmaLinux 為測試用途,所以採用系統的自動分割即可而非額外把 /var 切出去。








AlmaLinux 8 基礎設定

下列便是 AlmaLinux 8.x 攻略的基礎設定系列文章:
  • AlmaLinux 8.x 基礎設定 - 簡介
  • (本文) AlmaLinux 8.x 基礎設定 (1) - 安裝 AlmaLinux 8
  • AlmaLinux 8.x 基礎設定 (2) - NetworkManager 組態設定網路功能
  • AlmaLinux 8.x 基礎設定 (3) - 安裝 Hyper-V 整合服務
  • AlmaLinux 8.x 基礎設定 () - Cockpit 圖形化介面管理工具
  • AlmaLinux 8.x 基礎設定 () - 組態設定 VIM 及 Bash Shell 操作環境
  • AlmaLinux 8.x 基礎設定 () - 設定 sudo 管理員帳號管理機制
  • AlmaLinux 8.x 基礎設定 () - 禁止 Root 帳號本機及 SSH 遠端登入
  • AlmaLinux 8.x 基礎設定 () - SELinux 安全性增強機制
  • AlmaLinux 8.x 基礎設定 () - DNF 套件管理工具
  • AlmaLinux 8.x 基礎設定 () - 擴充 DNF 套件數量
  • AlmaLinux 8.x 基礎設定 () - 簡述 Systemd 啟動模式等級
  • AlmaLinux 8.x 基礎設定 () - 調整 Firewalld 防火牆規則
  • AlmaLinux 8.x 基礎設定 () - 定期寄送 CentOS 主機系統資訊 Log
  • AlmaLinux 8.x 基礎設定 () - 關閉不必要的系統服務
  • AlmaLinux 8.x 基礎設定 () - 採用 I/O Scheduler Noop 加速 Disk I/O
  • AlmaLinux 8.x 基礎設定 () - 完成 CentOS Base VM 的製作
  • AlmaLinux 8.x 基礎設定 () - 範本 CentOS 重新產生 Product_UUID

AlmaLinux 8.x 基礎設定 (2) - NetworkManager 組態設定網路功能

$
0
0


前言

最近又要開始玩 AlmaLinux 所以基礎設定系列文章就出現了。本文實作中,採用 Windows Server 2022 Hyper-V 虛擬化平台,建立 VM 虛擬主機並安裝最新版本 AlmaLinux 8.5 的最小化安裝版本 (Minimal Install),開始玩吧。 💪





預設採用 NetworkManager 系統服務

在過去的 CentOS 7 / RHEL 7 版本中,可以採用舊有的 network系統服務或新式的 NetworkManager系統服務,來處理主機的網路連接和組態。從 AlmaLinux 8 (RHEL 8) 版本開始,預設便採用NetworkManager 系統服務,並且舊有的 network系統服務正式消失。




組態設定固定 IP 位址

很多人對於新式的 NetworkManager 組態設定網路很不習慣,其實可以透過簡單的「nmtui」(NetworkManager Text User Interface) 文字介面工具就可以達成了。首先,確認有哪些網路卡,在本文實作環境中只配置一張網路卡並且代號為「eth0」。


確認後,就可以執行「sudo nmtui」指令並看到 NetworkManager TUI 主畫面,選擇「Edit a connection」項目準備為指定的網路卡進行組態設定。


進入後會顯示此台主機所有的網路卡清單,選擇「eth0」後按下 Enter 即可。


在 Edit Connection 畫面中,選擇手動方式後鍵入固定 IP 位址、Gateway、DNS……等。
  • IPv4 CONFIGURATION: Manual
  • Addresses: 10.10.75.8/24
  • Gateway: 10.10.75.254
  • DNS servers: 10.10.75.254
  • Search domains: lab.weithenn.org
  • Automatically connect: 勾選此項目

回到 NetworkManager TUI 主畫面後,選擇「Activate a connection」項目,確認已經啟用「eth0」網路介面。


確認啟用並回到 NetworkManager TUI 主畫面後,選擇「Set system hostname」項目並填入主機名稱,本文實作為「alma85.lab.weithenn.org」。在組態設定主機名稱的部份,倘若剛才未執行「sudo nmtui」提升權限的話,這裡套用主機名稱時會失敗! 😆




檢查網路狀態

組態設定完成後,可以透過「nmcli device status」、「nmcli connection show」、「nmcli」等指令查看主機的網路介面狀態和資訊。


分別查看相關網路設定檔案「ifcfg-eth0」、「resolv.conf」、「hosts」。


當 AlmaLinux 主機網路組態設定完成後,可以使用「ping」指令來判斷主機是否能順利連上網際網路及進行名稱解析的動作,或者藉此判斷此台主機的網路通訊是卡在哪個環節上以便除錯。
  • 檢查 loopback: ping 127.0.0.1
  • 檢查網路介面: ping 10.10.75.8
  • 檢查 Gateway:  ping 10.10.75.254
  • 檢查 DNS Server: ping 168.95.1.1
  • 檢查 DNS 名稱解析: ping www.microsoft.com



檢查主機名稱

透過指令「hostnamectl」確認主機名稱是否套用。當然,剛才沒有透過 NetworkManager TUI 設定主機名稱的話,還是可以手動用「hostnamectl set-hostname "alma85.lab.weithenn.org" --static」指令設定主機名稱。




安裝常用指令套用

由於 ifconfig / netstat / nslookup等指令已經老舊,所以預設情況下都未安裝在 Minimal Install 安裝程序內。不過還是習慣使用這些指令,所以只要安裝「net-tools」、「bind-utils」套件即可。此外,Minimal Install 安裝程序內預設也沒有「bash-completion」套件,這樣也會造成指令無法自動補完的麻煩,就順手安裝一下。

安裝完成後,就可以開心使用老指令了。 😁






AlmaLinux 8 基礎設定

下列便是 AlmaLinux 8.x 攻略的基礎設定系列文章:
  • AlmaLinux 8.x 基礎設定 - 簡介
  • AlmaLinux 8.x 基礎設定 (1) - 安裝 AlmaLinux 8
  • (本文) AlmaLinux 8.x 基礎設定 (2) - NetworkManager 組態設定網路功能
  • AlmaLinux 8.x 基礎設定 (3) - 安裝 Hyper-V 整合服務
  • AlmaLinux 8.x 基礎設定 () - Cockpit 圖形化介面管理工具
  • AlmaLinux 8.x 基礎設定 () - 組態設定 VIM 及 Bash Shell 操作環境
  • AlmaLinux 8.x 基礎設定 () - 設定 sudo 管理員帳號管理機制
  • AlmaLinux 8.x 基礎設定 () - 禁止 Root 帳號本機及 SSH 遠端登入
  • AlmaLinux 8.x 基礎設定 () - SELinux 安全性增強機制
  • AlmaLinux 8.x 基礎設定 () - DNF 套件管理工具
  • AlmaLinux 8.x 基礎設定 () - 擴充 DNF 套件數量
  • AlmaLinux 8.x 基礎設定 () - 簡述 Systemd 啟動模式等級
  • AlmaLinux 8.x 基礎設定 () - 調整 Firewalld 防火牆規則
  • AlmaLinux 8.x 基礎設定 () - 定期寄送 CentOS 主機系統資訊 Log
  • AlmaLinux 8.x 基礎設定 () - 關閉不必要的系統服務
  • AlmaLinux 8.x 基礎設定 () - 採用 I/O Scheduler Noop 加速 Disk I/O
  • AlmaLinux 8.x 基礎設定 () - 完成 CentOS Base VM 的製作
  • AlmaLinux 8.x 基礎設定 () - 範本 CentOS 重新產生 Product_UUID

AlmaLinux 8.x 基礎設定 (3) - 安裝 Hyper-V 整合服務

$
0
0


前言

最近又要開始玩 AlmaLinux 所以基礎設定系列文章就出現了。本文實作中,採用 Windows Server 2022 Hyper-V 虛擬化平台,建立 VM 虛擬主機並安裝最新版本 AlmaLinux 8.5 的最小化安裝版本 (Minimal Install),開始玩吧。 💪



LIS (Linux Integration Services)

每一種虛擬化平台,都需要幫其上運作的 VM 虛擬主機安裝適當的驅動程式,以便 VM 虛擬主機能與虛擬化平台進行最緊密的結合,例如,虛擬裝置最佳化……等。舉例來說 VMware vSphere 虛擬化平台,需要幫 VM 虛擬主機安裝 VMware Tools,而 Citrix XenServer 虛擬化平台便需要幫 VM 虛擬主機安裝 Xen Tools

Microsoft Hyper-V 虛擬化平台中,則是需要幫其上運作的 VM 虛擬主機安裝「整合服務(Integration Services),當整合服務順利運作後,VM 虛擬主機內的作業系統便會安裝最佳化的驅動程式,例如,IDE、SCSI、網路、視訊、滑鼠……等裝置,與 Hyper-V 虛擬化平台整合的部份,則有 作業系統關閉(Shutdown)、時間同步化(Time Synchronization)、資料交換(Key/Value Exchange)、活動訊號(Heartbeat)、線上備份(Volume Shadow copy Service,VSS)…等機制,以期 VM 虛擬主機跟 Microsoft Hyper-V 虛擬化平台不管是在效能運作上,或者是驅動程式最佳化方面都能進行完美的結合。

值得注意的是,倘若是採用舊有的 CentOS 7 或更舊的版本,可以透過下載最後一版的 Linux Integration Services v4.3.5 for Hyper-V and Azure來安裝和更新 LIS 整合服務。至於 AlmaLinux 8 (RHEL 8)之後,除了在 Linux 核心中內建 Hyper-V 核心模組之外,其餘透過套件安裝的方式即可。




Hyper-V 核心模組

預設情況下,VM 虛擬主機中的 LIS - Guest services項目並不會勾選,請將 VM 虛擬主機關機後勾選該項目再繼續設定。


事實上,從舊版的 CentOS 5 / RHEL 5 版本開始,便開始在 Linux 核心中逐漸支援 Hyper-V 虛擬化平台。在目前 AlmaLinux 8 / RHEL 8 版本中,預設 Linux 核心中已經內建 Hyper-V 核心模組 (hv_vmbus / hv_netvsc / hv_storvsc),負責主要裝置和儲存及網路功能。

因此,透過「sudo lsinitrd | grep hv」指令,先確認 AlmaLinux 的 Initial Ramdisk (initrd) 中,是否已經包含 Hyper-V 核心模組,可以看到在本文實作環境中,Initial Ramdisk 內已經包含 hv_vmbus.ko、hv_netsvc.ko、hv_storvsc.ko


原則上,AlmaLinux 8 核心中已經包含 Hyper-V 核心模組。倘若,發生 Linux 核心並沒有包含 Hyper-V 模組時,必須要重建 Initial Ramdisk Image 才行,相關資訊請參考下列資源:


安裝 LIS 整合服務

雖然,AlmaLinux 核心中已經內建 Hyper-V 核心模組。但是,與 Hyper-V 虛擬化平台整合的 KVP (Key Value Pair)、VSS、FCOPY……等未安裝和啟動,並未達成驅動程式最佳化的狀態。

現在,已經可以直接透過 dnf 機制安裝「hyperv-daemons」套件達成。首先,請執行「dnf search hyperv」指令,確認搜尋到相關套用。


接著,執行「sudo dnf -y install hyperv-daemons」指令,即可將支援 KVP (Key Value Pair)、VSS、FCOPY 等機制的套件進行安裝。


重新啟動主機後,便能使用「systemctl list-units --type service | grep Hyper-V」指令,查詢到系統服務中已經執行並且開機自動啟動相關服務,當然你也可以查看每一個服務的運作狀態。



此外,在 Hyper-V Manager 管理介面中,原本尚未安裝前在 Network 頁籤,是看不到 VM 虛擬主機 IP 位址資訊的,重新啟動後便能順利在 IP Addresses 欄位看到 AlmaLinux 主機的 IP 位址,證明 VM 虛擬主機的整合服務與 Hyper-V 虛擬化平台已經完全溝通無誤了。 😎






AlmaLinux 8 基礎設定

下列便是 AlmaLinux 8.x 攻略的基礎設定系列文章:
  • AlmaLinux 8.x 基礎設定 - 簡介
  • AlmaLinux 8.x 基礎設定 (1) - 安裝 AlmaLinux 8
  • AlmaLinux 8.x 基礎設定 (2) - NetworkManager 組態設定網路功能
  • (本文) AlmaLinux 8.x 基礎設定 (3) - 安裝 Hyper-V 整合服務
  • AlmaLinux 8.x 基礎設定 () - Cockpit 圖形化介面管理工具
  • AlmaLinux 8.x 基礎設定 () - 組態設定 VIM 及 Bash Shell 操作環境
  • AlmaLinux 8.x 基礎設定 () - 設定 sudo 管理員帳號管理機制
  • AlmaLinux 8.x 基礎設定 () - 禁止 Root 帳號本機及 SSH 遠端登入
  • AlmaLinux 8.x 基礎設定 () - SELinux 安全性增強機制
  • AlmaLinux 8.x 基礎設定 () - DNF 套件管理工具
  • AlmaLinux 8.x 基礎設定 () - 擴充 DNF 套件數量
  • AlmaLinux 8.x 基礎設定 () - 簡述 Systemd 啟動模式等級
  • AlmaLinux 8.x 基礎設定 () - 調整 Firewalld 防火牆規則
  • AlmaLinux 8.x 基礎設定 () - 定期寄送 CentOS 主機系統資訊 Log
  • AlmaLinux 8.x 基礎設定 () - 關閉不必要的系統服務
  • AlmaLinux 8.x 基礎設定 () - 採用 I/O Scheduler Noop 加速 Disk I/O
  • AlmaLinux 8.x 基礎設定 () - 完成 CentOS Base VM 的製作
  • AlmaLinux 8.x 基礎設定 () - 範本 CentOS 重新產生 Product_UUID

AlmaLinux 8.x 基礎設定 (4) - Cockpit 圖形化介面管理工具

$
0
0


前言

最近又要開始玩 AlmaLinux 所以基礎設定系列文章就出現了。本文實作中,採用 Windows Server 2022 Hyper-V 虛擬化平台,建立 VM 虛擬主機並安裝最新版本 AlmaLinux 8.5 的最小化安裝版本 (Minimal Install),開始玩吧。 💪




安裝並啟動 Cockpit 服務

在 AlmaLinux 8.5 的最小化安裝版本 (Minimal Install) 環境中,預設並不會安裝 Cockpit 套件。請執行「sudo dnf -y install cockpit」指令,即可安裝 Cockpit 和相關套件。


安裝完成後,依序執行「sudo systemctl enable cockpit.socket」指令,確保主機重新啟動後能夠自動啟動 Cockpit 服務,執行「sudo systemctl start cockpit」、「sudo systemctl status cockpit」指令,啟動並檢查 Cockpit 服務運作狀態。


啟動 Cockpit 服務後,透過「netstat -tunpl」指令,檢查 Cockpit 服務帶起來的「Port 9090」是否為 LISTEN狀態,否則稍後將無法順利連接到 Cockpit 登入畫面。


預設情況下,firewalld 防火牆規則中已經允許 cockpit 服務,請執行「sudo firewall-cmd --list-all」指令進行確認。倘若,未開放允許規則的話,執行「sudo firwall-cmd --add-service=cockpit --permanent」、「sudo firewall-cmd --reload」指令即可。


確認 Cockpit 服務啟動成功、Listen Port 9090、允許 Cockpit 服務通過防火牆後,就可以開啟瀏覽器連接至 AlmaLinux 主機,本文實作為「alma85.lab.weithenn.org」,即可看到 Cockpit 登入畫面。






Cockpit 操作和管理

Cockpit 基礎操作

登入後,首先在預設的 System > Overview 頁面中,並且可以看到系統提示「Web console is running in limited access mode」目前在受限制的模式中運作 Cockpit 管理介面。倘若,目前登入的使用者帳號具備管理權限的話,可以按下「Turn on administrative access」鈕,從「Limited access」受限模式轉換為「Administrative access」管理者模式,避免稍後有些操作因為需要管理權限而失敗。本文操作環境,已經設定好 weithenn 使用者帳號有 sudo 機制取得管理權限,所以可以直接 Turn On。





調整管理介面語系

預設情況下,登入 Cockpit 管理介面的語系,會採用跟你瀏覽器相同的語系。當然,你也可以依據個人需求調整管理介面語系。


值得注意的是,調整管理介面語系後並不會立即生效,建議重新登出再登入 Cockpit 管理介面即可。





關機 / 重新啟動

在 Cockpit 管理介面中,可以很簡單的針對 AlmaLinux 主機進行「重新啟動」(Reboot)「關機」(Shutdown)的動作。




客製登入介面歡迎訊息

預設情況下,在 Cockpit 登入介面並沒有任何提示訊息,管理人員可以依據需求自行客製化登入介面歡迎訊息。只要在「/etc/cockpit/cockpit.conf」組態設定檔中,加上「Banner=/etc/cockpit/issue.cockpit」指定歡迎訊息檔案路徑後,重新啟動 Cockpit 服務即可。在本文實作環境中,加入「This is an example banner for the Cockpit login page of the AlmaLinux.」客製訊息內容。





設定閒置時間到達自動登出

預設情況下,Cockpit 管理介面並未設定「閒置逾時」(Idle Timeout)機制,當管理人員需要時只要在「/etc/cockpit/cockpit.conf」組態設定檔中,加上「IdleTimeout=<分鐘>」內容後,重新啟動 Cockpit 服務即可。在本文實作中為「IdleTimeout=5」,表示閒置時間達到 5 分鐘時將會自動登出。


當閒置登出設定套用生效後,在 Cockpit 管理介面閒置時間達到門檻時,在最後 30 秒將會在 Cockpit 管理介面中出現倒數計時,倘若未即時按下「Continue session」鈕 (重新計時),便會自動登出。





更新套件

透過 Cockpit 管理介面,可以很容易安裝套件更新,甚至是自動挑選「Security Updates」套件進行更新。只要在 Cockpit 管理介面中,切換到 Software Updates 項目,然後按下「Install security updates」或「Install all updates」鈕即可。本文實作為,按下 Install security updates鈕僅安裝最新安全性更新的相關套件。



安裝完成後,可以查看套件安裝順序和哪些套件更新後,需要重新啟動服務或主機才能套用生效。確認後按下相關動作鈕即可。本文實作為按下 Reboot system鈕,然後填入要傳送給連線到主機上的使用者訊息後,按下 Reboot 鈕即可。





安裝 Cockpit 擴充模組

預設情況下,安裝 Cockpit 管理套件時,只會安裝必要的相關套件。


事實上,還有許多 Cockpit 擴充模組預設並未安裝,舉例來說,點選「Overview > Performance Metrics」時,就會發現介面下方有提示,因為沒有安裝「cockpit-pcp」套件,所以無法把效能歷史圖畫出來。


當然,透過 Cockpit 管理介面,可以很輕鬆的安裝 cockpit-pcp 套件,安裝後系統會提示必須登出再登入 Cockpit 管理介面才能套用生效。登出後,順便在 SSH Client 端再次檢查套件,確認 cockpit-pcp 套件安裝成功。




再次登入 Cockpit 管理介面後,在效能指標管理介面中開啟收集效能指標後,稍待等待一段時間,就可以看到歷史數據的效能指標了。



那麼,除了預設的 Cockpit 必須套件之外,還有哪些擴充模組可以安裝? 請參考下列套件名稱和說明:
  • cockpit-composer: 建構 Composer 客製化系統映像時使用。
  • cockpit-machines: 管理 libvirt 虛擬主機。
  • cockpit-pcp: 收集和呈現歷史效能指標。
  • cockpit-podman: 管理 podman 容器。
  • cockpit-session-recording: 記錄和管理使用者 session。





AlmaLinux 8 基礎設定

下列便是 AlmaLinux 8.x 攻略的基礎設定系列文章:
  • AlmaLinux 8.x 基礎設定 - 簡介
  • AlmaLinux 8.x 基礎設定 (1) - 安裝 AlmaLinux 8
  • AlmaLinux 8.x 基礎設定 (2) - NetworkManager 組態設定網路功能
  • AlmaLinux 8.x 基礎設定 (3) - 安裝 Hyper-V 整合服務
  • (本文) AlmaLinux 8.x 基礎設定 (4) - Cockpit 圖形化介面管理工具
  • AlmaLinux 8.x 基礎設定 () - 組態設定 VIM 及 Bash Shell 操作環境
  • AlmaLinux 8.x 基礎設定 () - 設定 sudo 管理員帳號管理機制
  • AlmaLinux 8.x 基礎設定 () - 禁止 Root 帳號本機及 SSH 遠端登入
  • AlmaLinux 8.x 基礎設定 () - SELinux 安全性增強機制
  • AlmaLinux 8.x 基礎設定 () - DNF 套件管理工具
  • AlmaLinux 8.x 基礎設定 () - 擴充 DNF 套件數量
  • AlmaLinux8.x 基礎設定 () - 簡述 Systemd 啟動模式等級
  • AlmaLinux 8.x 基礎設定 () - 調整 Firewalld 防火牆規則
  • AlmaLinux 8.x 基礎設定 () - 定期寄送 CentOS 主機系統資訊 Log
  • AlmaLinux 8.x 基礎設定 () - 關閉不必要的系統服務
  • AlmaLinux 8.x 基礎設定 () - 採用 I/O Scheduler Noop 加速 Disk I/O
  • AlmaLinux 8.x 基礎設定 () - 完成 CentOS Base VM 的製作
  • AlmaLinux 8.x 基礎設定 () - 範本 CentOS 重新產生 Product_UUID

網管人 194 期 - 全功能 Tanzu 社群版開箱演練 K8s 叢集部署管理

$
0
0


網管人雜誌

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





本文目錄






前言

先前在 VMworld 2019 大會上,VMware 正式推出 「太平洋專案」(Project Pacific),也就是在 vSphere 虛擬化平台核心中,直接內建並整合 Kubernetes 容器調度平台,讓 vSphere 虛擬化平台能夠原生支援和運作容器。同時,網羅二位 K8s 專案共同創辦人 Craig McLuckie 和 Joe Beda 加入團隊,讓 vSphere 核心不僅僅只是 VM 虛擬主機平台,也同時是 K8s 容器調度平台。

在最近舉辦的 VMworld 2021 大會上,更發佈許多不同的專案計劃(如圖 1 所示),例如,「Project Cascade」 著重於為 IaaS 和 CaaS 提供統一的 Kubernetes 介面,「Project Capitola」 著重於軟體定義記憶體,將 DRAM/PMEM/NVMe 等各種不同類型的儲存裝置,整合後不僅擴大記憶體資源更能有效應用,「Project Ensemble」 著重於多雲環境的管理並整合 vRealize 達到自動化的目的,讓管理人員輕鬆和管理分析所有雲端環境資料和工作流,「Project Santa Cruz」 著重於將邊緣運算和 SD-WAN 整合後,提供網路團隊和雲端基礎架構團隊,一個集中管理和分析邊緣運算的平台,「Project Radium」著重於打造共用類型的 GPU 圖形運算資源,支援 AMD、Graphcore、Intel、NVIDIA 等供應商,為企業和組織打造更便利的 AI/ML 工作負載環境。
更多的專案計劃項目和內容,請參考 VMworld 2021 大會網站。
圖 1、VMware Cloud with Tanzu 服務運作架構示意圖





TCE 運作架構

雖然,VMware TCE(Tanzu Community Edition)是個開放源始碼計畫並由社群提供技術支援,但是它其實是個功能完整的 VMware Tanzu 發行版本。簡單來說,在 TCE 的運作架構中,透過「Cluster API」運作機制,達到在 K8s 叢集架構中部署和管理容器及服務的目的。

TCE 運作架構可以分成三大部份,分別是「Tanzu CLI、K8s 叢集、套件管理機制」。首先,在 TCE 運作架構中,當安裝作業完成後,便已經內嵌 Tanzu CLI 指令工具,它是一個獨立靜態的 Binary 格式檔案(如圖 2 所示),所以支援「隨插即用架構」(Pluggable Architecture),讓指令集能夠非常方便的進行獨立增加、刪除、更新……等,後續管理人員將會透過 Tanzu CLI 指令,進行所有 K8s 叢集和應用程式的管理及部署等工作任務。

圖 2、Tanzu CLI 指令工具架構示意圖

TCE 支援二種不同類型的 K8s 叢集,分別是「獨立叢集」(Standalone Cluster)「託管叢集」(Managed Cluster)。簡單來說,剛接觸 TCE 的管理人員,以及想要快速建立測試、研發、展示環境時,就適合建立 TCE 獨立叢集。倘若,企業和組織已經建立 K8s 叢集環境時,或是管理人員希望建立多個不同用途及功能的 K8s 叢集時,就適合採用 TCE 託管叢集運作架構,協助管理人員輕鬆管理 K8s 多叢集運作環境(如圖 3 所示)。

圖 3、TCE 獨立叢集和託管叢集示意圖

此外,對於管理人員來說,在建構和管理 K8s 叢集時,最困擾的部份便是相關需求和解決方案該採用哪個套件。在 TCE 運作架構中,已經為管理人員準備好,在管理和維運 K8s 叢集時會需要的相關解決方案,例如,處理容器虛擬網路的 Antrea 和 Calico、存放容器印象檔的 Harbor、運作 Serverless 架構的 Knative、資料數據圖形化的 Grafana……等(如圖 4 所示)。

圖 4、TCE 運作架構中預設支援的各項解決方案套件示意圖

舉例來說,在 K8s 叢集運作架構中,最基礎的部份便是容器虛擬網路的部份,透過「容器網路介面」(Container Network Interface,CNI)和 CNCF 中各項解決方案進行溝通和介接,在 TCE 運作架構中支援「Multus、Antrea、Calico」三種容器虛擬網路解決方案(如圖 5 所示),預設情況下 TCE 將會採用 Antrea 為容器虛擬網路解決方案。

圖 5、TCE 運作架構中容器虛擬網路解決方案架構示意圖

當企業和組織的管理人員在管理 K8s 叢集時,有時可能因為專案的工作任務不同,或是多組管理人員使用同一個 K8s 叢集,或是管理人員之間的管理風格不同時,都有可能造成 K8s 叢集的組態設定不一致,進而產生許多非預期的錯誤或浪費管理人員無謂的故障排除時間。

在 TCE 運作架構中,提供「Sonobuoy」的 K8s 叢集一致性的套件(如圖 6 所示)。簡單來說,透過 Sonobuoy 組態一致性檢查機制,可以幫助管理人員針對 K8s 叢集進行「端點到端點」(End-to-End),各種組態設定一致性的檢查和測試作業,幫助管理人員快速檢查和探索 K8s 叢集是否有組態不一致的情況。

圖 6、提供 K8s 叢集組態一致性檢查的 Sonobuoy 套件運作架構示意圖

對於企業和組織來說,保護企業機敏資訊甚至比營運服務來的更為重要。因此,在 TCE 運作架構中,針對容器印象檔解決方案的 Harbor 套件(如圖 7 所示),除了存放企業和組織客製化的容器印象檔和公開的容器印象檔之外,並搭配開放源始碼計畫中知名的「Trivy 和 Clair」 專案,為企業和組織提供容器印象檔的「漏洞掃描」(Vulnerability Scanning)功能,避免企業和組織部署已經被埋入後門或有已知漏洞的容器,有效保護企業機敏資訊。

圖 7、容器印象檔解決方案 Harbor 套件示意圖

最後,則是在 K8s 叢集架構中,最常使用的 Grafana 可視化圖形套件,負責監控和告警的 Prometheus 套件,以及轉送日誌檔案的 Fluentbit 套件(如圖 8 所示),讓管理人員可以輕鬆透過 Grafana 可視化圖形,了解 K8s 叢集和應用程式的工作負載和健康情況,在發生問題時由負責監控和告警的 Prometheus 套件送出通知,並且透過轉送的系統日誌進行故障排除作業。

圖 8、維運管理常用的 Grafana/Prometheus/Fluentbit 套件示意圖





實戰 – TCE on vSphere

在本文實戰演練章節中,將帶領管理人員一步一步在 VMware vSphere 虛擬化環境中,從部署最基本的 TCE「獨立叢集」(Standalone Cluster)開始(如圖 9 所示),後續當管理人員熟悉 TCE 運作架構後,也可以自行部署更進階的「託管叢集」(Managed Cluster)。

圖 9、TCE 獨立叢集部署流程示意圖



部署 TCE 獨立叢集的前置作業

首先,請確保稍後要部署 TCE 獨立叢集的 vSphere 虛擬化環境,至少為「vSphere 6.7 U3 或 vSphere 7」 版本的運作環境。接著,請管理人員登入 VMware Customer Connect網站,下載已經打包好運作環境的 OVA 檔案,管理人員可以依據運作環境需求選擇適合的 OVA 版本,目前支援部署 Photon OS 和 Ubuntu 2004 系統,本文實作環境採用最新發佈 TCE 0.9.0版本中搭配「Photon v3 Kubernetes v1.21.2」的 OVA 版本。

完成 OVA 檔案下載完成後,在 vCenter 管理介面中依序點選「Datacenter > Deploy OVF Template」,在彈出的 Deploy OVF Template 視窗中,請在 Select an OVF template 頁面中選擇「Local file」 選項,然後按下「UPLOAD FILES」 鈕並選擇剛才下載的 OVA 檔案。

在 Select a name and folder 頁面中,請鍵入部署的 VM 虛擬主機名稱,本文實作採用預設的「photon3-kube-v1.21.2」 名稱,並部署在 Datacenter 中的「TCE」 資料夾內。在 Select a compute resource 頁面中,選擇欲部署的 vSphere Cluster,本文實作選擇專用於 TCE 工作負載的「K8s-Cluster」,在 Review details 頁面中,確認部署資訊無誤後按下 Next 鈕繼續部署程序。

在 License agreements 頁面中,勾選「I accept all license agreements」 選項後續繼部署程序,在 Select Storage 頁面中,選擇採用的 Datastore 儲存資源,在 Select networks 頁面中,選擇所要連接的 vNetwork 虛擬網路,在 Ready to complete 頁面中,再次確認所有部署資訊,確認無誤後按下 Finish 鈕,便開始進行部署作業。

此時,從 vCenter 管理介面下方 Recent Tasks 工作列中,可以看到二項工作任務「Import OVF package」 和「Deploy OVF template」 正在執行中(如圖 10 所示)。

圖 10、部署 Photon v3 Kubernetes v1.21.2 運作環境的 VM 虛擬主機

部署工作任務完成後,請點選名稱為「photon3-kube-v1.21.2」 的虛擬主機,在右鍵選單中點選「Template > Convert to Template」,確認該台 VM 虛擬主機已經轉換為 VM 範本格式,並存放在 TCE 資料夾中(如圖 11 所示)。

圖 11、將 photon3-kube-v1.21.2 虛擬主機轉換為 VM 範本格式

在部署 TCE 獨立叢集之前,必須準備好 Tanzu CLI 環境,以便順利執行 TCE 獨立叢集的初始化部署流程。管理人員可以將 Tanzu CLI 指令工具安裝在 Linux / Mac / Windows 環境中,本文實作環境為 Windows 主機安裝 Tanzu CLI 指令工具。

在 Windows 運作環境中,必須完成「kubectl、Docker Desktop、WSL2」 運作環境後,才能順利安裝 Tanzu CLI 指令工具。管理人員可以在 Windows 主機中,透過 PowerShell 中的 Chocolatey 套件安裝管理工具,達到線上下載並安裝的目的,或是至 TCE GitHub 專案頁面手動下載後進行離線安裝。

在本文實作環境中,透過 Chocolatey 套件安裝管理工具,執行下列 PowerShell 指令,即可達成安裝 kubectl、Docker Desktop、Tanzu CLI 的目的(如圖 12 所示)。倘若,採用手動下載離線安裝的方式時,必須在安裝好 Tanzu CLI 指令工具後,記得手動將「C:\Program Files\tanzu」 路徑,加入至 Windows 主機環境變數當中。
choco install kubernetes-cli
choco install docker-desktop
choco install tanzu-community-edition --version=0.9.0

圖 12、透過 Chocolatey 工具安裝 kubectl、docker desktop、Tanzu CLI 指令工具

值得注意的是,在這個版本中有個小臭蟲,請在開始部署 TCE 獨立叢集之前,修改「%USERPROFILE%\.config\tanzu\tkg\config.yaml」檔案內容,加上「TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: true」內容後存檔離開,否則稍後嘗試執行 TCE 獨立叢集初始化部署流程時,將會遭遇到「x509 : certificate signed by unknown authority」的錯誤訊息(如圖 13 所示)。

圖 13、修改 config.yaml 內容以便順利執行 TCE 獨立叢集初始化部署流程



部署 TCE 獨立叢集

由於稍後部署 TCE 獨立叢集並與 vCenter 管理平台時,將會使用 SSH-2 RSA 4096-bit 的 SSH 加密金鑰進行溝通作業,所以請在安裝 Tanzu CLI 指令工具的主機上,產生這個 SSH 加密金鑰。請執行「ssh-keygen -t rsa -b 4096」 指令(如圖 14 所示),產生 SSH 加密金鑰對,預設情況下「id_rsa」 為 Private Key 而「id_rsa.pub」 為 Public Key,請複製 Public Key 內容,稍後便會使用到。

圖 14、產生 SSH 加密金鑰對以便稍後和 vCenter 管理平台溝通

接著,透過 ssh-agent 指令,將剛才產生 SSH 加密金鑰中的 Private Key 儲存至 Windows 安全性內容中,並且和目前的 Windows 使用者登入帳號產生關聯,以便稍後部署 TCE 獨立叢集需要採用 Private Key 進行驗證作業時,ssh-agent 服務就會自動擷取匯入的 Private Key 內容,並且自動傳送給 SSH 用戶端進行驗證。如圖 15 所示,使用「Start-Service ssh-agent」啟動 ssh-agent 服務後,使用「ssh-add」指令搭配 Private Key 存放路徑即可。
完成 SSH Private Key 匯入作業後,請記得備份並存放至安全位置,然後從本機 Windows 中刪除它,避免產生資安風險和疑慮。
圖 15、啟動 ssh-agent 服務並匯入 SSH Private Key

請執行「tanzu standalone-cluster create --ui」指令,系統將會啟動 kickstart UI 進行 TCE 獨立叢集初始化部署流程(如圖 16 所示),可以看到目前的 TCE 支援部署至 Docker 容器環境,和地端的 VMware vSphere 虛擬化環境,以及 Amazon EC2 和 Microsoft Azure 公有雲環境,請按下 VMware vSphere 區塊中的 Deploy 鈕進行部署作業。

圖 16、啟動 kickstart UI 進行 TCE 獨立叢集初始化部署流程

首先,在 IaaS Provider 頁面中,請先鍵入 vCenter Server 名稱和管理帳號及密碼後按下 Connect 鈕,通過管理者身份驗證程序後,選擇準備部署 TCE 獨立叢集的 Datacenter,並貼上剛才建立 SSH 加密金鑰中的 Public Key 內容(如圖 17 所示)。

圖 17、鍵入 vCenter 管理平台的管理人員帳號密碼資訊和 Tanzu CLI 主機 SSH Public Key

在 Standalone Cluster Settings 頁面中,管理人員將定義屆時 TCE 獨立叢集的規模大小。在 Development 和 Production 選項中,最主要的差別在於稍後部署的 TCE 獨立叢集的「控制平面節點」(Control Plane Node)數量,選擇 Development 則只會建立「1 台」控制平面節點,而選擇 Production 選項則會一次建立「3 台」控制平面節點。在本文實作環境中,選擇 Development 且 Instance Type 為「Medium」。

在 Standalone Cluster Name 欄位中,請鍵入在部署 TCE 獨立叢集所要採用的 vSphere Cluster 名稱,本文實作為「tce-cluster」,在 Control Plane Endpoint 欄位,請鍵入屆時 TCE 獨立叢集中控制平面節點的 VIP 位址,本文實作為「10.10.75.72」,由於是測試環境用途所不勾選「Enable Audit Logging」選項(如圖 18 所示)。
Standalone Cluster Name 欄位,僅支援「英文小寫」開頭,以及「數字和 - 及 .」,其它字元尚未支援,例如,尚未支援「英文大寫」名稱。
圖 18、組態設定 TCE 獨立叢集名稱和控制平面 VIP 位址

在 VMware NSX Advanced Load Balancer 頁面中,可以整合 NSX 進階負載平衡器機制,在目前測試用途的 TCE 獨立叢集中並不需要,所以可以直接按下 Next 鈕至下一個部署流程。在 Metadata 頁面中,目前尚未需要額外定義,請直接按下 Next 鈕至下一個部署流程。

在 Resources 頁面中,在 VM Folder 欄位中選擇先前為 TCE 環境建立的 VM 資料夾,本文實作為「Datacenter/vm/TCE」,在 Datastore 欄位則是選擇要採用的儲存資源,在 Clusters,Hosts,and Resource Pools 欄位,選擇要採用的 vSphere 運算資源,本文實作選擇使用 vSphere 虛擬化環境中準備的「K8s-Cluster」(如圖 19 所示)。

圖 19、組態設定部署 TCE 獨立叢集所要採用的 vSphere 運算和儲存資源

在 Kubernetes Network 頁面中,請組態設定 TCE 獨立叢集所要使用的 vNetwork 虛擬網路,在 Network Name 欄位中,請選擇使用的 vSphere vSwitch 虛擬交換器,本文實作為「/Datacenter/network/tce-vnet」(如圖 20 所示),至於 Cluster Service CIDR 和 Cluster Pod CIDR 欄位,則是屆時容器會使用到的 IP 位址網路,請採用系統預設值即可。值得注意的是,這些系統預設值網段,倘若和企業或組織內部網路互相衝突時,則需要修改成不同網段。
連接的 vSwitch 虛擬交換器,必須和前述第二步驟中控制平面 VIP 位址同一個網段,並且必須支援 DHCP 自動派發 IP 位址機制。
圖 20、組態設定 TCE 獨立叢集和容器的虛擬網路

在 Identity Management 頁面中,管理人員可以組態設定使用者身份驗證機制,目前 TCE 運作環境中支援 OIDC 或 LDAPS 通訊協定,在目前測試用途的 TCE 獨立叢集中並不需要,所以直接按下 Next 鈕至下一個部署流程。

在 OS Image 頁面中,便是選擇先前上傳到 vSphere 虛擬化環境中 OVA,並且將 VM 虛擬主機轉換為 VM Template 的印象檔,這便是稍後部署 TCE 獨立叢集時,所要採用的 Base OS Image 印象檔。本文實作為「/Datacenter/vm/TCE/photon-3-kube-v1.21.2」(如圖 21 所示)。

圖 21、組態設定部署 TCE 獨立叢集採用的 Base OS Image 印象檔

完成上述八項組態設定後,按下 Review Configuration 鈕,再次檢視組態設定內容是否正確,確認無誤後按下「Deploy Standalone Cluster」鈕,便立即開始 TCE 獨立叢集的部署工作任務。

事實上,眼尖的管理人員應該已經發現,這個 kickstart UI 的圖形化介面,會將剛才所有的組態設定儲存為 YAML 檔案,在本文實作中儲存的路徑為「C:\Users\Weithenn\.config\tanzu\tkg\clusterconfigs\tce-cluster.yaml」,以便下次需要快速建立環境時,可以直接使用管理人員慣用的組態設定內容,快速建立 TCE 獨立叢集測試或研發環境。等待一段時間後,在本文實作環境中,大約花費「12 分鐘」時間便部署完成 TCE 獨立叢集(如圖 22 所示)。

圖 22、順利部署 TCE 獨立叢集至 vSphere 虛擬化環境

切換至 vSphere 虛擬化環境中,從 vCenter 管理介面中可以看到,已經新增並運作二台 VM 虛擬主機,其中一台為 TCE 獨立叢集的控制平面主機,另一台則是屆時運作容器的工作節點主機。此外,剛才部署流程中設定的控制平台 VIP 位址,也自動組態設定至控制平面主機(如圖 23 所示)。

圖 23、確認控制平面主機和工作節點主機運作狀態



驗證並連線至管理叢集

確認 TCE 獨立叢集部署完成並運作正常後,請從 Tanzu CLI 主機鍵入「tanzu login」 指令,選擇採用「Local kubeconfig」選項,並選擇預設存取 K8s 組態設定路徑本文實作為「C:\Users\Weithenn/.kube/config」,並鍵入 kube context 內容本文實作為「tce-cluster-admin@tce-cluster」,最後搭配管理叢集名稱「tce-cluster」後,即可看到驗證程序成功連線至 TCE 管理叢集(如圖 24 所示)。

圖 24、驗證連線並登入 TCE 管理叢集

驗證連線並登入成功後,接著透過「kubectl」 指令,確認是否能夠和 TCE 管理叢集的 API 服務進行互動,例如,查看 K8s 叢集的控制平面資訊,以及列出 K8s 叢集中的各個節點主機資訊(如圖 25 所示)。

圖 25、查看 K8s 叢集的控制平面和各個節點主機資訊



部署 Octant 管理工具

對於 K8s 叢集管理和維運事務還不熟悉的管理人員,可以透過安裝 VMware 主導的另一個開放源始碼工具 Octant,協助管理人員透過視覺化儀表板介面,了解和管理 K8s 叢集工作負載、命名空間、中繼資料……等工作任務。

首先,請在 Tanzu CLI 主機上,鍵入「choco install octant --confirm」指令,透過 Chocolatey 套件管理工具安裝 Octant,在啟動 Octant 之前,請再次執行「kubectl cluster-info」 指令,確保 Tanzu CLI 主機已經驗證連線並登入成功 TCE 管理叢集,確誤無誤後即可執行「octant」指令。此時,系統將自動開啟瀏覽器並連線至「127.0.0.1:7777」,即可看到 Octant 儀表板圖形化管理介面(如圖 26 所示)。

圖 26、執行 octant 指令後查看 Octant 儀表板圖形化管理介面



部署容器和服務

雖然,目前的 TCE 獨立叢集環境並沒有部署負載平衡器,仍然可以在 TCE 所建構的 K8s 叢集中部署和測試 Pod 服務是否正常運作,並且管理人員可以透過 Octant 輕鬆部署和管理 Pod 及服務。

首先,登入 Octant 管理介面後,依序點選「Applications > Apply YAML」 項目,在彈出視窗中貼上 YAML 檔案內容,或是按下 Browse 鈕上傳 YAML 檔案後按下 Apply 鈕,系統將會依據 YAML 內容部署 Pod 及容器,本文實作部署 Nginx 網頁伺服器。
本文實作採用的 YAML 檔案內容詳細資訊,請參考 Debugging a Kubernetes Workload with Octant | VMware Tanzu Developer Center文章內容。

接著,管理人員可以按下「Ctrl + Enter」 組合鍵後選擇「Pods」項目,點選剛才部署的 Nginx Pod 之後,便可以看到相關資訊和頁籤,例如,在 Summary 頁籤中,除了可以看到容器組態設定資訊之外,還可以按下「Start Port Forward」鈕建立連接埠導向機制,在 Logs 頁籤中可以看到容器運作的日誌資訊,在 Terminal 頁籤中,已經直接連線至 Nginx 容器內,點選 Resource Viewer 頁籤,更可以透過視覺化的方式,了解 Nginx 容器相關服務的健康情況和組態設定資訊(如圖 27 所示)。

圖 27、透過 Octant 管理工具輕鬆部署和管理容器及服務





結語

透過本文的深入剖析,管理人員應該已經了解 Tanzu Community Edition,雖然是社群版本但是功能性卻一點也不馬虎之外,對於想要嘗試建構 K8s 叢集卻又擔心難以管理和維護的 IT 人員,經過本文的實戰演練後,應該能夠體會 TCE 在建置和管理維護上的易用性和直覺性。在後續的技術專欄中,將會逐步深入 TCE 管理維護以及如何整合更多進階功能,敬請期待。

[站長開講] SRE Conference 2022

$
0
0


活動簡介

從 2021 年起,由人力銀行呈現的 SRE(Site Reliability Engineer;服務可靠性工程師)招募資訊明顯激增,且職缺來源並不限於過往常見的數位原生企業,已擴及到各行各業的傳統公司,從零售、金融、高科技製造、媒體,甚至是物流業者都有。

由此可見,SRE 儼然是企業推動數位轉型的必備人才資源,以致成為科技類工作職場的大熱門。許多企業為因應疫情展開轉型或是加快轉型腳步,並對於數位服務不中斷的需求愈來愈高,導入雲端原生技術後的維護需求也會陸續出現,使得企業培養自己的 SRE 能力已成 IT 部門的新課題。所以也是您開始培養強化自身 SRE 專業的時候!

敬邀一起參與第一屆 SRE CONFERENCE,攜手企業建立 IT 核心能力,實現轉型願景。 你,就是扭轉 IT 現代化的關鍵。





活動資訊

  • 日期:   2022 年 4 月 29 日 (五)
  • 時間:   09:00 - 16:30
  • 地點:   富邦國際會議中心 B2 樓 A 廳
  • 報名:   活動報名





站長議程




Performing a Reconfigure for vSphere HA operation on a primary node may cause an unexpected virtual machine failover

$
0
0


Question: Performing a Reconfigure for vSphere HA operation on a primary node may cause an unexpected virtual machine failover

登入 vCenter 管理介面時,Skyline Health 顯示在 Compute Health Checks 顯示有一筆警告訊息。



Answer:

簡單來說,這是在組態設定 vSphere HA 高可用性機制時,預設的 10 秒鐘等待時間太短所導致,所以只要把延遲時間加長改為「30 秒」即可。詳細資訊請參考 VMware KB 2017778 - Performing a Reconfigure for VMware HA operation on a primary node causes an unexpected virtual machine failover知識庫文章內容。

登入 vCenter 之後,右鍵選擇修改 Cluster 設定,點選 vSphere HA > Advanced Options。因為本文實作環境為 vCenter 7.0 U2所以加上「das.config.fdm.unknownStateMonitorPeriod = 30」參數值即可。


新增進階參數完成後,停用再啟用 vSphere HA 高可用機制,並到 Skyline Health 再次執行測試作業,即可發現從剛才的警告變成綠燈的健康狀態。


[站長開講] VMware vSphere 伺服器虛擬化實戰班 (全新 vSphere 7 課程)

$
0
0



課程日期




課程大綱

VMware vSphere 伺服器虛擬化平台硬體規劃最佳建議作法

VMware vSphere 伺服器虛擬化實作環境建置

  • Nested VMs / vSphere in a box

建置 VMware vSphere 伺服器虛擬化平台

  • 建立 Windows Server 網域控制站和 DNS 名稱解析伺服器
  • 建立 iSCSI Storage 儲存伺服器
  • 安裝及管理 vSphere ESXi 7 虛擬化平台
  • 安裝及管理 vCenter Server 7 管理平台
  • 納管 vSphere ESXi 伺服器虛擬化平台
  • 建立 vSphere 資料中心和叢集(Datacenter / Cluster)

建置 VMware vSphere vNetwork 虛擬網路環境

  • 建立和管理 vSS (vNetwork Standard Switch)
  • 建立和管理 Port Group
  • 建立和管理 Network Policy
  • 建立和管理 VMkernel Port
  • 建立和管理 NIC Teaming

VM 虛擬主機管理

  • 虛擬磁碟線上擴充和縮小(Disk Online Extend / Shrink)
  • 記憶體熱新增(Memory Hot Add)
  • CPU 熱新增(CPU Hot Add)
  • 升級虛擬硬體版本(Upgrade VM Hardware version)
  • 限制 VM 虛擬主機網路和儲存資源(Network / IOPS)

計畫性停機解決方案

  • 線上即時遷移(vSphere vMotion / DRS)
  • 儲存即時遷移(Storage vMotion / Storage DRS)
  • 無共用儲存即時遷移(vMotion Enhancements)

非計畫性停機解決方案

  • 高可用性(vSphere HA / Fault Tolerance)

網管人 195 期 - 啟用整合公有雲權益地端運行 Azure 版 WS 2022

$
0
0


網管人雜誌

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





本文目錄






前言

在微軟的「超融合基礎架構」(Hyper-Converged Infrastructure,HCI)技術藍圖中,原本 HCI 技術直接內建於 Windows Server 2016 作業系統中,讓管理人員能夠使用已經熟悉的 Windows Server 作業系統架構,輕鬆建構出 HCI 超融合基礎架構(如圖 1 所示)。

圖 1、透過 Windows Server 搭建 HCI 超融合基礎架構示意圖

然而,隨著時間的推進和管理人員的意見反應,微軟發現應該將 HCI 超融合基礎架構技術獨立出來,因為在 Windows Server 作業系統中,通常都運作企業和組織在地端資料中心常用的服務,例如,DC 網域控制站、DNS 名稱解析伺服器、DHCP 伺服器……等,所以採用 Windows Server 所搭建的 HCI 超融合基礎架構中,有著過多未使用的系統服務和函式庫,以及舊有 Windows Server 架構的包袱,導致 HCI 超融合基礎架構技術無法進行精簡設計和效能最佳化。

因此,從 Windows Server 2019 版本開始,除了維持將 HCI 超融合基礎架構技術內建之外,也同時發佈針對 HCI 超融合基礎架構技術,進行精簡設計和效能最佳化的「Azure Stack HCI OS」雲端作業系統(如圖 2 所示),並且官方宣佈後續所有的進階功能,都只會在 Azure Stack HCI OS 雲端作業系統中推出,而非 Windows Server 2019 和後續版本,舉例來說,最新的「延展叢集」(Stretch Cluster)、「4 倍快速修復儲存空間」(4x faster Storage Spaces reparis)、「引導式部署」(Guided deployment)……等進階功能,便只能運作在 Azure Stack HCI 雲端作業系統,所搭建的 HCI 超融合基礎架構運作環境中。

圖 2、Azure Stack HCI OS 雲端作業系統運作架構示意圖





Azure Stack HCI 21H2 亮眼新功能

基本上,Azure Stack HCI 雲端作業系統和 Windows 10/11 設計理念相同,除了每個月定期的安全性更新對外,每隔「六個月」便會推出新版本(如圖 3 所示),Azure Stack HCI 新版本包括新增或增強功能以及臭蟲修復和安全性更新。值得注意的是,企業或組織採用 Windows Server 2019 作業系統,所建構的 HCI 超融合基礎架構,不支援就地升級為 Azure Stack HCI 超融合基礎架構,必須整合叢集升級機制,在升級程序過程中個別重建每台 HCI 超融合叢集節點才行。

圖 3、Azure Stack HCI 雲端作業系統產品生命週期示意圖

那麼管理人員該如何確認,每次 Azure Stack HCI 更新版本有哪些特色功能,舉例來說,支援的 Kubernetes 版本有哪些、是否支援新的 GPU 機制、是否採用新一代的 ContainerD 取代舊有的 Moby……等。只要前往 Azure Stack HCI 在 Github 上的發行公告(Release Notes),即可了解每一個版本詳細的功能說明。
後續將 Azure Stack HCI 超融合基礎架構,簡稱為「AzSHCI」。



支援 Windows Server 2022 : Azure Edition

對於 Microsoft Azure 公有雲有熟悉度的管理人員應該知道,在 Azure 公有雲環境中,有些工作負載和服務僅能運作在公有雲環境,無法運作在企業和組織的地端資料中心內。此外,在 Windows Server 2022 發行版本中,眼尖的管理人員應該已經發現,除了原有的 Standard 和 Datacenter 之外,還多出一個僅限於在 Azure 公有雲環境上運作的「Windows Server 2022 Datacenter : Azure Edition」發行版本。

這個新的 Windows Server 2022 發行版本,由於在 Azure 公有雲環境中的特殊設計,因此更支援幾項特殊進階功能,例如,SMB over QUIC、Azure Extended Network、Hot Patching…… 等,這些特殊進階功能在 Standard 和 Datacenter 發行版本中並不支援。
有關 Windows Server 2022 不同發行版本的功能比較表詳細資訊,請參考 Comparison of Standard,Datacenter,and Datacenter Azure Edition editions of Windows Server 2022 | Microsoft Docs文件內容。

現在,最新推出的 AzSHCI 21H2 版本中,新增支援「Azure 權益」(Azure Benefits) 機制,能夠完整支援和運作安裝 Windows Server 2022 Datacenter : Azure Edition 版本的 VM 虛擬主機。簡單來說,AzSHCI 21H2 版本將 Azure 權益機制內建後,便能為 VM 虛擬主機提供 Azure 平台驗證服務,讓 VM 虛擬主機以為運作在 Azure 公有雲環境中。

管理人員只要在 AzSHCI 21H2 運作環境中,啟用 Azure 權益機制後,系統將會在 AzSHCI 叢集環境中,為每台 AzSHCI 叢集節點主機啟動 HciSvc 服務,並且啟動後的 HciSvc 服務,會至 Azure 公有雲取得通過簽署的憑證,並將憑證存放在 AzSHCI 叢集節點主機記憶體保護區內。

接著,HciSvc 服務會傳遞不可路由的 REST 端點,提供給 AzSHCI 叢集環境上運作的 VM 虛擬主機進行存取作業。所以,當安裝 Windows Server 2022 Datacenter : Azure Edition 版本的 VM 虛擬主機,自我驗證所處環境是否為 Azure 公有雲環境時,HciSvc 服務便會將剛才儲存在記憶體保護區內憑證進行回應,讓 VM 虛擬主機以為自己運作在 Azure 公有雲環境中,但實際上 VM 虛擬主機則是運作在企業和組織地端資料中心內的 AzSHCI 叢集(如圖 4 所示)。

圖 4、運作在 AzSHCI 叢集中 Azure 權益運作架構示意圖



支援舊版 Windows Server 和 SQL Server 安全性更新

除了運作 Azure 公有雲才支援的新式雲端作業系統之外,相信不少企業和組織因為種種因素,還運作著舊有的 Windows Server 2008 R2 / 2012 R2 作業系統,以及 SQL Server 2008 R2 / 2012 R2 資料庫系統。

因為這些舊有的作業系統和資料庫系統,已經到了產品生命週期結束階段,所以微軟並不提供後續任何的安全性更新,簡單來說,倘若企業和組織強硬在地端資料中心內繼續運作的話,將會使企業和組織的機敏資訊,暴露在非常大的資安風險當中。

因此,微軟推出在 Azure 公有雲環境運作這些舊有作業系統和資料庫系統時,能夠享有特殊的延長安全性更新服務,讓企業和組織可以在這段充裕的延長時間中,將重要的營運服務遷移至新的作業系統和資料庫系統版本,但是有些企業和組織可能因為架構環境和法規考量等種種因素,無法將舊有作業系統和資料庫系統運作在 Azure 公有雲環境,只能在地端資料中心內建構簡易安全防護的環境,運作這些高資安風險的舊作業系統和資料庫系統。

現在,整合 Azure 權益機制的新版 AzSHCI 叢集,也支援將這些舊有作業系統和資料庫系統的 VM 虛擬主機,運作在新版 AzSHCI 叢集環境中,並且因為整合的 Azure 權益機制,讓舊作業系統和資料庫系統,就像運作在 Azure 公有雲環境一樣能夠進行延伸的安全性更新服務,有效解決企業和組織的困擾並加速遷移服務至新系統的速度(如圖 5 所示)。

圖 5、新版 AzSHCI 21H2 支援運作舊有作業系統和資料庫系統,並提供安全性更新服務



支援 AVD(Azure Virtual Desktop)

過去,當企業或組織需要在地端資料中心內,建構和部署「虛擬桌面基礎結構」(Virtual Desktop Infrastructure,VDI)時,只能在 AzSHCI 運作環境中,建立多台 VM 虛擬主機並部署「遠端桌面服務」(Remote Desktop Services,RDS)來達成(如圖 6 所示),後續也只能由管理人員肩負 VDI 架構的維護和管理工作任務。
有關手動建構和部署 RDS 遠端桌面服務的詳細資訊,請參考本刊【189期-架設微軟RDS遠端桌面,速成遠距辦公友善環境】專欄內容。
圖 6、RDS 遠端桌面服務運作架構示意圖

倘若,企業和組織能夠接受和允許,在 Azure 公有雲建構 VDI 虛擬桌面環境時,那麼可以透過「Windows 虛擬桌面」(Windows Virtual Desktop,WVD)服務,由 Azure 公有雲部署和管理 RDS 遠端桌面服務中,各項主要運作元件和角色,例如,RD Session Host、RD Connection Broker、RD Gateway、RD Web Access……等,除了達到快速部署的目的之外,也能輕鬆建構出具備高可用性的 RDS 遠端桌面服務運作架構(如圖 7 所示),更提供安全監控機制讓管理人員易於管理 WVD 虛擬桌面的安全性更新。
有關部署 WVD 虛擬桌面服務的詳細資訊,請參考本刊【177 期 - 雲端 Windows 虛擬桌面零硬體免建構立享 VDI】專欄內容。
圖 7、WVD 虛擬桌面的 RDS 遠端桌面服務運作架構示意圖

現在,Azure 公有雲的 WVD 虛擬桌面服務,已經新服務名稱為「Azure 虛擬桌面」(Azure Virtual Desktop,AVD),並且提升規模支援至 1,000 台虛擬桌面的運作架構之外,更支援 Windows 10/11 Enterprise Multi-Session 機制,讓多位使用者能夠同時使用(如圖 8 所示),更重要的是新版 AzSHCI 21H2 支援部署 AVD 虛擬桌面服務。

圖 8、Azure 虛擬桌面運作架構示意圖

因此,企業和組織可以同時結合這兩項優點,在地端資料中心內的 AzSHCI 運作環境中,直接部署 AVD 虛擬桌面(如圖 9 所示),達到快速部署和輕鬆管理的目的,因為 VDI 虛擬桌面運作在地端資料中心內,使用者也無須擔心網路傳輸速度的問題,達到「低延遲」(Low Latency)且快速傳輸和回應的目的,同時也解決資料必須儲存在 Azure 公有雲環境內的疑慮。

圖 9、將 AVD 虛擬桌面部署至 Azure Stack HCI 超融合基礎架構示意圖



具備高可用性的 GPU 集區

在 AI 人工智慧和 ML 機器學習當道的時代,當 VM 虛擬主機支援「圖形處理器」(Graphics Processing Units,GPUs)時,能夠在訓練模型時有效縮短整體時間。

在過去的 AzSHCI 運作架構中,雖然也支援 GPU 運作架構,但是通常為一對一或一對多的 GPU 指派關係,在一般正常情況下運作並沒有任何問題。然而,當 AzSHCI 叢集節點主機發生災難事件時,由於 VM 虛擬主機移轉至不同台 AzSHCI 叢集節點主機,所以管理人員必須手動為每台使用 GPU 的 VM 虛擬主機,重新指派 GPU 的對應關係才行。

現在,新版 AzSHCI 21H2 運作環境中,支援新式的「GPU 集區」(GPU Pools)架構。首先,確認
在 AzSHCI 叢集中的每台 AzSHCI 叢集節點主機,皆建立相同名稱的 PCI Express 資源集區,並且將配置的硬體 GPU 加入至 GPU 集區中,當 GPU 集區機制建立完成後,將特定的 VM 虛擬主機指派到 GPU 集區中,而非傳統一對一或一對多的指派到單個 GPU,後續當 AzSHCI 叢集節點主機發生災難事件時,移轉並重新啟動的 VM 虛擬主機,便會在重新啟動時自動尋找並使用其它台 AzSHCI 叢集節點主機,加入至 GPU 集區的 GPU 資源,而無須管理人員手動為 VM 虛擬主機再次建立和指派 GPU 對應關係(如圖 10 所示)。

圖 10、GPU 集區運作架構示意圖

管理人員在新版 AzSHCI 21H2 運作環境中,可以透過 WAC 整合的「離散裝置指派」(Discrete Device Assignment,DDA),或稱「GPU 傳遞」(GPU Pass-Through)機制,為 AzSHCI 叢集建立 GPU 集區,並指派給特定的 VM 虛擬主機使用(如圖 11 所示)。

圖 11、透過 WAC 建立 GPU Pools 並指派給特定的 VM 虛擬主機使用



支援精簡佈建

在過去的 AzSHCI 版本中,僅支援「固定佈建」(Fixed Provisioned)方式,這表示管理人員在儲存集區建立磁碟區時,會預先配置並一次佔用指派的儲存空間在儲存集區內,即便磁碟區未存放任何資料,其它磁碟區也無法使用這些被佔用的儲存空間。

現在,新版 AzSHCI 21H2 運作環境,支援新式的「精簡佈建」(Thin Provisioning)機制(如圖 12 所示),在儲存集區建立磁碟區時,不會預先配置並佔用指派的所有儲存空間,而是當磁碟區開始新增和異動資料時儲存空間才會開始成長,並且當刪除資料時也會自動減少儲存空間,達到彈性運用和「超量佈建」(Over-Provisioned)的目的,舉例來說,儲存集區總共只有 1 TB 儲存空間,但是管理人員卻可以建立五個支援新式精簡佈建且 1 TB 大小的磁碟區,讓儲存空間彈性應用最大化。
請注意,雖然支援超量使用儲存空間,但上述舉例中仍須注意整體儲存空間僅有 1 TB 而非 5 TB 。
圖 12、固定佈建和精簡佈建差異比較示意圖

新版 AzSHCI 21H2 的精簡佈建,支援所有磁碟區類型,例如,Two-way Mirror、Three-way Mirror、Mirror Accelerated Parity…… 等,並且在儲存集區使用容量達到「70%」時(如圖 13 所示),可以在 WAC 管理介面中顯示告警訊息,提醒管理人員應該為儲存集區加入更多儲存空間,或是刪除老舊和不必要的資料以釋放更多儲存空間。
管理人員可以依據需求調整告警通知百分比,例如,由預設的 70% 調整為 85% 。
圖 13、儲存集區使用量達 70% 提醒擴充儲存空間示意圖



同時管理多個 AzSHCI 叢集

很多企業和組織,在世界各地都會有分公司,即便僅在台灣也會有多個分公司據點的需求,這些分公司雖然無須太多基礎架構,但是也需要運作少量的 VM 虛擬主機和基礎服務,例如,分公司當地的檔案伺服器、印表伺服器……等。同時,在 AzSHCI 叢集運作架構中,最少只要「二台」AzSHCI 叢集節點主機即可建構,所以非常符合分公司少量資源的部署需求。

然而,當總公司的 IT 管理人員,為數量眾多的分公司建立許多小型 AzSHCI 叢集後,如何有效監控及管理便是一大難題。因此,當管理人員建構 AzSHCI 叢集並連接及註冊至 Azure 環境後,便能在 Azure Portal 中同時監控和管理眾多 AzSHCI 叢集(如圖 14 所示)。

圖 14、透過 Azure Portal 同時監控和管理數量眾多的 AzSHCI 叢集

管理人員只要透過幾個簡單的步驟,即可達成在 Azure Portal 統一監控和管理 AzSHCI 叢集的目的。首先,在 AzSHCI 叢集中每台 AzSHCI 叢集節點主機,安裝 Azure Arc 的 MMA(Microsoft Monitoring Agent),MMA 收集 AzSHCI 叢集節點主機的運作狀態及日誌,傳送到連接和註冊的 Azure 訂閱帳戶中的 Log Analytics 工作區,透過 Insights 解決方案提供查詢和視覺化的圖形儀表板,最後管理人員便能在 Azure Monitor 頁面中,監控和管理多個 AzSHCI 叢集(如圖 15 所示)。

圖 15、同時管理多個 AzSHCI 叢集機制運作架構示意圖





實戰 – 部署 Windows Server 2022:Azure Edition 至 AzSHCI

如前所述,預設情況下 Windows Server 2022 :Azure Edition雲端作業系統,只能運作在 Azure 公有雲環境中。然而,新版 AzSHCI 已經透過 Azure 權益機制,支援運作在企業和組織地端資料中心內的 AzSHCI 叢集中。本小節將實戰演練此部份。



啟用 Azure 權益

首先,管理人員必須確認 AzSHCI 叢集已建立完成,並且透過 WAC 管理介面可順利連結至 AzSHCI 叢集。接著,在 WAC 管理介面中依序點選「AzSHCI Cluster > Settings > Azure Stack HCI > Azure benefits」項目即可啟用 Azure 權益。值得注意的是,必須先將 AzSHCI 叢集註冊至企業和組織的 Azure 訂閱帳戶內,才能啟用 Azure 權益機制,否則將會顯示無法順利啟用 Azure 權益的錯誤訊息(如圖 16 所示)。
有關建構 AzSHCI 叢集運作環境的詳細資訊,請參考本刊 【181 期 - 微軟超融合雲端作業系統 Azure Stack HCI開箱】 專欄內容。
圖 16、必須先將 AzSHCI 叢集進行註冊後,才能順利啟用 Azure 權益機制

順利完成 AzSHCI 叢集的註冊動作後(如圖 17 所示),管理人員可以透過 WAC 管理介面或是 PowerShell 指令,針對指定的 AzSHCI 叢集啟用 Azure 權益機制。
請注意,將 AzSHCI 叢集正式註冊至 Azure 訂閱帳戶後,將會產生相關費用,但是後續在 AzSHCI 叢集中啟用 Azure 權益機制時,並不會產生額外的費用。
圖 17、將 AzSHCI 叢集註冊和連結至企業及組織的 Azure 訂閱帳戶

由於,為 AzSHCI 叢集啟用 Azure 權益機制時,除了必須採用 AzSHCI 21H2 版本之外,至少要安裝 2021 年 12 月的 KB5008223 更新或後續版本,才能順利為 AzSHCI 叢集啟用 Azure 權益機制,否則在嘗試啟用 Azure 權益時,系統將會顯示「Install the latest updates and the refresh this page」錯誤訊息,並提醒管理人員必須先為 AzSHCI 叢集安全最新更新後再繼續。

當前置條件都滿足後,管理人員即可透過 WAC 管理介面在 Azure benefits 頁面中按下「Turn on」鈕,或在 PowerShell 視窗中執行「Enable-AzStackHCIAttestation」指令,即可輕鬆為 AzSHCI 叢集啟用 Azure 權益機制。預設情況下,系統會為 AzSHCI 叢集中所有的 VM 虛擬主機啟用 Azure 權益,當然管理人員也可以一開始不全部啟用,後續在針對個別 VM 虛擬主機手動進行啟用。

順利啟用 Azure 權益機制後,管理人員可以在 WAC 管理介面中,依序點選「AzSHCI Cluster > Settings > Azure Stack HCI > Azure benefits」(如圖 18 所示),或透過「Get-AzureStackHCI」指令,查詢 AzSHCI 叢集的 Azure 權益啟用狀態,確保 AzSHCI 叢集中的每一台節點主機在 Azure benefits 欄位為「Active」狀態,即表示 AzSHCI 叢集節點主機順利取得 IMDS 簽署證明 ,屆時 VM 虛擬主機中的作業系統,需要驗證運作環境是否來自 Azure 時便能夠順利通過驗證程序。

圖 18、透過 WAC 管理介面確認 AzSHCI 叢集是否順利啟用 Azure 權益



管理 VM 虛擬主機的 Azure 權益存取權

預設情況下,在啟用 Azure 權益時,會針對 AzSHCI 叢集上所有的 VM 虛擬主機啟用 Azure 權益,倘若預設未全部啟用,或是後續新增需要 Azure 權益機制的 VM 虛擬主機,或是管理人員想要取消某些 VM 虛擬主機的 Azure 權益時,都可以透過 WAC 管理介面或是 PowerShell 指令完成。

在本文實作環境中,目前 AzSHCI 叢集共有 3 台 VM 虛擬主機皆未套用 Azure 權益存取權,這些 VM 虛擬主機在「VM benefits status」欄位為「Off」,管理人員只要選取 VM 虛擬主機後,點選「Turn on Azure benefits for VMs」,即可為選取的 VM 虛擬主機套用 Azure 權益存取權,套用成功後 VM 虛擬主機將會移至下方「VMs with Azure benefits」區塊中,並且 VM benefits status 欄位顯示為「On」狀態(如圖 19 所示)。

當然,管理人員也可以透過 PowerShell 的「Add-AzStackHCIVMAttestation -VMName <VM 虛擬主機名稱 >」指令,為特定的 VM 虛擬主機套用 Azure 權益存取權,或是執行「Add-AzStackHCIAttestation -AddAll」指令,一次性的為 AzSHCI 叢集中所有的 VM 虛擬主機套用 Azure 權益存取權。

圖 19、為特定的 VM 虛擬主機套用 Azure 權益存取權

同樣的,當管理人員需要取消 VM 虛擬主機的 Azure 權益存取權時,只要選取該台 VM 虛擬主機後點選「Turn off Azure benefits for VMs」,便會取消 VM 虛擬主機的 Azure 權益存取權,取消作業完成後該台 VM 虛擬主機,將會移至上方「VMs without Azure benefits」區塊中,並且 VM benefits status 欄位顯示為「Off」狀態(如圖 20 所示)。

當然,管理人員也可以透過 PowerShell 的「Remove-AzStackHCIVMAttestation -VMName <VM 虛擬主機名稱 >」指令,為特定的 VM 虛擬主機取消 Azure 權益存取權,或是執行「Remove-AzStackHCIVMAttestation -RemoveAll」指令,一次性的為 AzSHCI 叢集中所有的 VM 虛擬主機套用 Azure 權益存取權。

圖 20、為特定的 VM 虛擬主機取消 Azure 權益存取權



管理 AzSHCI 叢集節點主機的 Azure 權益

預設情況下,一旦 AzSHCI 叢集順利啟用 Azure 權益機制,並確保 AzSHCI 叢集節點主機狀態為「啟用」(Active)後,管理人員便無須擔心 AzSHCI 叢集節點主機狀態,因為系統會自動排程同步至最新狀態。

值得注意的是,企業或組織地端資料中心的 AzSHCI 叢集,倘若發生網路中斷情況或其它因素,導致 AzSHCI 叢集未與 Azure 同步「超過 30 天」時,那麼在 Azure benefits 頁面中的 AzSHCI 叢集節點主機狀態,將會轉變為「過期」(Expired)「未啟用」(Inactive)。此時,管理人員可以點選「Sync with Azure」鈕(如圖 21 所示),或執行 PowerShell「Sync-AzureStackHCI」指令,手動為 AzSHCI 叢集和 AzSHCI 叢集節點主機與 Azure 進行同步。

圖 21、手動為 AzSHCI 叢集和 AzSHCI 叢集節點主機同步 Azure 權益狀態





結語

透過本文的深入剖析及實戰演練,相信管理人員對於新版 Azure Stack HCI 21H2 超融合基礎架構,有哪些亮眼新功能可以幫助企業和組織,無論是在 AI 人工智慧和 ML 機器學習,或是 VDI 虛擬桌面基礎架構上,都能夠滿足需求,最後實作演練啟用和整合 Azure 權益,讓原本只能運作在 Azure 公有雲的 Windows Server 2022 : Azure Edition,也能運作在地端資料中心內。

[站長開講] VMware vCenter Server HA 高可用性實戰班

$
0
0

  



課程日期

日期: 2022 年 6 月 25 日 ~ 6 月 26 日
時間: 09:00 ~ 17:00
地點: 台北市復興南路一段390號2樓
報名: iSpan資展國際 | VMware vCenter Server HA高可用性實戰班



課程大綱

vCenter Server 7 HA 高可用性架構規劃

  • vCenter Server 7 HA 運作架構
  • Active / Passive / Witness 角色
  • vCenter Server 7 HA 軟硬體需求
  • vCenter Server 7 HA 部署模式
  • vCenter Server 7 HA 虛擬網路流量規劃
  • vCenter Server 7 HA 最佳建議作法

建構 vCenter Server 7 HA 高可用性實作環境

  • Nested VMs / vSphere in a box

組態設定 vCenter Server 7 HA 虛擬網路

  • 管理網路(Management Network)
  • vCenter 高可用性網路(vCenter HA Network)

建置 vCenter Server 7 HA 高可用性環境

  • 部署第一台 vCenter Server 7(Active Node)
  • 建立 vCenter HA Passive Node 和 Witness Node
  • vCenter Server 7 HA 容錯移轉

vCenter Server 7 HA 維運管理

  • 容錯移轉類型(Automatic / Manual)
  • vCenter Server 7 HA 維護模式(Maintenance Mode)
  • vCenter Server 7 HA 重新啟動
  • vCenter Server 7 HA 備份和還原
  • 調整 vCenter Server 7 HA 規模大小

網管人 196 期 - vSAN 7 Update 3 快覽實戰智慧式叢集關機重啟

$
0
0


網管人雜誌

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





本文目錄






前言

隨著 VMworld 2021 大會的舉行,最新版本 HCI 超融合基礎架構的「vSAN 7 Update 3」也同步推出。事實上,對於 IT 管理人員來說,對於 Update 版本的認知,通常大多為安全性更新或者是臭蟲修正,然而最新發佈的 vSAN 7 Update 3 版本,除了將原有特色功能大幅增強之外,更同時新增許多亮眼的特色功能(如圖 1 所示)。
本文因礙於篇幅的關係,僅挑選部份亮眼特色功能進行說明,詳細資訊請參考 VMware vSAN 7.0 Update 3 Release Notes
圖 1、最新 vSAN 7 Update 3 版本增強原有功能之外並新增許多亮眼新功能





vSAN 7 Update 3 亮眼特色功能

小型規模 vSAN 叢集可用性提升

許多企業和組織,已經在資料中心規模較小的分公司,部署 2 台 vSAN 節點主機建構小型 vSAN 叢集環境,擔任 vSAN 叢集中仲裁角色的見證主機,可能部署於總公司資料中心或第三地資料中心(如圖 2 所示)。然而,在過去的 2-Node vSAN 叢集架構中,只能承受較小型的災難和故障情況,舉例來說,倘若其中 1 台 vSAN 節點主機故障時,很有可能因為見證物件或 VM 虛擬主機物件,都存放在該台 vSAN 節點主機中,造成部份的 VM 虛擬主機可能產生資料遺失或無法正常運作的情況。

圖 2、分公司部署 2 台 vSAN 節點主機建構小型 vSAN 叢集示意圖

現在,最新的 vSAN 7 U3 版本中,針對 2-Node vSAN 節點主機的小型 vSAN 叢集儲存原則進行增強,新增「巢狀式容錯網域」(Nested Fault Domains)機制,在每台 vSAN 節點主機的「磁碟群組」(Disk Group)當中,套用新的儲存原則並分散 vSAN 儲存物件,讓 vSAN 叢集整體可承受災難程度大幅提升。

簡單來說,一旦管理人員為部署的 VM 虛擬主機,套用新式「Host mirroring(2-node)」儲存原則之後,則該台 VM 虛擬主機所有相關的 vSAN 儲存物件,都會透過新式的巢狀式容錯網域機制所保護。因此,當 vSAN 節點主機的磁碟群組發生故障時,甚至另一台 vSAN 節點主機也同時發生故障,這種對於 2-Node vSAN 叢集來說是重大災難事件的情況(如圖 3 所示),VM 虛擬主機相關的 vSAN 儲存物件仍然可用,VM 虛擬主機和內部運作的企業服務仍然正常運作。

圖 3、2-Node vSAN 叢集遭遇重大災難事件仍能正常運作示意圖



支援新世代 TPM 模組

在過去的 vSAN 版本中,支援靜態資料加密機制,管理人員可以使用 vSphere NKP(Native Key Provider),或是使用外部 KMS 主機進行加密金鑰的管理。

現在,最新的 vSAN 7 U3 版本中,完整支援 vSAN 叢集中的 vSAN 節點主機,安裝和配置硬體式的 TPM(Trusted Platform Modules)加密模組,以便在加密金鑰和應用程式的通訊出現問題時,能夠保留分佈式的加密金鑰在其中。簡單來說,vSphere NKP 和外部 KMS 已經完全支援整合 TPM 加密模組,這也是建構和儲存加密金鑰的最佳實作方法之一(如圖 4 所示)。

圖 4、vSphere NKP 和外部 KMS 完全支援整合 TPM 加密模組示意圖



更精細的 VM 效能分析數據

事實上,在 vSAN 叢集架構中,一旦 VM 虛擬主機發生效能不足或效能上遇到瓶頸時,相較於傳統的 vSphere 虛擬化環境架構來說,管理人員必須熟悉原有的 vSphere 基礎之外,還必須了解 vSAN 叢集的分佈式儲存架構,以及 VM 虛擬主機相關物件放置的情況後,逐一追查才有可能找出導致效能問題的原因。

現在,最新的 vSAN 7 U3 版本中,直接在 vCenter Server 管理平台內,整合 VM 虛擬主機「I/O 效能分析」(I/O Trip Analyzer)機制,除了幫助管理人員更容易辨別出 VM 虛擬主機的效能問題之外,同時也補足原有「vSAN 效能服務」(vSAN Performance Service)和「I/O 洞察」(I/O Insight)的盲點。

因此,當 VM 虛擬主機出現效能問題時,管理人員可以直接透過 vCenter 管理介面,查看 VM 虛擬主機每個 vDisk 虛擬硬碟的讀取和寫入效能數據之外,透過可視化的資料存取路徑有效幫助管理人員,能夠馬上判斷並找出導致 VM 虛擬主機效能問題的根本原因(如圖 5 所示)。

圖 5、透過 VM 虛擬主機 I/O 效能分析機制,快速找出導致效能問題的根本原因



更全面的健康狀態檢查機制

自從 Skyline 健康檢查機制支援 vSAN 叢集環境後,有效幫助管理人員在建置和故障排除 vSAN 叢集時,都能透過 Skyline 機制詳細檢查 vSAN 叢集的健康情況,快速辨別和找出可能的組態設定錯誤原因,或者是 SSD 固態硬碟等儲存裝置是否發生故障的情況。

簡單來說,過去 Skyline 檢查項目是眾多項目逐一進行檢查,雖然檢查範圍非常全面且詳盡,但有時組態設定錯誤或災難發生的情況很複雜,甚至也有可能是複合式的故障而引起的災難事件,舉例來說,倘若 vSAN 節點主機發生 vSAN 網路組態問題,進而導致 vSAN 節點主機進入隔離分割區,但這個災難事件的根本原因可能有很多種情況,有可能是 vSAN 網路所連接的實體網路交換器故障,也有可能是 vSAN 節點主機負責處理 vSAN 網路的實體網路卡故障,也有可能是中間連接的網路線或光纖線故障所引起的……等。

現在,最新的 vSAN 7 U3 版本中,將針對 vSAN 叢集健康情況的 Skyline 檢查機制再增強,能夠將眾多健康檢查項目之間,有可能關聯的部份進行連結,幫助管理人員能夠更快速判斷並找出複合式問題的原因,讓整體故障排除時間有效縮短。

舉例來說,有 vSAN 節點主機因為網路或硬體零件故障,脫離 vCenter Server 管理平台的掌控,同時也造成存放於本台 vSAN 節點主機上的 vSAN 儲存物件離線,導致相關使用該 vSAN 儲存物件的服務出現警告或錯誤的情況,但是這一切並非是儲存裝置故障導致的,而是同時間系統發現有 vSAN 節點主機離線所造成的,因為這樣的事件進行關聯並連結後,能夠快速判斷並總結出災難事件發生的根本原因(如圖 6 所示)。

圖 6、將事件檢查並互相關聯,有效找出複合式問題發生的根本原因



更深層的網路組態檢測機制

對於 vSAN 叢集分佈式儲存架構來說,由於是眾多 vSAN 節點主機之間,透過 vSAN 網路互相同步和交換彼此之間的 vSAN 儲存物件,達到建構出高可用性和效能強大的分佈式儲存基礎架構。因此,vSAN 節點主機的網路健康情況,對於 vSAN 叢集的整體穩定性來說至關重要。

在新版 vSAN 7 U3 當中,新增幾項針對 vSAN 節點主機網路組態和健康狀態的檢測機制,從底層實體網路卡是否啟用進階功能,例如,TSO(TCP Segmentation Offload)、LRO(Large Receive Offload)……等,到 ESXi 主機層級檢查 vmnic 健康狀態,例如,選擇採用 IP-Hash 負載平衡演算法,但連接的實體網路交換器卻未配置 Port Channel 或配置錯誤……等,到上層組態設定 VMkernel Port 的 vSAN 網路 vmknic,是否有發生 IP 位址重複而導致衝突的情況……等,達到網路組態 End-to-End 的深層檢查(如圖 7 所示)。

圖 7、End-to-End 的 vSAN 網路組態設定檢測機制示意圖



雲端原生機制更新升級不受限

對於 VMware 雲端策略有所了解的管理人員來說,應該都知道各大雲端供應商或者是與 VMware 深度整合的軟體供應商,都有提供經過 VMware 認證的 vSphere、vCenter、vSAN 虛擬化環境。在過去,只要 VMware 發佈版本更新時,各大雲端供應商和軟體供應商,便需要針對 vSphere、vCenter、vSAN 虛擬化環境進行版本更新,同時也要針對自家相關的產品發佈更新公告。

現在,從 vSAN 7 U3 版本開始,這些雲端供應商和軟體供應商無須再緊跟 VMware 的版本更新,即可升級至任何版本的 vSphere、vCenter、vSAN 虛擬化環境。簡單來說,整個產品生命週期正式脫勾原有的包袱,能夠更輕鬆的整合及升級產品(如圖 8 所示)。

圖 8、供應商可輕鬆升級至任何版本的 vSphere、vCenter、vSAN 虛擬化環境





實戰演練- vSAN 7 叢集感知智慧工作流

雖然,vSAN 叢集基礎架構建立完成後便具備高效能和高可用性,然而企業和組織的地端資料中心,難免會有歲休、機房電力調整、UPS 更換、市電切換測試……等因素,需要將 VM 虛擬主機關機,以及 vSAN 叢集進入維護模式後暫時關機的需求。

在過去的 vSAN 版本中,當資料中心因為上述原因需要將 vSAN 叢集暫時關閉時,倘若對於 vSAN 叢集的運作機制沒有一定的熟悉度時,那麼管理人員很有可能在關閉 vSAN 叢集的過程中,輕者讓整體關閉 vSAN 叢集的時間過長,嚴重者可能會無意間造成 vSAN 物件發生遺失或損壞的情況,造成後續 VM 虛擬主機啟動不正常或失敗等情況。

舉例來說,當 vSAN 叢集需要關閉時,管理人員在將 vSAN 叢集上運作的 VM 虛擬主機和營運服務關閉之前,應該先將 vSAN 叢集的 DRS 負載平衡和 HA 高可用性機制關閉,避免在關閉 VM 虛擬主機的過程中,因為未關閉 DRS 負載平衡和 HA 高可用性機制,讓 vSAN 叢集誤以為 VM 虛擬主機停擺而自動重新啟動,甚至當 vSAN 節點主機上的 VM 虛擬主機關閉後,當 vSAN 節點主機需要進入維護模式時(如圖 9 所示),管理人員也必須選擇對 vSAN 節點主機中 vSAN 物件的處理情況,這些選擇都再再考驗著管理人員對於 vSAN 叢集的熟悉度。

圖 9、vSAN 節點主機進入維護模式前,必須選擇處理 vSAN 物件的方式

假設一位對於 vSAN 叢集運作機制不熟悉的管理人員,需要將 vSAN 叢集關閉時,一開始為了確保所有 vSAN 物件能夠被遷移,可能會選擇「Full data migration」項目,但是選擇此項目後,等同於 vSAN 節點主機必須遷移其上所有 vSAN 物件後,才會正式進入維護模式,由於遷移所有 vSAN 物件需要花費大量時間,因此針對後續的 vSAN 節點主機時,管理人員為了縮短等待時間,而可能會選擇最快速進入維護模式的「No data migration」項目。

雖然,選擇「No data migration」項目,能夠讓 vSAN 節點主機無須遷移任何的 vSAN 物件,即可順利進入維護模式。然而,若是 vSAN 叢集中仍有 VM 虛擬主機尚未關機,並且該 VM 虛擬主機是採用「RAID-0」儲存原則進行部署時,那麼當該台 VM 虛擬主機 vSAN 物件,所屬的 vSAN 節點主機選擇採用「No data migration」進入維護模式時,便有可能造成該台 VM 虛擬主機資料遺失或損壞的可能,這也是為何在過去 vSAN 版本中,倘若遇到 vSAN 叢集必須暫時關閉的情況時,建議由熟悉 vSAN 叢集運作機制的管理人員,一步一步檢查和關閉相關服務及選擇最適合的選項,確保 vSAN 叢集能夠被正確關閉。



vSAN 叢集感知智慧工作流

現在,最新的 vSAN 7 U3 版本中,新增「叢集感知智慧啟動和關閉工作流」(Intelligent Cluster Aware Shutdown and Start-up Workflows)機制,讓整個關閉和重新啟動 vSAN 叢集的流程,透過智慧型的引導式工作流變得簡單且一致,同時在關閉和重新啟動的過程中,將會隨時監控並檢查可能出現問題的環節,讓不熟悉 vSAN 叢集運作機制的管理人員,也能順利關閉和重新啟動 vSAN 叢集。

在 vSAN 叢集感知智慧工作流運作機制中(如圖 10 所示),執行 vSAN 叢集的關閉和重新啟動流程之前,會先在 vSAN 叢集中透過選舉的方式,由系統在眾多 vSAN 節點主機中,自動選出一台 vSAN 節點主機擔任「協調流程主機」(Orchestration Host)角色,一旦選舉和指派角色作業完成後,其它 vSAN 節點主機透過系統傳遞的「中繼資料」(Metadata),便會知道 vSAN 叢集中哪一台主機擔任協調流程主機角色。

圖 10、vSAN 叢集感知智慧工作流運作機制示意圖

值得注意的是,原則上協調流程主機會由系統在 vSAN 節點主機中任選一台。然而,當 vCenter 管理平台執行個體運作在 vSAN 叢集時,那麼協調流程主機的角色,便自動由 vCenter 管理平台所處的 vSAN 節點主機擔任。

此外,vSAN 叢集感知智慧工作流運作機制,不僅僅適用於一般 vSAN 叢集,也同時適用於大型規模的「vSAN 延伸叢集」(vSAN Stretched Cluster),和小型規模的 vSAN 雙節點叢集運作環境。



關閉 vSAN 叢集

在本文實作環境中,共有二個不同的叢集,分別是 vCenter 管理平台運作的專屬 vSphere 叢集(MGMT-Cluster),以及 HCI 超融合運作架構的 vSAN 叢集(vSAN-Cluster),在 vSAN 叢集內總共部署三台 vSAN 叢集節點主機,已完成 vDS 分佈式虛擬交換器的組態設定,確保 3 台 vSAN 節點主機之間 vSAN Traffic 儲存流量交換順利,並且在相關前置作業完成後,於 vSAN 叢集中啟用 vSAN 超融合功能,以便將三台 vSAN 節點主機的本機儲存裝置,彙整成為高效能和高可用性的 vSAN Datastore 儲存資源(如圖 11 所示)。

圖 11、vSAN 叢集建置完成並運作正常

當 vSAN 叢集必須執行「關閉」(Shutdown)動作時,管理人員只要在 vCenter 管理介面中,依序點選「vSAN Cluster > Actions > vSAN > Shutdown Cluster」項目,系統便會彈出 Shutdown cluster 精靈互動視窗,並且在自動執行關閉 vSAN 叢集的眾多預先檢查工作項目(如圖 12 所示),舉例來說,確保 vSAN 節點主機之間沒有發生通訊不良造成的隔離分割情況、確保 vSAN 儲存物件為健康狀態、使用 HCI Mesh 機制的遠端 VM 虛擬主機是否已經關機……等,確保 vSAN 叢集能夠正確且安全並順利關閉。

圖 12、執行關閉 vSAN 叢集的眾多預先檢查工作項目

在步驟二確認關閉 vSAN 叢集視窗中,系統再次提醒管理人員稍後會執行的相關動作,例如,關閉所有在 vSAN 叢集中運作的 VM 虛擬主機,關閉 vSAN 叢集的 HA 高可用性機制、暫停所有 vSAN 節點主機中 vSAN 儲存物件的狀態、vSAN 節點主機進入維護模式、vSAN 節點主機關機……等,並且在 Shutdown reason 下拉式選單中,選擇此次關閉 vSAN 叢集的理由並鍵入關閉的原因之後,按下 Shutdown 鈕便會立即執行關閉 vSAN 叢集的動作(如圖 13 所示)。

圖 13、確認關閉 vSAN 叢集並選擇此次執行關閉的原因

原則上,預設情況下執行關閉 vSAN 叢集的動作後,運作機制會連系統專用的 VM 虛擬主機也一併關機,舉例來說,維護 vSphere 叢集狀態專用的 vCLS 主機也會一併關機,但是有些系統專用的 VM 虛擬主機可能不會被關機,例如,vSAN 檔案服務虛擬主機、Pod 虛擬主機、NSX 管理主機 …… 等。此外,倘若 vSAN 節點主機啟用「鎖定模式」(Lockdown Mode)時,則 vSAN 節點主機屆時只會進入維護模式而不會自動關機。

在關閉 vSAN 叢集的過程中,管理人員可以從下方工作列看到「Execute power off logic on orchestration host」項目,並且從 Target 欄位也可以看到,此次 vSAN 叢集中選舉出來的協調流程主機角色由誰擔任。同時,管理人員也可以在 vCenter 管理介面中,依序點選「vSAN Cluster > Configure > vSAN > Services」項目,便能即時查看關閉 vSAN 叢集的執行進度和階段(如圖 14 所示)。

圖 14、即時查看關閉 vSAN 叢集的執行進度和階段

當關閉 vSAN 叢集的執行進度達到 100% 完成時,系統確認 vSAN 叢集和 vSAN 節點主機都順利關機後,vSAN Services 頁面內容將會顯示「This vSAN cluster has been shut down.」訊息,並且只剩下「RESTART」鈕(如圖 15 所示),也就是稍後重新啟動 vSAN 叢集時使用。

圖 15、系統顯示已順利關閉 vSAN 叢集和所有 vSAN 節點主機



重新啟動 vSAN 叢集

當資料中心維護動作執行完成後,首先管理人員必須手動為每台 vSAN 節點主機啟動電源,確保 vSAN 叢集中的每台 vSAN 節點主機,皆已經啟動完成並顯示 DCUI 登入畫面後,回到 vCenter 管理介面確認每台 vSAN 節點主機,是否已經從原本未回應且離線的關機狀態,恢復成為連線中的維護模式狀態。

確認後,請在 vCenter 管理介面中,依序點選「vSAN Cluster > Actions > vSAN > Restart Cluster」項目,此時系統將會再次執行眾多預先檢查項目,確保每台 vSAN 節點主機的健康狀態,是否能夠順利讓 vSAN 叢集成功啟用,倘若有任何狀態無法通過預先檢查項目時,Restart vSAN 叢集的精靈視窗中,將會顯示該檢查項目的警告或錯誤資訊,幫助管理人員進行故障排除作業,通過預先檢查並確認重新啟動 vSAN 叢集後,請按下「RESTART」鈕即可(如圖 16 所示)。

圖 16、通過預先檢查項目並確定重新啟動 vSAN 叢集

同樣的,管理人員可以在 vCenter 管理介面中,再次依序點選「vSAN Cluster > Configure > vSAN > Services」項目,即可即時查看重新啟動 vSAN 叢集的執行進度和工作階段(如圖 17 所示)。

圖 17、即時查看重新啟動 vSAN 叢集的執行進度和工作階段

當 vSAN 叢集順利重新啟動後,原有的 vSAN Services 頁面,便會恢復成 vSAN 叢集中,各項 vSAN 服務啟用和組態設定管理畫面(如圖 18 所示)。此時,vSAN 叢集已經成功重新啟動並正常運作。

圖 18、vSAN 叢集成功重新啟動並正常運作





結語

透過本文的深入剖析和實作演練後,相信讀者已經深刻了解到,全新 vSAN 7 U3 版本新增哪些亮眼特色功能,並且實作演練最新的 vSAN 叢集感知智慧工作流機制,讓以往不熟悉 vSAN 叢集運作架構和機制的管理人員,也可以輕鬆達成關閉和重新啟動 vSAN 叢集的維護工作任務。

網管人 197 期 - 啟用內建 SBC 機制單機打造高效軟體定義儲存

$
0
0


網管人雜誌

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





本文目錄






前言

當企業和組織嘗試建立「雲端原生」(Cloud Native)的各項應用時,卻經常會忽略「雲端基礎架構」(Cloud Infrastructure)的重要性,舉例來說,由於雲端基礎架構效能不佳,導致上層的應用中,雖然已經將應用服務拆分為多台 VM 虛擬主機或多個容器或多項微服務,卻因為雲端基礎架構效能不佳,導致各項服務之間溝通緩慢,進而造成整體回應時間過長或等候逾時等問題。

此外,對於中小型企業和組織來說,在 IT 預算並不充足的情況下,經常難以建構完整的雲端基礎架構,舉例來說,擔任運算資源的伺服器數量不多、無法配置高階儲存設備、無法建構 HCI 超融合基礎架構或 SDS 軟體定義儲存環境……等。

因此,在本文中將說明和實戰演練,如何透過最新 Windows Server 2022作業系統中,內建的「儲存匯流排快取」(Storage Bus Cache,SBC)機制,讓「單台主機」(Standalone Server)輕鬆建構出軟體定義儲存環境,為上層各項雲端原生應用程式,提供充足的儲存效能讓上層的 VM 虛擬主機、容器、微服務……等應用,能無後顧之憂盡情發揮效能和靈活性,讓有限的 IT 預算發揮最大的優勢。





SBC 儲存匯流排快取運作架構

在舊版的 Windows Server 運作環境中,獨立伺服器並無法使用 Storage Spaces Direct 相關技術,必須整合多台 Windows Server 並建構容錯移轉叢集後才能使用。

現在,最新的 Windows Server 2022 版本中,單台的獨立伺服器只要硬體配置時,採用混合式的儲存媒體裝置,例如,SSD + HDD 或 NVMe + HDD 的情況下,便能啟用 SBC 儲存匯流排快取機制,讓獨立伺服器能夠大幅提升資料讀取和寫入效能(如圖 1 所示)。

圖 1、獨立伺服器支援 SBC 儲存匯流排快取機制運作架構示意圖





實戰演練 - 獨立伺服器啟用 SBC 快取機制

在本小節實戰演練的部份,將採用最新 Windows Server 2022 伺服器版本,除了安裝 Window Server 2022 作業系統的硬碟之外,額外配置「4 個」容量 300GB 的 SSD 固態硬碟,以及「6 個」容量 1TB 的 HDD 機械式硬碟,這 10 個不同儲存媒介的硬碟裝置,將會透過 Storage Spaces 儲存堆疊技術融合在一起,然後啟用 SBC 儲存匯流排快取機制,達到大幅提升資料讀取和寫入儲存效能,同時具備高靈活性和高可用性的目標。

值得注意的是,當獨立伺服器啟用 SBC 儲存匯流排快取機制時,硬碟類型僅支援混合式儲存架構,例如,NVMe + HDD 或 SSD + HDD(如圖 2 所示),不支援採用 All-Flash 儲存架構,例如,全部 NVMe 或 SSD 或 NVMe + SSD(如圖 3 所示)。





安裝容錯移轉叢集功能

首先,雖然是獨立伺服器的運作環境,但是在啟用 SBC 儲存匯流排快取機制之前,必須為 Windows Server 2022 安裝「容錯移轉叢集」伺服器功能才行,因為系統需要叢集元件才能順利啟用 SBC 儲存匯流排快取機制。

請登入主機後依序點選「Server Manager > Manage > Add Roles and Features > Role-based or feature-based installation > Failover Clustering」項目,進行伺服器功能的安裝即可(如圖 4 所示),或執行 PowerShell 指令「Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools」進行安裝作業。

圖 4、為獨立伺服器安裝容錯移轉叢集伺服器功能

值得注意的是,雖然為獨立伺服器安裝容錯移轉叢集伺服器功能,但是它並不能加入任何一個容錯移轉叢集中,也就是它不能成為任何一個容錯移轉叢集的成員節點主機。

簡單來說,獨立伺服器要能成功啟用 SBC 儲存匯流排快取機制,必須滿足三個條件分別是,採用 Windows Server 2022 伺服器版本,採用混合式儲存架構、安裝容錯移轉叢集伺服器功能。倘若,主機有下列任一情況出現時,便無法成功啟用 SBC 儲存匯流排快取機制:
  • 採用 Windows Server 2019 或更舊的伺服器版本。
  • 採用 All-Flash 全快閃儲存架構。
  • 主機已經加入容錯移轉叢集成為叢集中的成員節點主機。



調整部署模式和快取百分比

在正式啟用 SBC 儲存匯流排快取機制之前,請先在 PowerShell 視窗中執行「Get-PhysicalDisk | Sort-Object Size」指令,確認獨立伺服器額外配置的儲存裝置(如圖 5 所示),可以看到總共配置 4 個 300GB 的 SSD 固態硬碟,以及 6 個 1TB 的 HDD 機械式硬碟,並且除了安裝 Windows Server 2022 的系統磁碟之外,其餘額外配置的硬碟在「CanPool」欄位皆為「True」,表示這些硬碟稍後可以加入 Storage Pool 當中。

圖 5、獨立伺服器額外配置 4 個 300GB 的 SSD 固態硬碟和 6 個 1TB 的 HDD 機械式硬碟

接著,執行「Get-StorageBusCache」指令,查詢系統預設的 SBC 儲存匯流排快取進階參數值內容,例如,部署模式和快取百分比(如圖 6 所示)。因為,一旦獨立伺服器啟用 SBC 儲存匯流排快取機制後,這些進階參數值內容系統將會自動鎖定且無法進行任何變動,所以管理人員倘若希望調整進階參數值內容的話,必須在啟用 SBC 儲存匯流排快取機制之前進行調整才行。

圖 6、查詢系統預設的 SBC 儲存匯流排快取進階參數值內容

原則上,資料存取類型為一般用途時,管理人員無須調整任何系統預設值,倘若需要調整也建議僅調整部署模式和共用取快百分比即可,其它進階欄位並不建議調整。下列為 SBC 儲存匯流排快取進階參數值內容各項欄位說明:
  • ProvisionMode:部署模式,在 SBC 儲存匯流排快取架構中共支援兩種部署模式,分別是「共享」(Shared)「快取」(Cache),系統預設值為採用「共享」部署模式。簡單來說,採用共享部署模式時,資料快取空間僅會佔用較快媒體裝置,例如,SSD 或 NVMe 的固定百分比,而採用快取部署模式時,則資料快取空間會佔用較快媒體裝置的所有儲存空間。管理人員可以執行 PowerShell 的「Set-StorageBusCache -ProvisionMode Cache」指令,即可調整為快取部署模式。
  • SharedCachePercent:共用快取百分比,當採用共享部署模式時此進階參數值才會套用生效,系統預設值為「15%」,管理人員可以調整的百分比範圍為「5% - 90%」。值得注意的是,當管理人員規劃採用「鏡像加速同位元」(Mirror-Accelerated Parity)磁碟區時,共用快取百分比不建議使用超過「50%」,因為必須快取資料和鏡像層級之外必須保持平衡,否則儲存比例失衡的情況下將會影響儲存效能造成反效果。舉例來說,管理人員可以執行 PowerShell 的「Set-StorageBusCache -SharedCachePercent 30」指令,將共用快取百分比調整至 30%。
  • CacheMetadataReserveBytes:中繼資料儲存空間,當採用快取部署模式時此進階參數值才會套用生效,系統預設建立 32GB 儲存空間,用途為存放屆時 Storage Pool 和 Virtual Disk 等中繼資料。
  • CacheModeHDD: HDD 儲存層級快取模式,系統預設採用「ReadWrite」組態設定,表示允許 HDD 儲存層級快取資料的方式為讀取和寫入。當管理人員規劃採用「簡單空間」(Simple Space)磁碟區時,則快取資料方式支援「ReadWrite」或「WriteOnly」類型。
  • CacheModeSSD: SSD 儲存層級快取模式,系統預設採用「WriteOnly」組態設定,表示 SSD 儲存層級快取資料的方式為寫入。
  • CachePageSizeKBytes:快取資料大小,系統預設為「16 KB」,管理人員可以視資料型態調整大小為「8 KB、16 KB、32 KB、64 KB」。
  • Enabled :確認 SBC 儲存匯流排快取機制,是否為啟用狀態。



啟用 SBC 儲存匯流排快取機制

獨立伺服器運作環境準備完畢,並且管理人員依據需求調整 SBC 儲存匯流排快取進階參數值內容後,請執行 PowerShell 的「Import-Module StorageBusCache」指令,匯入 SBC 儲存匯流排快取 Cmdlet。

接著,執行「Enable-StorageBusCache」指令,系統將會自動執行多個動作,以便將 SSD 固態硬碟和 HDD 機械式硬碟融合在一起,包括,將所有硬碟融合後建立 Storage Pool、自動為較快的 SSD 固態硬碟和較慢的 HDD 機械式硬碟建立儲存層級、新增並啟用 SBC 儲存匯流排快取機制……等。

順利啟用 SBC 儲存匯流排快取機制後,執行「Get-StoragePool」指令,查看系統自動建立的 Storage Pool 資訊,並再次執行「Get-PhysicalDisk」指令,可以發現融合後的 SSD 固態硬碟和 HDD 機械式硬碟,在「Number」欄位數值改變為大於 500,表示該儲存裝置已經被 SBC 儲存匯流排快取機制,宣告為使用中的儲存裝置,並且「CanPool」欄位也從原本的 True 改變為「False」(如圖 7 所示)。
倘若採用快取部署模式時,Usage 欄位中 SSD 固態硬碟將會改變為「Journal」。
圖 7、啟用 SBC 儲存匯流排快取機制

管理人員可以再次執行「Get-StorageBusCache」指令,確認目前 SBC 儲存匯流排快取的部署模式,以及「Enabled」欄位是否為「True」,確認系統已經正確啟用。此外,管理人員應該好奇,6 個 HDD 機械式硬碟如何使用 SSD 固態硬碟,從剛才的「Get-PhysicalDisk」指令結果中,可以看到 SSD 固態硬碟的編號為「506 - 509」,而 HDD 機械式硬碟的編號為「500 - 505」,請執行「Get-StorageBusBinding」指令,可以看到哪個 HDD 機械式硬碟使用哪個 SSD 固態硬碟,例如,本文實作環境中,編號 500 的 HDD 機械式硬碟搭配使用編號 509 的 SSD 固態硬碟(如圖 8 所示)。

圖 8、確認 SBC 儲存匯流排快取啟用狀態和檢查儲存裝置繫結狀態



建立磁碟區

現在,管理人員可以依據需求,建立不同用途的磁碟區,在 SBC 儲存匯流排快取儲存架構中,可以建立具備災難復原機制的「鏡像加速同位」,但快取類型僅「讀取」的磁碟區,或是建立無法容忍任何硬碟故障的「Simple」,但快取類型支援「讀取和寫入」的磁碟區。

在本文實作環境中,鍵入 PowerShell 指令「New-Volume –FriendlyName "Mirror-Parity" -FileSystem ReFS -StoragePoolFriendlyName Storage* -StorageTierFriendlyNames MirrorOnSSD,ParityOnHDD -StorageTierSizes 200GB,800GB」,建立鏡像加速同位類型且儲存空間為 1TB 的磁碟區,其中佔用 200GB 位於 SSD 固定態硬碟的鏡像層,以及 800GB 位於 HDD 機械式硬碟中的同位層所組成。

接著鍵入 PowerShell 指令「New-Volume -FriendlyName "TestVolume" -FileSystem ReFS -StoragePoolFriendlyName Storage* -ResiliencySettingName Simple -Size 1TB」,建立 Simple 類型儲存空間為 1TB 的磁碟區,具備讀取和寫入快取機制,但無法容忍任何硬碟發生故障。

完成建立兩種不同類型的磁碟區後,鍵入 PowerShell 指令「Get-VirtualDisk」,查詢磁碟區健康情況和相關資訊,可以看到建立的 1TB 鏡像加速同位類型磁碟區,其實在 Storage Pool 中佔用 1.76TB 儲存空間,這也是為何鏡像加速同位類型磁碟區具備災難復原的原因(如圖 9 所示)。

圖 9、建立鏡像加速同位類型和 Simple 類型的磁碟區

值得注意的是,剛才建立的磁碟區並未指定磁碟區代號,為了稍後方便測試災難復原機制,可以透過 PowerShell 指令,先以「Get-Disk」查詢要指定磁碟機代號的磁碟,接著以「Get-Partition -DiskNumber」查詢磁碟中的分割區,之後執行「Set-Partition -NewDriveLetter」指令,即可指定磁碟機代號,最後以「Get-Volume」指令確認磁碟機代號是否套用生效,可以看到本文實作環境中指派,鏡像加速同位類型磁碟區採用「M」而 Simple 類型採用「S」磁碟機代號(如圖 10 所示)。

圖 10、為鏡像加速同位和 Simple 指定磁碟機代號



擴充磁碟區儲存空間

因應企業和組織不斷成長的專案需求,一開始建立的磁碟區儲存空間可能會發生不足的情況。此時,管理人員能夠輕鬆透過 PowerShell 指令,擴充原有的磁碟區儲存空間,值得注意的是鏡像加速同位類型和 Simple 類型的磁碟區,這兩種不同類型的磁碟區作法可能稍有不同,並且了解儲存架構的階層,從上層的「Volume > Partition > Disk > Virtual Disk」到底層的「Storage Tier」,這將有助於擴充磁碟區儲存空間工作任務(如圖 11 所示)。


首先,執行「Get-VirtualDisk」指令,了解磁碟區的 FriendlyName,接著搭配「Get-StorageTier」指令,檢查需要擴充儲存空間的磁碟區是否使用儲存層,在本文實作環境中,Simple 類型磁碟區便沒有使用儲存層,而鏡像加速同位類型磁碟區則有使用儲存層(如圖 12 所示)。

圖 12、檢查需要擴充儲存空間的磁碟區是否使用儲存層

針對沒有使用儲存層的磁碟區,可以直接使用「Resize-VirtualDisk -Size」指令擴充磁碟區儲存空間。針對 1TB 的 Simple 類型磁碟區,先將底層的 VirtualDisk 儲存空間進行擴充,請執行「Get-VirtualDisk Simple | Resize-VirtualDisk -Size 1.5TB」指令,即可看到 VirtualDisk 已經從原本的 1TB 擴充為 1.5TB,但磁碟區的部份仍顯示為 1TB 儲存空間(如圖 13 所示)。
擴充 VirtualDisk 儲存空間時,系統將會針對 Disk 進行擴充,管理人員可以執行「Get-VirtualDisk Simple | Get-Disk」指令進行確認。
圖 13、擴充 Simple 類型磁碟區的 VirtualDisk 儲存空間

順利擴充 VirtualDisk 儲存空間後,可以透過「Get-Partition | Where PartitionNumber -Eq 2」指令,指定磁碟區中的 PartitionNumber =2 進行分割區擴充儲存空間的工作任務,最後執行「Get-Volume S」指令,確認 Simple 類型磁碟區已經順利擴充至 1.5TB 的儲存空間(如圖 14 所示),並且資料讀取和寫入也正常無誤。

圖 14、順利擴充 Simple 類型磁碟區至 1.5TB 的儲存空間

和擴充 Simple 類型磁碟區工作任務類似,只是在擴充 VirtualDisk 的部份,必須先針對鏡像加速同位類型磁碟區的儲存層進行擴充之後,才進行分割區擴充的工作任務。首先,執行「Get-VirtualDisk Mirror-Parity | Get-StorageTier」指令,確認每個儲存層級的儲存空間大小,在本文實作環境中,僅將 HDD 機械式硬碟的儲存空間,由原本的 800GB 擴充為 1TB 儲存空間,至於 SSD 固態硬碟儲存層則保持原有的 200GB,之後再執行「Resize-Partition」指令擴充鏡像加速同位類型磁碟區分割區,最後執行「Get-Volume M」指令,確認鏡像加速同位類型磁碟區已經順利擴充至 1.2TB 的儲存空間(如圖 15 所示),並且資料讀取和寫入也正常無誤。
執行擴充 VirtualDisk 儲存空間之前,可以透過「Get-StorageTierSupportedSize」指定,確認 Storage Pool 還有多少儲存空間能夠執行擴充工作任務。
圖 15、順利擴充鏡像加速同位類型磁碟區至 1.2TB 的儲存空間



擴充 Storage Pool 儲存空間

當磁碟區空間不足時,管理人員可以透過上述 PowerShell 指令,線上擴充鏡像加速同位和 Simple 類型磁碟區儲存空間。同樣的,最底層 Storage Pool 儲存空間不足時,可以為 Windows Server 2022 主機,額外增加實體 SSD 固態硬碟或 HDD 機械式硬碟,以便擴充底層 Storage Pool 儲存空間。

在本文實作環境中,為 Windows Server 2022 主機再新增 1 個 300GB 的 SSD 固態硬碟,以及 2 個 1TB 的 HDD 機械式硬碟,執行「Get-StoragePool」指令,確認目前 Storage Pool 的整體空間為 6.99TB,並且透過「Get-PhysicalDisk」指令,可以看到稍後要加入 Storage Pool 的 3 個硬碟,並且 CanPool 欄位為「True」(如圖 16 所示)。

圖 16、準備將新增的 SSD 固態硬碟和 HDD 機械式硬碟加入 Storage Pool

執行「Update-StorageBusCache」指令,系統便會自動將 SSD 固態硬碟和 HDD 機械式硬碟,加入至 Storage Pool 整體儲存空間當中,完成後再次執行「Get-StoragePool」指令,可以看到 Storage Pool 儲存空間,由原本的 6.99TB 擴充為「9.23TB」,並且所有的硬碟 CanPool 欄位皆為「False」(如圖 17 所示)。

圖 17、順利擴充 Storage Pool 儲存空間

實務上,需要擴充 Storage Pool 儲存空間時,表示原有的硬碟中儲存空間已經耗盡,新加入的硬碟則是許多儲存空間,這表示資料的分佈並不平均會影響資料讀取和寫入效能,建議管理人員在加入新的硬碟之後,執行「Get-StoragePool Storage* | Optimize-StoragePool」指令,針對 Storage Pool 執行資料「最佳化」(Optimize)「重新平衡」(Rebalance)的工作任務。

順利加入新增的 SSD 固態硬碟和 HDD 機械式硬碟後,執行「Get-StorageBusBinding」指令,再次查看 SSD 固態硬碟和 HDD 機械式硬碟的對應關係(如圖 18 所示)。

圖 18、查看 SSD 固態硬碟和 HDD 機械式硬碟的對應關係

值得注意的是,新增硬碟並不會影響資料「讀取快取」的部份,因為先前執行「Enable-StorageBusCache」指令後,系統便會自動鎖定進階功能,無法變更部署模式、共用快取百分比、快取模式和對應關系……等,管理人員只能透過「Remove-StorageBusBinding」和「New-StorageBusBinding」重新指定快取模式對應關系,但是將會遺失現有的「讀取快取」。



災難復原測試

無論儲存架構多麼靈活並具備高效能,倘若無法承受災難事件,例如,SSD 固態硬碟或 HDD 機械式硬碟故障損壞,相信無法被企業和組織所接受。

現在,針對 Windows Server 2022 主機,分別隨機移除 1 個 SSD 固態硬碟和 2 顆 HDD 機械式硬碟,模擬硬碟發生故障損壞的情況,驗證剛才建立的鏡像加速同位類型和 Simple 類型,是否能夠承受災難事件資料不致遺失或損壞,並驗證災難事件發生後磁碟區能否繼續進行資料讀取和寫入等動作。

執行「Get-StoragePool」指令,可以看到 Storage Pool 的健康狀態欄位 OperationalStatus 和 HealthStatus,從原本的「OK、Healthy」轉變成目前發生災難事件的「Degraded、Warning」,表示雖然有硬碟發生故障損壞,但是 Storage Pool 整體仍然能夠正常運作。

執行「Get-VirtualDisk」指令,可以看到 VirtualDisk 健康狀態欄位的轉變,其中 Simple 類型磁碟區從原本的「OK、Healthy」變為「No Redundancy、Unhealthy」,並且磁碟機「S :」已經無法存取,而鏡像加速同位類型磁碟區從原本的「OK、Healthy」變為「Degraded,Incomplete、Warning」,並且磁碟機「M :」仍然能夠正常存取進行資料讀取和寫入,表示鏡像加速同位類型具備災難復原的能力,而 Simple 類型則無。

最後,執行「Get-PhysicalDisk」指令,可以看到發生故障損壞的實體硬碟,除了硬碟代號消失之外,在健康狀態欄位的轉變從原本的「OK、Healthy」,轉變為「Lost Communication、Warning」狀態(如圖 19 所示)。

圖 19、查詢 Storage Pool、VirtualDisk、實體硬碟健康狀態

後續,管理人員只要為 Windows Server 2022 主機,更換故障損壞的實體硬碟,然後確認系統偵測到新加入的實體硬碟,並且 CanPool 欄位為「True」之後,再次執行「Update-StorageBusCache」指令,即可成功更換故障損壞的實體硬碟,並將新增的實體硬碟加入 Storage Pool 儲存空間內。





結語

透過本文的深入剖析和實戰演練後,相信管理人員對於最新 Windows Server 2022 作業系統中,內建的 SBC 儲存匯流排快取機制,確實能為中小型的企業和組織,以最少的 IT 預算提供高靈活性和高儲存效能方案。

[站長開講] Cloud Summit Taiwan 2022

$
0
0


活動簡介

儘管人們都期盼疫情早日告終,但不幸的,你我與病毒共存、已經邁入第三個年頭,舉凡停工、國際邊境封閉、原物料供應斷鏈、砍單延單頻仍等等情況,至今依舊時有所聞;換言之,近年崛起的全球供應鏈短鏈化、零接觸商機、混合式辦公等等,仍將繼續成為常態、而不只是過度場景。

假使到了今日,企業依然與地端機房、傳統 IT 採購模式、單體式應用架構、瀑布式開發流程等舊有的慣性為伍,恐將無法順利駕馭接踵而來的疫常經濟型態,使得營運拓展的步伐日益受限。

唯今之計,企業有必要放低身段、提升眼界,認真地盤點自身的技術缺口,透過不斷的鍛鍊與實作,逐漸突破窠臼,一步步向Kubernetes、DevOps、Microservices、Serverless、APIM、Multi-Cloud…等雲原生架構靠攏,加速鏈結並純熟運用大數據、AI/ML、AR/VR、虛實整合等先進技術,強化企業的數位競爭力,以便能夠從容推動疫常商機新佈局。

新的一年,一方面各項雲原生技術持續演進、翻轉,二方面企業所承受的供應鏈管理、ESG落實等壓力越來越大;為響應廣大會眾的期許,2022臺灣雲端大會特別擴大議程與展覽規模,並新增四場主題論壇,1.Cloud Native Enterprise 2.DevOps Enterprise 3. AI Enterprise 4.Cloud Security。 現在,就讓我們擁抱雲邊端科技,以堅強的數位力來強化營運韌性,迎接未來所有變局。





活動資訊












站長議程和 Hands-On Lab




網管人 198 期 - 實戰 TCE 託管工作負載叢集整合 MetalLB 負載平衡機制

$
0
0


網管人雜誌

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





本文目錄






前言

先前的技術專欄中,已經實作適用於研發和測試環境,建構基於 Kubernetes 叢集技術的 VMware Tanzu 容器平台。然而,在預設情況下,部署 TCE 託管叢集引導程序中,無論選擇採用預設的「Kube-vip」,或需要事先建置且購買軟體授權的「NSX Advanced Load Balancer」負載平衡機制,都僅適用於 TCE 管理叢集,而非實際運作容器的 TCE 工作負載叢集,這對於實際需要存取容器服務的使用者來說,無疑是一大困擾。

因此,在本文中將說明和實戰演練,部署適用於營運環境的 TCE 託管叢集架構,並且整合 CNCF(Cloud Native Computing Foundation) 中,於 Orchestration & Management 類別中 Service Proxy 項目內,知名的 MetalLB 網路負載平衡機制,確保部署應用服務容器至 TCE 工作負載叢集時,能夠透過 MetalLB 負載平衡機制,在應用服務容器之前處理各式請求流量(如圖 1 所示),然後正確將請求流量重新導向至 TCE 工作負載叢集內運作的容器服務。

圖 1、TCE 容器平台部署和應用服務負載平衡架構運作示意圖





MetalLB 運作架構

MetalLB 負載平衡機制,可以輕鬆整合至 Kubernetes 叢集運作架構中,並且使用標準的路由通訊協定,例如,Layer 2 Mode(ARP 和 NDP)、BGP,以便外部使用者能夠順利感知 Kubernetes 叢集中,由 MetalLB 提供的負載平衡 IP 位址,進而導向至 Kubernetes 叢集中的容器服務。

當 MetalLB 採用 Layer 2 部署模式時,倘若網路環境為「IPv4」時則採用 ARP 通訊協定,倘若為「IPv6」網路環境時則採用 NDP 通訊協定,以便外部存取者能夠順利路由至內部容器服務中。當採用 BGP 部署模式時,Kubernetes 叢集中所有節點主機都會建立 BGP 機制,以便和網路環境中所有的路由器建立 Peering Sessions,達到跨多個網路節點的負載平衡機制,並且可以進行更精細的網路流量管控(如圖 2 所示)。

圖 2、MetalLB 負載平衡機制 BGP 部署模式運作架構示意圖





實戰 – TCE on vSphere 整合 MetalLB 負載平衡機制

在實戰演練小節中,將帶領管理人員一步一步,把最新版本的 TCE 容器平台部署在 VMware vSphere 7 虛擬化環境中,然後整合輕巧易用功能強大的 MetalLB 負載平衡機制,為屆時運作的眾多容器服務完成網路流量負載平衡的目的。

首先,透過「tanzu cluster」指令,部署「引導叢集」(Bootstrap Cluster),然後部署用於正式營運環境的「託管叢集」(Managed Cluster)架構,當引導叢集建立管理叢集後,便會開始將所有管理物件移動至「管理叢集」(Management Cluster)(如圖 3 所示)。

圖 3、引導叢集部署託管叢集架構中的管理叢集流程示意圖

一旦管理叢集運作架構成形後,系統便會接著部署託管叢集中的「工作負載叢集」(Workload Cluster)。值得注意的是,管理叢集只需要一個即可,並依據需求建立多個不同用途的工作負載叢集(如圖 4 所示)。

圖 4、引導叢集部署管理叢集和工作負載叢集程序示意圖



建構 Tanzu CLI 管理主機

在部署 TCE 託管叢集架構之前,必須額外準備好一台機器擔任 Tanzu CLI 管理主機,以便稍後執行 TCE 託管叢集的初始化部署流程。管理人員可以依據管理喜好,將 Tanzu CLI 指令工具集安裝在 Linux / Mac / Windows 環境中,本文實作環境為 Windows 主機安裝 Tanzu CLI 指令工具集。值得注意的是,Tanzu CLI 管理主機的記憶體,至少要大於「6 GB」以上,否則屆時相關引導容器將會出現資源不足而發生部署失敗的情況,或遭遇到非預期的錯誤。

在 Windows 運作環境中,必須先安裝 PowerShell 中的 Chocolatey 套件安裝管理工具,接著完成「kubectl、Docker Desktop、WSL2」運作環境後,便能順利安裝 Tanzu CLI 指令工具。倘若,這台 Tanzu CLI 管理主機無法接觸網際網路的話,請先至 TCE GitHub 專案頁面手動下載後進行離線安裝。
Windows 主機倘若為 VM 虛擬主機時,管理人員必須啟用 VM 虛擬主機支援 Intel VT-x/EPT 硬體輔助虛擬化功能,否則屆時 Docker Desktop 服務將會啟動失敗。

確認 Chocolatey 套件安裝管理工具,執行下列 PowerShell 指令,即可達成安裝 kubectl、Docker Desktop、Tanzu CLI 的目的(如圖 5 所示),管理人員可以加上「--version」參數,指定希望安裝的版本,舉例來說,本文實作環境中倘若未加上指定版本參數時,預設將會安裝前一版 v0.11 版本,但 TCE 已經於日期發佈最新的 v0.12 版本,此時便可以加上參數安裝指定版本。
管理人員必須先安裝 kubectl 和 Docker Desktop,否則在安裝 Tanzu CLI 的過程中將會因為環境檢查環境,發生缺少相關元件而導致錯誤。

值得注意的是,倘若採用手動下載離線安裝的方式時,必須在安裝好 Tanzu CLI 指令工具後,手動將「C:\Program Files\tanzu」路徑,加入至 Windows 主機環境變數當中。
choco install kubernetes-cli
choco install docker-desktop
choco install tanzu-community-edition --version=0.12

圖 5、透過 Chocolatey 工具安裝 kubectl、docker desktop、Tanzu CLI 指令工具



產生 SSH 加密金鑰

部署 TCE 託管叢集時,Tanzu CLI 主機會需要與 vCenter 管理平台進行通訊,此時會使用 SSH-2 RSA 4096-bit 的 SSH 加密金鑰進行通訊作業,所以先在 Tanzu CLI 主機上,執行「ssh-keygen -t rsa -b 4096」指令產生 SSH 加密金鑰對,以便稍後部署時使用。值得注意的是,預設情況下產生的 SSH 加密金鑰對中,「id_rsa」檔案為 SSH 加密金鑰中的「私有金鑰」(Private Key),而「id_rsa.pub」則是「公開金鑰」(Public Key),稍後與 vCenter 管理平台通訊時將會需要公開金鑰內容。

執行「ssh-agent 和 ssh-add」指令,將剛才產生 SSH 加密金鑰對中的私有金鑰內容,儲存至 Windows 安全性內容中,系統會將其和目前登入的 Windows 使用者帳號進行關聯,稍後部署 TCE 託管叢集需要進行通訊驗證作業時,啟動的 ssh-agent 系統服務會自動擷取剛才匯入的私有金鑰內容,並自動傳送給 SSH 用戶端進行驗證(如圖 6 所示)。

圖 6、啟動 ssh-agent 系統服務並透過 ssh-add 匯入 SSH 私有金鑰



部署 TCE 範本映像檔至 vSphere 虛擬化平台

首先,請確保採用「vSphere 6.7 U3 或 vSphere 7」版本的 vSphere 虛擬化環境,才能順利支援並部署 TCE 託管叢集,接著前往 VMware Customer Connect 網站,下載由 VMware 官方打包好運作環境的 OVA 檔案。

目前,VMware 官方支援採用 Photon OS v3 和 Ubuntu 2004 系統建構的容器平台,屆時便是負責運作和承載 TCE 管理叢集和工作負載叢集,本文實作環境採用最新發佈 TCE v0.12 版本,搭配最新發佈「Photon v3 Kubernetes v1.22.8」的 OVA 版本。當然,管理人員也可以依據運作環境需求,選擇維運人員偏好的 Kubernetes 版本。

順利下載 OVA 檔案後,請在 vCenter 管理介面中,依序點選「Datacenter > Actions > Deploy OVF Template」項目,在 Deploy OVF Template 視窗中,請依序點選「Local file > UPLOAD FILES」選項,然後選擇剛才下載完成的 OVA 檔案。

在 Select a name and folder 頁面中,請設定匯入的 VM 虛擬主機名稱,本文實作採用預設的「photon-3-kube-v1.22.8」名稱,並部署在 Datacenter 中的「TCE」資料夾內,在 Select a compute resource 頁面中,選擇本文實作環境中用於 TCE 工作負載的「K8s-Cluster」,在 Review details 頁面中,確認部署資訊無誤後按下 Next 鈕繼續部署程序。

在 Select Storage 頁面中,選擇採用的 Datastore 儲存資源,並指定使用 Thin Provision 或 Thick Provision 虛擬硬碟格式,在 Select networks 頁面中,選擇本文實作環境中用於 TCE 工作負載的「TCE-Network」虛擬網路。最後,在 Ready to complete 頁面中,再次確認所有部署資訊,確認無誤後按下 Finish 鈕,便開始進行部署作業。此時,從 vCenter 管理介面下方 Recent Tasks 工作列中,可以看到二項工作任務「Import OVF package」和「Deploy OVF template」執行中。

值得注意的是,這是用於部署 TCE 託管叢集和工作負載叢集的基礎映像檔,所以必須將匯入後的 VM 虛擬主機格式,轉換為「VM 範本」(VM Template)格式才行。請在匯入 OVF 的工作任務完成後,點選名稱為「photon-3-kube-v1.22.8」的虛擬主機後,依序點選「Actions > Template > Convert to Template > Yes」,確認該台 VM 虛擬主機已經轉換為 VM 範本格式,並存放在 TCE 資料夾中(如圖 7 所示)。

圖 7、將 photon-3-kube-v1.22.8 虛擬主機轉換為 VM 範本格式



部署 TCE 管理叢集

請切換至 Tanzu CLI 管理主機,執行「tanzu management-cluster create --ui」指令,系統將會啟動 kickstart UI 進行 TCE 託管叢集初始化部署流程。簡單來說,整個部署流程大約分為二個步驟,第一步是部署 TCE 管理叢集,接著則是部署 TCE 工作負載叢集(如圖 8 所示)。
TCE 安裝程序也支援部署至地端 Docker 容器環境,和 AWS 及 Azure 公有雲環境。
圖 8、TCE 託管叢集初始化部署流程示意圖

在本文實作環境中,請按下 VMware vSphere 區塊中的 Deploy 鈕進行部署作業,在安裝流程步驟一的 IaaS Provider 頁面中,請鍵入 vCenter Server 名稱和管理帳號及密碼後按下 Connect 鈕,通過管理者身份驗證程序後,選擇準備部署 TCE 託管叢集的 vSphere Datacenter,並貼上剛才建立 SSH 加密金鑰中的公開金鑰內容(如圖 9 所示)。

圖 9、鍵入 vCenter 管理平台的管理人員帳號密碼資訊和 Tanzu CLI 主機 SSH Public Key

在 Management Cluster Settings 頁面中,管理人員將指定屆時 TCE 託管叢集的運作規模。在 Development 和 Production 選項中,兩者最主要的差別在於,稍後部署的 TCE 託管叢集的「控制平面節點」(Control Plane Node)數量,選擇 Development 只會建立「1 台」控制平面節點,而選擇 Production 選項則會一次建立「3 台」控制平面節點。在本文實作環境中,選擇 Development 選項中控制平面節點規模為「Large(CPU : 4,RAM : 16GB,Disk : 40GB)」。

在 Management Cluster Name 欄位中,請鍵入在部署 TCE 託管叢集所要採用的名稱,本文實作為「tce-cluster」,在 Control Plane Endpoint Provider 下拉選單中,管理人員可以選擇採用預設的「Kube-vip」或「NSX Advanced Load Balancer」,在 Control Plane Endpoint 欄位,請鍵入屆時 TCE 託管叢集中控制平面節點的 VIP 位址,本文實作為「10.10.75.50」,在 Worker Node Instance Type 下拉選單中,選擇工作負載叢集的規模為「Small(CPU : 2,RAM : 4GB,Disk : 20GB)」,最後本文實作為測試環境用途所以不勾選「Enable Audit Logging」選項(如圖 10 所示)。
請注意  ! Management Cluster Name 欄位,目前僅支援「英文小寫」開頭,以及「數字和 - 及 .」,其它字元尚未支援,例如,尚未支援「英文大寫」名稱。
圖 10、組態設定 TCE 託管叢集名稱和控制平面 VIP 位址

在 VMware NSX Advanced Load Balancer 頁面中,可以整合 NSX 進階負載平衡器機制,在本文實作環境中並不需要,請直接按下 Next 鈕至下一個部署流程。在 Metadata 頁面中,目前並不需要額外定義中繼資料,請直接按下 Next 鈕至下一個部署流程。

在 Resources 頁面中,請於 VM Folder 欄位中選擇先前為 TCE 環境建立的 VM 資料夾,本文實作為「/Datacenter/vm/TCE」,在 Datastore 欄位則是選擇要採用的儲存資源,在 Clusters,Hosts,and Resource Pools 欄位,選擇要採用的 vSphere 運算資源,本文實作選擇使用 vSphere 虛擬化環境中準備的「K8s-Cluster」。

在 Kubernetes Network 頁面中,請組態設定 TCE 託管叢集所要使用的 vNetwork 虛擬網路,在 Network Name 欄位中,請選擇使用的 vSphere vSwitch 虛擬交換器,本文實作為「/Datacenter/network/TCE-Network」,至於 Cluster Service CIDR 和 Cluster Pod CIDR 欄位,則是屆時容器會使用到的 IP 位址網路,請採用系統預設值即可。值得注意的是,這些系統預設值網段,倘若和企業或組織內部網路互相衝突時,則需要修改成不同網段。
連接的 vSwitch 虛擬交換器,必須和前述第二步驟中控制平面 VIP 位址同一個網段,並且必須支援 DHCP 自動派發 IP 位址機制。

在 Identity Management 頁面中,管理人員可以組態設定使用者身份驗證機制,目前 TCE 運作環境中支援 OIDC 或 LDAPS 通訊協定,在目前測試用途的 TCE 託管叢集中並不需要,所以直接按下 Next 鈕至下一個部署流程。

在 OS Image 頁面中,便是選擇先前上傳到 vSphere 虛擬化環境中 OVA,並且將 VM 虛擬主機轉換為 VM Template 的印象檔,這便是稍後部署 TCE 託管叢集時,所要採用的 Base OS Image 印象檔。本文實作為「/Datacenter/vm/TCE/photon-3-kube-v1.22.8」。

完成上述八項組態設定後(如圖 11 所示),按下 Review Configuration 鈕,再次檢視組態設定內容是否正確,確認無誤後按下「Deploy Standalone Cluster」鈕,便立即開始 TCE 託管叢集的部署工作任務。在本文實作環境中,大約花費「18 分鐘」時間便部署完成 TCE 託管叢集。

此外,管理人員剛才的所有組態設定,系統將會自動儲存於 Tanzu CLI 主機中,路徑為「${HOME}/.config/tanzu/tkg/clusterconfigs」組態設定檔內,便於管理人員後續查看內容或再次進行部署作業。

圖 11、開始部署 TCE 託管叢集至 vSphere 虛擬化環境

當 TCE 託管叢集部署作業完成後,切換至 vSphere 虛擬化環境中,從 vCenter 管理介面可以看到,已經部署完成二台 VM 虛擬主機,其中一台為 TCE 託管叢集的控制平面主機,名稱開頭為「tce-cluster-control-plane」,另一台則是屆時運作各式容器的工作負載節點主機。此外,剛才部署流程中設定的控制平台 VIP 位址「10.10.75.50」,也已經由系統自動設定至控制平面主機(如圖 12 所示)。

圖 12、確認控制平面主機和工作負載節點主機運作狀態



驗證並連線至 TCE 管理叢集

確認 TCE 託管叢集部署完成並運作正常後,請從 Tanzu CLI 主機鍵入「tanzu login」指令,選擇要連接的管理叢集名稱「tce-cluster」後,系統會採用預設儲存於本機的 kubeconfig 內容,路徑為「C:\Users\Weithenn\.kube\config\tanzu」進行驗證,成功通過驗證程序後,即可看到成功連線至 TCE 管理叢集。接著,鍵入「tanzu management-cluster get」指令,確認 TCE 管理叢集是否已經啟動完成,也就是 READY 欄位是否都顯示為 True(如圖 13 所示)。

圖 13、驗證連線並登入 TCE 管理叢集後,確保管理叢集啟動完成

執行「tanzu management-cluster kubeconfig get tce-cluster --admin」指令,擷取系統中儲存的 TCE 管理叢集 kubeconfig 內容,並且把通過驗證程序的憑證儲存,執行「kubectl config use-context tce-cluster-admin@tce-cluster」指令進行切換叢集作業後,執行「kubectl get nodes」指令,確認 Tanzu CLI 主機已經可以順利跟 TCE 管理叢集的 API 服務進行互動(如圖 14 所示)。

圖 14、查看 K8s 叢集的控制平面和各個節點主機資訊



部署 TCE 工作負載叢集

完成 TCE 管理叢集的部署作業後,接著部署 TCE 工作負載叢集。簡單來說,我們可以直接複製剛才用於部署 TCE 管理叢集的 YAML 檔案後,進行組態內容的修改後即可部署 TCE 工作負載叢集。首先,切換到儲存 TCE 管理叢集的 YAML 檔案路徑「C:\Users\Weithenn\.config\tanzu\tkg\clusterconfigs」,將剛才部署產生的 TCE 管理叢集的 YAML 檔案複製為「workload01.yaml」。

原則上,只需要依據運作環境需求修改相關欄位的內容即可,本次實作環境修改 2 個欄位內容,首先是指定 TCE 工作負載叢集名稱的「CLUSTER_NAME」,工作負載叢集名稱不得超過「42 個字元」,並且必須符合 RFC1123 的要求,倘若未指定的話系統屆時將會產生隨機名稱。

接著是指定 TCE 工作負載叢集中控制平面 IP 位址的「VSPHERE_CONTROL_PLANE_ENDPOINT」,這個 IP 位址就是屆時工作負載叢集的 API Server,管理人員必須確保這個 IP 位址,在 DHCP 伺服器配發的 IP 位址範圍之外。本文實作環境,組態設定 TCE 工作負載叢集名稱為「workload01」,而 API Server 的 IP 位址為「10.10.75.60」。

執行「tanzu cluster create workload01 --file workload01.yaml」指令,開始部署 TCE 工作負載叢集,大約 10 分鐘左右即可部署完成,同樣的管理人員會發現 TCE 工作負載叢集,也會建立控制平台和工作負載節點主機,當部署作業完成後鍵入「tanzu cluster list」指令,確認指定的 workload01 工作負載叢集是否成功部署完成(如圖 15 所示)。

圖 15、部署名稱為 workload01 的 TCE 工作負載叢集

當部署作業完成後,切換至 vCenter 管理介面時,同樣可以看到 TCE 工作負載叢集的控制平台和工作節點主機,並且控制平面採用指定的 10.10.75.60位址,擔任 API Server 的通訊 IP 位址(如圖 16 所示)。

圖 16、確認 TCE 工作負載叢集中控制平面主機和工作負載節點主機運作狀態



部署 MetalLB 負載平衡機制

在部署 MetalLB 負載平衡機制之前,請同樣先執行「tanzu management-cluster kubeconfig get workload01 --admin」指令,儲存驗證程序憑證,執行「kubectl config use-context workload01-admin@workload01」指令,確保由原本連線的 TCE 管理叢集,切換至剛建立的 TCE 工作負載叢集,執行「kubectl get nodes」指令,和 TCE 工作負載叢集 API 服務進行互動,執行「kubectl get pods –all-namespaces」指令,確認 TCE 工作負載叢集中所有的 Pods 的運作狀態。

準備就緒後,執行「kubectl apply -f」指令,搭配 MetalLB 負載平衡的「namespace.yaml」和「metallb.yaml」設定檔,部署名稱為「metallb-system」的名稱空間至工作負載叢集中,然後再整合預先編輯好的「metallb-config.yaml」組態設定檔,指定 MetalLB 負載平衡機制使用 IP 位址範圍,本文實作指定 5 個 IP 位址由「10.10.75.61 – 10.10.75.65」,接著執行「kubectl apply -n metallb-system -f metallb-config.yaml」指令,組態設定 MetalLB 負載平衡機制 IP 位址使用範圍,執行「kubectl -n metallb-system get pods」指令,檢查 MetalLB 負載平衡機制中 Controller 和 Speaker 容器是否部署完成並順利運作(如圖 17 所示)。

圖 17、部署 MetalLB 運作元件容器建立負載平衡機制



部署 Yelb 訂餐投票網頁服務容器

在容器服務的部份,採用由前 VMware 員工 Massimo ReFerre 所撰寫的 Yelb 應用服務,方便進行範例展示和負載平衡機制實作演練。簡單來說,Yelb 應用服務中,會有採用 Angular 2 技術的 yelb-ui 前端元件容器,負責將 JS code 回應給瀏覽器,另外 yelb-appserver 容器負責讀取和寫入 redis-server 中,而 yelb-db 容器則是運作 PostgreSQL 資料庫,負責將訂餐投票的結果儲存下來(如圖 18 所示)。

圖 18、Yelb 應用服務運作架構示意圖

首先,執行「kubectl create ns yelb」指令,部署 Yelb 應用服務使用的名稱空間,執行「kubectl -n yelb apply」指令部署 Yelb 應用服務和相關容器,執行「kubectl -n yelb get pods」指令,確保 Yelb 應用服務中運作元件容器皆已經啟動完成。

此時,執行「kubectl -n yelb get svc」指令,確保 MetalLB 負載平衡機制,是否將其中一個負載平衡 IP 位址,指派給 Yelb 應用服務使用,在本文實作環境中從「EXTERNAL-IP」欄位,可以看到已經指派「10.10.75.61」負載平衡 IP 位址,給予 Yelb 應用服務使用(如圖 19 所示)。

圖 19、部署 Yelb 訂餐投票網頁服務容器

此時,開啟瀏覽器鍵入「http://10.10.75.61」,系統便會將這個網頁瀏覽請求,由運作在 TCE 工作負載叢集中的 MetalLB 負載平衡機制,將網頁瀏覽請求轉導向至 Yelb 容器中,負責網頁服務的 yelb-ui 容器中的 Port 30674。管理人員可以隨意按下 VOTE 鈕進行投票,體驗這個 Yelb 訂餐統計範例網頁的功能(如圖 20 所示)。

圖 20、驗證 MetalLB 負載平衡服務將網頁請求導向至 Yelb 訂餐投票網頁服務





結語

透過本文的深入剖析和實作演練,管理人員可以逐步建立 TCE 託管叢集運作架構,包括 TCE 管理叢集和工作負載叢集,接著部署 MetalLB 負載平衡機制和 Yelb 訂餐統計範例容器,快速體驗 MetalLB 負載平衡機制帶來的強大便利性。

網管人 199 期 - ReFS 檔案系統再進化,檔案級快照輕鬆備份虛機

$
0
0


網管人雜誌

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





本文目錄






前言

隨著新版 Windows Server 2022 雲端作業系統的推出,新一代「彈性檔案系統」(Resilient File System,ReFS)也不斷增強原有功能,並且推出各項亮眼新功能,在在可以看出舊有的 NTFS 檔案系統,雖然尚未完全退場,然而從發展趨勢中可以看到將會逐步淘汰。

第一版的 ReFS 檔案系統,出現於 Windows Server 2012 作業系統中,此時的 ReFS 檔案系統僅能支援資料磁碟區用途,還無法擔任開機磁碟區的重任。事實上,ReFS 檔案系統便是希望能夠克服,舊有 NTFS 檔案系統的各式問題,其主要設計結構採用 B+Tree 的方式,將資料可用性最大化並跨各種工作負載,整體優勢包括自動化完整性檢查、資料清理、無須執行 chkdsk 檢查、支援超長路徑和檔名……等。

下列為 ReFS 檔案系統演進版本和重要功能,以及哪些作業系統支援哪些 ReFS 版本:
  • ReFS v1.1:整合於 Windows Server 8 Beta 版本中,以及正式推出的 Windows Server 2012 作業系統版本中。
  • ReFS v1.2:整合於 Windows 8.1、Windows 10 v1507/v1607、Windows Server 2012 R2,以及 Windows Server 2016 和後續版本,在格式化時指定採用 ReFSv1 時可供使用。
  • ReFS v2.0:整合於 Windows Server 2016 TP2/TP3 版本,其它後續版本也無法掛載使用。
  • ReFS v3.0:整合於 Windows Server 2016 TP4/TP5 版本。
  • ReFS v3.1:整合於 Windows Server 2016 RTM 版本。
  • ReFS v3.2:整合於 Windows 10 v1703 和 Windows Server Insider Preview build 16237,其中只有伺服器版本才支援重複資料刪除特色功能。
  • ReFS v3.3:整合於 Windows 10 Enterprise v1709、Windows Server v1709 版本,從這個版本開始,在 Windows 10 的部份採用 Home 或 Pro 版本,將無法建立 ReFS 檔案系統磁碟區  。
  • ReFS v3.4:整合於 Windows 10 Enterprise v1803、Windows Server 2019、Windows Server v1803 版本。
  • ReFS v3.5:整合於 Windows 10 Enterprise Insider Preview 19536 和後續版本,新增支援「硬式連結」(Hard Links),但只能在新格式化的磁碟區啟用此功能,無法支援舊有的磁碟區升級版本後使用。
  • ReFS v3.6:整合於 Windows 10 Enterprise Insider Preview 21292,和 Windows Server Insider Preview 20282 版本。
  • ReFS v3.7:整合於 Windows 11 Enterprise v21H2 和 Windows Server 2022,只有伺服器版本才支援「檔案層級快照」(File-Level Snapshot)特色功能。

新式的 ReFS 檔案系統,在設計時便是為了支援超大型資料集而設計,並且不會對效能產生負面影響。舉例來說,舊有的 NTFS 檔案系統在磁碟區和檔案大小方面,最大僅支援至「256 TB」,而新式的 ReFS 檔案系統則支援至「35 PB」。

值得注意的是,舊有的 NTFS 檔案系統特色功能,在新式的 ReFS 檔案系統中並非全部支援,例如,檔案系統壓縮、檔案系統加密、磁碟配額、ODX 卸載資料傳輸……等便不支援(如圖 1 所示),所以要採用新式 ReFS 檔案系統,取代舊有 NTFS 檔案系統的企業和組織,管理人員在導入前必須確認所需的功能是否支援。

圖 1、無法在新式 ReFS 檔案系統中使用的特色功能





ReFS 檔案系統亮眼新功能

新一代的 ReFS 檔案系統也新增許多亮眼新功能,是傳統 NTFS 檔案系統永遠無法達到的,舉例來說,「鏡像加速同位元」(Mirror-Accelerated Parity)功能,提供將 SSD 固態硬碟和傳統 HDD 機械式硬碟儲存空間整合的技術,達到資料讀寫效能提升同時具備大容量儲存空間的目的。

「資料區塊複製」(Block Cloning)「疏鬆 VDL」(Sparse VDL)特色功能,能夠有效加速資料區塊的複製作業,在 Hyper-V 虛擬化環境中,讓 VM 檢查點合併的操作時間大幅縮短並降低對效能的影響,針對 VM 虛擬主機的 .VHDX 虛擬硬碟檔案的建立和擴充作業,也能有效加速並縮短整體處理時間。



鏡像加速同位元

對於 RAID 磁碟陣列概念不陌生的管理人員便知,每種類型的磁碟陣列都有其優點和缺點,而鏡像加速同位元的特色功能,便是將 「鏡像」(Mirror)「同位元」(Parity),這兩種不同儲存空間效率和效能特性整合在一起(如圖 2 所示)。

圖 2、鏡像加速同位元磁碟區示意圖

簡單來說,鏡像機制能夠獲得較佳的資料寫入效能,但是儲存空間效率上較差,而同位元機制在寫入資料時,因為要重新計算同位元檢查後才進行資料寫入,導致資料寫入效能較差,然而同位元機制相較於鏡像則有更多的儲存空間。

那麼這兩種機制整合在一起時,系統如何處理資料讀寫以及資料存放的難題 ?首先,當鏡像區域儲存空間達到指定的容量時,系統便會開始將資料從鏡像區域移動到同位元區域的動作,也就是執行讀取資料、計算同位元編碼、將資料寫入同位元區域……等工作任務(如圖 3 所示)。

圖 3、系統將資料從鏡像區域移動到同位元區域示意圖

那麼在寫入資料時,鏡像加速同位元磁碟區又是如何處理的呢 ?系統分別有三種不同的方式,來因應各種 IO 寫入資料的情境。首先,如果資料寫入是修改鏡像區域內的現有資料時,系統便會直接修改資料內容,倘若資料寫入是全新資料時,系統將會在鏡像區域中尋找足夠將資料寫入的儲存空間,然後將資料寫入鏡像區域中(如圖 4 所示)。

圖 4、原有資料或新增資料寫入鏡像區域示意圖

當資料寫入需求為修改同位元區域中的資料時,系統會先讓同位元區域中的資料失效,然後在鏡像區域中尋找足夠將資料寫入的儲存空間,再將資料寫入鏡像區域中,其中讓同位元區域中的資料失效這個動作,是採用「中繼資料」(Metadata)的方式進行快速操作,所以能有效改善同位元區域資料寫入緩慢的問題(如圖 5 所示)。

圖 5、讓同位元區域中的資料失效改為寫入鏡像區域示意圖

當系統無法在鏡像區域中,尋找到足夠的儲存空間進行資料寫入作業時,系統只能將資料寫入至同位元區域內(如圖 6 所示)。此時,建議管理人員將需要大量寫入的 VHD/VHDX 虛擬硬碟檔案,存放在不同的子目錄當中,因為 ReFS 檔案系統的特色,會在資料夾及檔案層級中寫入中繼資料變更,當系統執行大量資料寫入作業時,由於中繼資料操作較小並且能夠平行執行,達到減少應用程式的延遲,讓系統以效能最佳化的方式,將資料寫入至同位元區域中。

圖 6、系統將資料寫入至同位元區域示意圖



資料區塊複製技術

傳統上執行資料複製時,無論目的端檔案與來源端檔案相同或不同,都必須複製一段範圍的檔案位元組,所以資料複製作業將會觸發系統效能成本高昂的讀取和寫入動作。

然而,在新式的 ReFS 檔案系統中,結合中繼資料機制和資料區塊複製技術,所以無須從頭到尾進行讀取或寫入檔案資料的動作,整個複製作業只要重新對應檔案區域與實體位置,將系統效能成本高昂的實體作業,轉換為快速且具邏輯的中繼資料作業,即可更快完成複製作業,並對儲存裝置產生較少 I/O 動作。簡單來說,資料區塊複製技術能夠讓多個檔案之間,共用儲存裝置中相同的實體資料,並且保留共用邏輯的完整性(如圖 7 所示)。

圖 7、資料區塊複製技術共用實體資料示意圖



完整性資料流

事實上,在預設情況下,ReFS 檔案系統一律會為中繼資料建立 「總和檢查碼」(Checksums),但是針對個別檔案資料上,並不會產生並驗證總和檢查碼,只有需要判斷或嘗試修正損毀的檔案資料時,管理人員才需要啟用 「完整性資料流」(Integrity Streams)機制。

當管理人員針對個別檔案或資料夾或整個磁碟區,啟用完整性資料流機制後,ReFS 檔案系統將會建立和維護總和檢查碼,並且在傳回啟用完整性資料流的資料之前,先驗證該資料的完整性(如圖 8 所示)。

圖 8、針對個別檔案驗證資料完整性示意圖

判斷或嘗試修正損毀的檔案資料時,系統將會拿個別檔案的總和檢查碼,以及檔案中繼資料的總和檢查碼互相比對,倘若總和檢查碼結果相符,則會將資料標記為有效,倘若總和檢查碼內容不相符,則表示資料已經發生損毀。

此時,倘若資料儲存於鏡像加速同位元磁碟區時,ReFS 檔案系統將會嘗試修正損毀的資料,當修正作業成功時,便會還原資料的完整性並且將有效的資料回傳給應用程式,而應用程式不會察覺到任何損毀的情況發生過。倘若,嘗試修正資料作業失敗時,ReFS 檔案系統將會在系統事件記錄檔中記錄所有損毀資料。





實戰演練 – ReFS 檔案層級快照機制

在實戰演練小節中,將透過最新 Windows Server 2022,內建在 ReFS 檔案系統中的「檔案層級快照」(File-Level Snapshots)機制,它與傳統的快照機制完全不同,使用「快速中繼資料操作」(Quick Metadata Operation)的方式來建立快照檔案。

此外,ReFS 檔案層級快照和 ReFS 資料區塊複製機制,在運作機制上也有很大的不同,因為 ReFS 區塊複製機制是「可寫入」(Writable)的狀態,而 ReFS 檔案快照則是「唯讀」(Read-Only)的狀態,這樣的特性運作在 Hyper-V 虛擬化平台中,針對 VHD/VHDX 檔案的 VM 虛擬主機備份場景特別有優勢,因為 ReFS 檔案快照無須考慮備份的 VM 虛擬主機檔案大小,而是一律採用固定的時間即可完成快照檔案的建立,有效縮短 VM 虛擬主機建立快照所花費的時間和儲存成本。



安裝 Hyper-V 虛擬化伺服器角色

首先,為實作演練的 Windows Server 2022 主機,安裝 Hyper-V 虛擬化伺服器角色。請在開啟伺服器管理員後,依序點選「Manage > Add Roles and Reatures > Role-based or feature-based installation」,在 Server Roles 安裝伺服器角色頁面中勾選「Hyper-V」選項,並同時安裝相關 Hyper-V 伺服器功能即可,值得注意的是,當 Hyper-V 安裝程序完成後,需要重新啟動主機後才能套用生效,當主機重新啟動後再次開啟伺服器管理員,系統將會顯示 Hyper-V 虛擬化角色和功能安裝完成資訊(如圖 9 所示)。

圖 9、為 Windows Server 2022 主機安裝 Hyper-V 虛擬化伺服器角色和功能



建立 NTFS 和 ReFS 檔案系統磁碟區

為了稍後便於比較,傳統 NTFS 和新式 ReFS 檔案系統磁碟區有何不同,已經預先在 Windows Server 2022 主機中,除了系統磁碟區之外,額外配置 16TB 的硬碟後,將其中的 8TB 儲存空間格式化為 NTFS 檔案系統,並且指派磁碟機代號為「N:」,另外的 8TB 儲存空間則格式化為 ReFS 檔案系統,並指派磁碟機代號為「R:」(如圖 10 所示)。

圖 10、同一個儲存裝置中,將儲存空間格式化出 NTFS 和 ReFS 檔案系統磁碟區

為了確保目前的 ReFS 磁碟區中,採用正確且最新的 ReFS 檔案系統版本,確保 ReFS 檔案層級快照機制能夠順利運作,請開啟命令提示字元後,鍵入「fsutil fsinfo refsInfo」指令,搭配 ReFS 磁碟區代號「R:」,即可查詢 ReFS 檔案系統磁碟區採用的 ReFS 版本,請確認採用最新的 ReFS「v3.7」版本,才能支援 ReFS 檔案層級快照機制(如圖 11 所示)。

圖 11、確認採用最新的 ReFS v3.7 檔案系統版本

管理人員若有興趣了解和比較,有關 NTFS 和 ReFS 檔案系統磁碟區,在功能性支援度和磁碟區有哪些不同的話,可以在命令提示字元視窗中,分別鍵入「fsutil fsinfo volumeInfo」和「fsutil fsinfo sectorInfo」指令,搭配 NTFS 或 ReFS 磁碟區代號,即可查看相關資訊。

舉例來說,鍵入「fsutil fsinfo volumeInfo R:」指令,即可查看 ReFS 檔案系統磁碟區支援哪些特色功能,例如,支援新式的 Block Cloning、Sparse VDL、File Ghosting……等特色功能(如圖 12 所示)。

圖 12、查詢 ReFS 檔案系統磁碟區支援哪些特色功能



大幅提升 VM 虛擬主機工作負載效能

前面已經介紹過資料區塊複製和疏鬆 VDL 特色功能。事實上,在 ReFS 檔案系統中這兩項新增的特色功能,無論在 Hyper-V 虛擬化環境,或是整合 Storage Spaces Direct 機制建構的 HCI 超融合運作環境,都能夠大幅提升 VM 虛擬主機的工作負載效能。

舉例來說,資料區塊複製技術能夠加速資料區塊的複製作業,讓 VM 虛擬主機執行檢查點合併作業時,除了降低對系統工作負載的影響之外還大幅降低工作任務執行時間,而疏鬆 VDL 機制可以將 ReFS 檔案系統中的檔案,在建立檔案工作任務時將檔案設定為「快速歸零檔案」(Zero Files Rapidly),有效降低建立 VM 虛擬主機採用「固定」(Fixed)虛擬硬碟格式時所花費的時間。

在 Windows Server 2022 主機中,已經分別建立 NTFS 磁碟區(N:)和 ReFS 磁碟區(R:),管理人員可以透過簡單的 PowerShell 指令,分別在 NTFS 磁碟區和 ReFS 磁碟區中,建立 1TB 大小並採用固定格式的 VHDX 虛擬硬碟,觀察在 NTFS 磁碟區和 ReFS 磁碟區中所需花費的時間。

請在 PowerShell 指令視窗中,鍵入「Measure-Command {New-VHD -SizeBytes 1024GB -Path N:\VM-NTFS.vhdx -Fixed}」指令,指定在 NTFS磁碟區中建立 1TB 大小並採用固定格式的 VHDX 虛擬硬碟,接著鍵入「Measure-Command {New-VHD -SizeBytes 1024GB -Path R:\VM-ReFS.vhdx -Fixed}」指令,指定在 ReFS磁碟區中建立 1TB 大小並採用固定格式的 VHDX 虛擬硬碟(如圖 13 所示)。

圖 13、在 NTFS 和 ReFS 磁碟區中,建立 1TB 固定格式的 VHDX 虛擬硬碟

從兩個指令的執行結果中可以看到,即使在同一個儲存裝置中,一個磁碟區採用傳統 NTFS 檔案系統,另一個則採用新式 ReFS 檔案系統,分別建立 1TB 固定格式 VHDX 虛擬硬碟時,花費的時間有如此巨大的差異,在本文實作環境中 NTFS磁碟區花費「3,665 秒」,而 ReFS磁碟區則僅花費「2 秒」,整體效率相差「1,832.5 倍」,可想而知在其它 VM 虛擬主機工作負載的操作,整體所花費的時間成本以及工作效能的提升將有非常明顯的差異。



傳統 Hyper-V 層級快照

在傳統運作架構中,管理人員可以隨時針對 Hyper-V 虛擬化平台中,為運作的 VM 虛擬主機建立「檢查點」(Checkpoint),也就是舊稱為「快照」(Snapshot)的技術。一般來說,VM 虛擬主機建立檢查點時,通常是為了重大安全性更新或軟體及應用程式大版本更新前使用,倘若更新失敗能夠快速將 VM 虛擬主機回到建立檢查點時間,一旦完成更新作業後再執行合併檢查點的動作。

然而,對於許多管理人員來說,在重大版本更新作業完成後,可能還需要進行許多測試和驗證項目,往往忘記必須將 VM 虛擬主機執行合併檢查點的動作而繼續使用。事實上,一旦 VM 虛擬主機建立檢查點之後,便會產生「.avhdx」檔案記錄建立檢查點之後 VM 虛擬主機所有的異動,並且這個硬碟將會是效能最差的「差異硬碟」(Differencing vDisk)格式。

舉例來說,管理人員可以為 VM 虛擬主機建立檢查點之後,針對 VM 虛擬主機進行隨意操作,例如,建立檔案和資料夾再刪除、啟動 / 停用系統服務……等,同時觀察 .avhdx 檔案的變化,便能發現這個檔案將會因為 VM 虛擬主機的各項操作而不斷增長,倘若 VM 虛擬主機再次建立檢查點,系統除了再次產生另一個 .avhdx 檔案並且不斷增長之外,隨著資料變動多寡程度也會影響建立檢查點的時間(如圖 14 所示)。

圖 14、為 VM 虛擬主機建立 Hyper-V 層級檢查點



建立 ReFS 檔案層級快照

由於 ReFS 檔案層級快照,採用快速中繼資料操作的方式來建立快照檔案,除了有效縮短 VM 虛擬主機建立快照所花費的時間成本之外,也不像傳統 Hyper-V 層級快照般產生大量的異動參照檔案。在本文實作環境中,將使用 ReFSUtil 指令工具的方式來建立和管理 ReFS 檔案層級快照。
ReFS 檔案層級快照也支援採用 API 進行建立和管理。

建立 ReFS 檔案層級快照的方式非常簡單,在本文實作環境中切換到存放於 ReFS 檔案系統磁碟區的 VM 虛擬主機 R 槽後,鍵入「refsutil streamsnapshot /c "ReFS_snapshot_01" VM-ReFS.vhdx」指令後,即可看到系統回應執行成功的訊息,和剛才傳統 Hyper-V 層級快照相比之下,ReFS 檔案層級快照的建立時間幾乎是瞬間完成。

需要查詢建立的 ReFS 檔案層級快照資訊時,只要將剛才建立時的參數更改為「/l」即可,請鍵入「refsutil streamsnapshot /l "ReFS_snapshot_01" VM-ReFS.vhdx」指令,即可看到剛才為 VM 虛擬主機建立的 ReFS 檔案層級快照資訊,可以看到建立的快照檔案才佔用「2.67 GB」儲存空間,與剛才傳統 Hyper-V 層級快照初始產生的空間相差極大(如圖 15 所示)。

圖 15、為 VM 虛擬主機建立 ReFS 檔案層級快照並查詢快照資訊

成功建立 ReFS 檔案層級快照後,和先前建立傳統 Hyper-V 層級快照一樣,針對 VM 虛擬主機進行隨意操作,建立檔案和資料夾再刪除、啟動 / 停用系統服務……等後,再次建立 ReFS 檔案層級快照,當檔案有多份 ReFS 檔案層級快照時,管理人員可以善用「萬用字元」(wildcards)的參數,以便同時查詢和顯示多筆 ReFS 檔案層級快照資訊。

請鍵入「refsutil streamsnapshot /c "ReFS_snapshot_02" VM-ReFS.vhdx」指令,針對 VM 虛擬主機再次建立 ReFS 檔案層級快照,鍵入「refsutil streamsnapshot /l "ReFS_snapshot_*" VM-ReFS.vhdx」指令查詢多筆的 ReFS 檔案層級快照資訊,可以看到針對 VM 虛擬主機同樣的操作,在傳統 Hyper-V 層級快照產生的檔案空間佔用較大,並且隨時各項操作越多檔案空間不斷增長,而 ReFS 檔案層級快照則是固定大小且佔用的儲存空間不再變動(如圖 16 所示)。

圖 16、再次建立 ReFS 檔案層級快照並查詢多筆資訊



管理 ReFS 檔案層級快照

管理人員可以隨時管理 ReFS 檔案層級快照,舉例來說,可以查看單筆的 ReFS 檔案層級快照內容,甚至是上一份與另一份 ReFS 檔案層級快照之間總共有哪些變動。

只要鍵入「refsutil streamsnapshot /q "ReFS_snapshot_03" VM-ReFS.vhdx」,即可查看單筆的 ReFS 檔案層級快照內容含有哪些資訊,倘若需要刪除快照檔案的話,只需要將參數改為「/d」即可。

當管理人員,想要查詢不同 ReFS 檔案層級快照之間有哪些異動時,可以在檔案結尾加上「:快照名稱」即可。舉例來說,目前共建立三份 ReFS 檔案層級快照,請鍵入「refsutil streamsnapshot /q "ReFS_snapshot_01" VM-ReFS.vhdx:ReFS_snapshot_03」指令,即可查看第一份和第三份快照之間有哪些異動,可惜的是目前系統的顯示方式並不是人類容易閱讀的資訊(如圖 17 所示),相信後續的版本將會持續改進。

圖 17、查看不同 ReFS 檔案層級快照有哪些異動





結語

透過本文的深入剖析和實戰演練後,相信管理人員對於新一代的 ReFS 檔案系統有更深層的認識。很可惜的是,由於 ReFS 檔案層級快照功能,為最新 Windows Server 2022 雲端作業系統的第一個版本,因此尚未完全與系統進行深度整合,包括實作演練查詢 ReFS 檔案層級快照有哪些異動時,系統顯示的資訊是人類無法輕鬆閱讀的資訊,不過相信隨著 ReFS 檔案系統版本不斷演進,屆時 ReFS 檔案層級快照功能將更容易使用,並應用於各項營運服務。

[站長開講] DevOpsDays Taipei 2022 (更新: 簡報和展示影片已上傳)

$
0
0


活動簡介

DevOpsDays Taipei 是由臺灣在地技術社群發起,結合社群、企業共同舉辦之年度 DevOps 盛會。DevOpsDays 由 DevOps 之父 Patrick Debois 發源自比利時,經過全球社群的共同響應,如今在全球,每年皆有多個城市舉辦以城市掛名的 DevOpsDays。

根據 iThome 的報導,不論是國內外的知名企業例如台積電、金士頓、趨勢科技、國泰金控等皆早已擁抱 DevOps,引領企業持續改善、邁向新一波的 IT 數位轉型。DevOps 作為同時蘊含技術與文化轉型雙主軸的 IT 熱門關鍵字,其影響力已不僅是 IT 圈內人人皆知,更擴展至企業組織的各個層面。





活動資訊








站長工作坊簡報



網管人 200 期 - 做好事前準備功課,無痛升級 vSphere 7

$
0
0


網管人雜誌

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





本文目錄






前言

在企業和組織當中主流的 vSphere 6.x 虛擬化版本,無論是 ESXi 6.x 虛擬化平台、vCenter Server 6.x 管理平台、vSAN 6.x 超融合平台……等,即將在 2022 年 10 月 15 日達到「一般支援結束」(End Of General Support,EOGS)階段,改為進入下一個「技術指導結束」(End Of Technical Guidance,EOTG)階段(如圖 1 所示)。

圖 1、vSphere 6.x 產品一般支援結束示意圖

所謂產品到達 EOGS 階段時,並不表示該版本的產品完全停止支援,在有限制的條件之下 VMware 官方還是會提供一定程度的支援,但是大部份情況下給予的建議和解決方式都會是升級至新版本。簡單來說,當產品到達 EOGS 一般支援結束階段時,便進入下一個生命週期 EOTG 技術指導階段,在這段期間以自助式入口網站方式提供技術支援,但是不提供電話線上支援,使用者可以透過線上提交 SR 的方式獲得支援,一旦到達 EOTG 技術指導階段結束後,進入 End of Support 階段,該產品便完全停止支援(如圖 2 所示)。

圖 2、vSphere 版本生命週期演進示意圖





實戰 – 升級至 vSphere 7

在實戰演練小節中,將帶領管理人員將內部資料中心內,原本主流使用的 ESXi 6.7、vCenter Server 6.7、vSAN 6.7 版本(如圖 3 所示),逐步升級至最新發佈的 vSphere 7 Update 3 版本。

圖 3、現有運作環境採用 vCenter Server 6.7 管理平台版本

然而,升級 vSphere 虛擬化架構版本並非隨意進行升級,而是相關的運作元件必須有順序性的逐一升級版本才對(如圖 4 所示),舉例來說,應該最先升級 vCenter Server 管理平台版本,而非 ESXi 虛擬化平台版本,一旦先升級 ESXi 虛擬化平台版本的話,將會造成舊版 vCenter Server 無法管理新版 ESXi 虛擬化平台的問題。

圖 4、vSphere 運作元件版本升級順序示意圖

此外,在升級各項運作元件版本之前,在硬體和軟體方面也應先檢查是否支援升級至新版本。首先,在硬體方面,管理人員可至 VMware Compatibility Guide 硬體指南網站,查詢現有安裝 ESXi 虛擬化平台的硬體伺服器,是否支援至最新的 ESXi 7.0 U3 版本。

在軟體方面,則可透過 VMware Product Interoperability Matrix 中的 Upgrade Path 項目,查詢現有使用中的舊版本是否支援升級至新版本,舉例來說,從查詢的結果可知,vCenter Server 僅支援從舊版 6.5.0 升級至新版 7.0.3,倘若是更舊的 vCenter Serer 6.0.3 的話則不支援直接升級至最新版,而是必須先升級至 6.7.3 後再升級至 7.0.3 版本才行,本文實作環境為 vCenter Server 6.7.0,所以支援升級至新版 7.0.3(如圖 5 所示)。

圖 5、vCenter Server 版本升級路徑示意圖

倘若,管理人員覺得手動逐一查詢太慢的話,也可以透過 vSphere Assessment Tool 線上掃描工具,快速掃描內部資料中心 vSphere 虛擬化基礎架構,並且提供掃描報表結果,方便管理人員進行判斷。



升級 vCenter Server 管理平台

在開始升級 vCenter Server 管理平台之前,還有前置作業必須執行。首先,執行 vCenter Server 備份作業,避免升級作業中遭遇到非預期且不可逆的錯誤時,才能夠快速復原回原本健康狀態的 vCenter Server 管理平台。

此外,請連接至 vCenter Server Port 5480 的管理頁面,啟用 vCenter Server 的 SSH 服務,以便稍後在部署新版 vCenter Server 第二階段時,能夠將舊有的 vCenter Server 組態設定和相關資料,透過 SSH 服務進行傳輸,否則將在該升級階段中出現「Pre-upgrade check failed – Unable to connect port 22 on vCenter Server」的錯誤訊息。

前置作業準備完畢後,即可將原有的 vCenter Server 虛擬主機名稱改名,在本文實作環境中,從原本的「vCenter」改為「vCenter-old-67」(如圖 6 所示),待升級程序完成後這台舊有的 vCenter Server,將會被系統升級程序自動執行關機作業。

圖 6、將原有 vCenter Server 虛擬主機名稱改名

掛載最新版本的 vCenter Server 7.0 Update 3 ISO 檔,執行「vcsa-ui-installer\win32\installer.exe」,在 vCenter Server 7.0 Installer 視窗中選擇「Upgrade」,在升級程序互動視窗中,前二個步驟採用系統預設值即可,在 3. Connect to source appliance 步驟中,請鍵入原有 vCenter Server 6.7 管理平台的 FQDN 或 IP 位址,本文實作環境為「vcenter.lab.weithenn.org」,鍵入 vCenter Server 管理者帳號和密碼後,按下 Connect to Source 鈕,下方則是填入 ESXi 虛擬化平台管理資訊,本文實作環境為「mgmt-esxi.lab.weithenn.org」(如圖 7 所示)。
請注意,這裡鍵入的 ESXi 虛擬化平台,必須是 vCenter Server 6.7 所運作的 ESXi 虛擬化平台才行。
圖 7、鍵入 vCenter Server 和 ESXi 虛擬化平台管理資訊

在 4. vCenter Server deployment target 步驟中,鍵入要將新版 vCenter Server 管理平台,部署至哪台 ESXi 虛擬化平台中,在 5. Set up target vCenter Server VM 步驟中,則是鍵入新版 vCenter Server 的虛擬主機名稱和管理密碼,在 6. Select deployment size 步驟中,選擇部署新版 vCenter Server 的規模大小,在 7. Select datastore 步驟中,則是選擇要將新版 vCenter Server 部署至哪個 Datastore 儲存資源中。

在 8. Configure network settings 步驟中,鍵入部署新版 vCenter Server 的網路組態(如圖 8 所示)。值得注意的是,在這個操作步驟中的 Network 欄位,僅支援採用 vSS 標準虛擬交換器的 PortGroup,不支援採用進階的 vDS 分佈式虛擬交換器,並且暫用的 IP 位址「10.10.75.50」,僅在升級過程中使用,待升級程序完畢後便會釋放該暫用 IP 位址。

圖 8、鍵入部署新版 vCenter Server 的網路組態

在 9. Ready to complete stage 1 步驟中,確認相關資訊正確無誤後,按下 Finish 鈕開始執行升級程序第一階段,稍待一段時間後即可完畢,並且系統顯示可登入 vCenter Server Management Interface 管理介面進行確認(如圖 9 所示)。

圖 9、升級部署新版 vCenter Server 第一階段完成

按下 Continue 鈕後,系統自動進入升級部署第二階段,在 2. Connect to source vCenter Server 步驟中,請鍵入原有舊版 vCenter Server 和 ESXi 虛擬化平台的管理資訊,當按下 Next 鈕後,系統將會執行升級版本預先檢查程序,請在彈出的 Pre-upgrade check result 視窗中,確認是否有任何問題需要解決,避免升級程序出現不可預期的錯誤。

通過升級版本預先檢查程序後,在 3. Select upgrade data 步驟中,顯示需要將原有舊版 vCenter Server 中的哪些資料,複製至新版 vCenter Server 當中,本文實作選擇複製所有資料,包含組態設定和過去 VM 虛擬主機效能統計資訊……等,請選擇「Configuration,Inventory,Tasks,Events and Performance Metrics」項目即可(如圖 10 所示)。

圖 10、選擇複製所有資料至新版 vCenter Server 當中

在 4. Configure CEIP 步驟中,請勾選是否加入 CEIP 使用者體驗提升計畫。在 5. Ready to complete 步驟中,確認相關資訊正確無誤後,按下 Finish 鈕開始執行升級程序第二階段,並且系統彈出警告訊息,說明當網路組態從舊版 vCenter Server,完全複製並套用至新版 vCenter Server 之後,系統便會自動將舊版 vCenter Server 關機,按下 OK 鈕後繼續版本升級程序,稍待一段時間後即可,升級部署第二階段完成後,系統顯示可登入 vCenter Server 管理介面進行確認(如圖 11 所示)。

圖 11、升級部署第二階段完成,順利升級至新版本 vCenter Server

版本升級程序完成後,首先登入 vCenter Server Management Interface 管理介面,確認 vCenter Server 管理平台版本,由原先的舊版「6.7.0.40000」升級為新版「7.0.3.00100」(如圖 12 所示)。

圖 12、順利將 vCenter Server 由原本的 6.7 U3 升級為 7.0 U3 版本

切換到 vCenter Server 管理介面中,可以看到新版的 vCenter Server 管理平台,除了延用原有的 FQDN「vcenter.lab.weithenn.org」,和 IP 位址「10.10.75.70」之外,也同時升級 VMware Tools 版本,將原本舊版的「10309」升級為新版的「11333」(如圖 13 所示),並且舊版的 vCenter Server 已經自動關機,且升級過程中的暫用 IP 位址「10.10.75.50」也已經釋放。

圖 13、新版 vCenter Server 延用原有 FQDN 和 IP 位址並更新 VMware Tools 版本

確認 vCenter Server 版本升級後,請套用新的 vCenter Server 7 軟體授權金鑰,便完成整個 vCenter Server 版本升級程序。

值得注意的是,倘若企業和組織也有建構 vSAN 超融合基礎架構時,將會發現順利升級 vCenter Server 管理平台後,原有的 vSAN Cluster 軟體授權,並非顯示舊有 vSAN Cluster 6.x 授權版本,而是變成「評估版本模式」(Evaluation Mode)?主要造成原因是,從 vSphere 7 版本開始,軟體授權有單顆 CPU 處理器超過 32 核心數,必須要加購 CPU 處理器授權所導致,所以版本升級後便造成 vSAN Cluster 軟體授權退回評估版本(如圖 14 所示)。

圖 14、升級 vCenter Server 版本導致 vSAN Cluster 軟體授權退回評估版本

此時,只需要套用企業或組織新購買的 vSAN 7 軟體授權金鑰即可,倘若採購的 vSAN 7 軟體授權還未收到,可以開 Case 給 VMware Licensing Team 申請暫時的軟體授權金鑰,詳細資訊請參考 VMware KB80691 知識庫文章



升級 ESXi 虛擬化平台

在 ESXi 虛擬化平台版本升級的部份,管理人員可以透過 vLCM(vSphere Lifecycle Manager),幫助管理人員快速且大量升級數量眾多的 ESXi 虛擬化平台。事實上,vLCM 生命週期管理員,不僅能夠整合原有的 ESXi 映像檔進行版本升級作業,同時還能結合硬體伺服器廠商的 Drivers 驅動程式、Firmware 韌體……等進行更新(如圖 15 所示)。

圖 15、vLCM 生命週期管理員運作架構示意圖

請先將 vSAN Cluster 中所有的 VM 虛擬主機,透過 vSphere vMotion 線上遷移至其它主機後,將該 vSAN Cluster 中所有的 ESXi 成員主機進入維護模式,點選「vSphere Client > Monitoring > Lifecycle Manager > Imported ISOs > Import ISO」,按下 Browse 鈕後選擇最新版本的 vSphere ESXi 7.0 U3 ISO 映像檔進行上傳作業(如圖 16 所示)。

圖 16、上傳最新版本的 vSphere ESXi 7.0 U3 ISO 映像檔

點選「vSAN-Cluster > Updates > Hosts > Baselines > Attached Baselines and Baseline Groups > Attach > Create and Attach Baseline」,系統將自動彈出 Create Baseline 對話視窗,在 1. Name and Description 步驟中,請在 Name 欄位鍵入這個版本升級基準線名稱,本文實作為「Upgrade_ESXi_to_7.0U3」,在 Content 部份則是選擇「Upgrade」項目,在 2. Select ISO 步驟中,選擇剛才已上傳完成的 ESXi 7.0 U3 映像檔,在 3. Summary 步驟中確認相關資訊正確無誤後,按下 Finish 鈕建立 ESXi 版本升級基準線(如圖 17 所示)。

圖 17、建立 ESXi 版本升級基準線

請勾選剛才建立完成的「Upgrade_ESXi_to_7.0U3」基準線項目,按下「Remediate」開始進行 ESXi 版本升級作業。首先,在系統自動彈出的 EULA 使用者授權條款視窗中勾選同意後,系統開始進行版本升級預先檢查作業,確認 vSAN Cluster 和 ESXi 成員主機能夠順利升級版本,檢查作業完成後請確認系統顯示為「Cluster is ready to remediate」,倘若系統提示有需要被解決的項目時,請務必解決問題後再次進行檢查作業,否則稍後版本升級的過程中可能會遭遇到非預期的錯誤,確認無誤後按下 Remediate 鈕開始進行版本升級作業(如圖 18 所示)。

圖 18、vSAN Cluster 通過版本升級預先檢查作業,準備升級 ESXi 版本

在 ESXi 版本升級過程中,除了在下方 Recent Tasks 工作列看到版本升級進度和項目之外,也可以觀看到 ESXi 成員主機的狀態,會從原本的「維護模式」(Maintenance Mode),轉換為「連接中斷」(Disconnected)「無回應」(Not responding),這時通常為 ESXi 成員主機,升級為新版本後重新啟動。此外,在 Baselines 頁面中,也可以看到在目前 vSAN Cluster 中,陸續有幾台 ESXi 成員主機,從原本舊版本的 6.7.0 升級成為新版本的 7.0.3(如圖 19 所示)。

圖 19、透過 vLCM 生命週期管理員為 ESXi 進行版本升級作業

同樣的,確認 ESXi 版本升級作業成功之後,請依序至每台 ESXi 成員主機,點選「Configure > System > Licensing」項目,套用 vSphere ESXi 7 新版本的軟體授權金鑰。



升級 vDS 分佈式虛擬交換器

確認 vCenter Server 管理平台,以及 ESXi 虛擬化平台版本升級完成後,便能緊接著升級 vDS 分佈式虛擬交換器版本,確保支援 vSphere 7 最新特色功能。在版本升級作業之前,可以先查看目前的 vDS 分佈式虛擬交換器版本,請點選「Networking > vDS Switch」項目,在 Summary 頁籤中,即可看到目前的 vDS 版本為「6.6.0」,並且系統顯示「Upgrades Available」訊息,通知管理人員可以升級 vDS 版本。

點選「Networking > vDS Switch > Actions > Upgrade > Upgrade Distributed Switch」項目,在彈出的 Upgrade Distributed Switch 視窗中,於 1. Configure upgrde 頁面中,選擇將 vDS 升級至哪個版本以及相對應的 ESXi 版本,本文實作選擇升級至最新的「7.0.3」版本,在 2. Check compatibility 頁面中,系統將會進行檢查作業後,顯示哪些 ESXi 成員主機可以成功升級 vDS 版本,在 3. Ready to complete 頁面中,確認資訊無誤後,按下 Finish 鈕進行 vDS 版本升級作業(如圖 20 所示)。

圖 20、執行 vDS 分佈式虛擬交換器版本升級作業

待 vDS 版本升級作業執行完畢後,點選「Networking > vDS Switch」項目,在 Summary 頁籤中,即可看到目前的 vDS 版本已經升級為最新的「7.0.3」(如圖 21 所示)。

圖 21、順利升級 vDS 版本至最新的 7.0.3



升級 vSAN 硬碟格式版本

順利升級 vSAN Cluster 和 ESXi 成員主機版本之後,便能著手升級 vSAN 硬碟格式版本,確保支援最新的 vSAN 7 特色功能。

請依序點選「Hosts and Clusters > vSAN Cluster > Configure > vSAN > Disk Management」項目,在 Disk Management 區塊中,可以看到目前的 vSAN 硬碟格式版本為「10.0」,並且系統顯示應該在升級硬碟格式版本之前,執行預先檢查作業,請按下「Pre-Check Upgrade」鈕進行預先檢查作業,確保稍後能夠順利升級 vSAN 硬碟格式版本。

檢查作業完畢後,當系統顯示「Ready to upgrade」訊息時,便可以放心按下「Upgrade」鈕進行 vSAN 硬碟格式版本升級作業,待系統執行完「Convert disk format for vSAN」工作任務後,便可以在 Disk Management 區塊中,看到 vSAN Cluster 中所有的 vSAN 硬碟格式升級為最新的「15.0」版本(如圖 22 所示),有關 vSAN 硬碟格式版本的詳細資訊,請參考 VMware KB2148493 知識庫文章

圖 22、順利升級 vSAN 硬碟格式版本至最新的 15.0

至此,管理人員已經完成整體 vSphere 基礎架構中,重要運作元件的版本升級作業,僅剩最後二個工作任務,也就是升級 VM 虛擬主機的 VMware Tools 和硬體版本。



升級 VMware Tools 版本

當管理人員順利升級 ESXi 虛擬化平台版本後,只要點選其上運作的任何一台 VM 虛擬主機,在 VMware Tools 欄位將會顯示「Upgrade available」訊息,提醒管理人員可以升級 VM 虛擬主機的 VMware Tools 版本(如圖 23 所示)。

圖 23、系統提醒管理人員應升級 VM 虛擬主機的 VMware Tools 版本

管理人員可以針對單台 VM 虛擬主機,逐一升級 VMware Tools 版本,或是透過 vLCM 生命週期管理員,以達到快速且大量批次升級多台 VM 虛擬主機 VMware Tools 版本的目的。

請點選「Hosts and Clusters > vSAN Cluster > Updates > Hosts > VMware Tools > Check Status」項目,系統將會檢查 vSAN Cluster 中,所有 VM 虛擬主機的 VMware Tools 版本,並顯示是否為最新版本或需要更新,管理人員依據需求全選或個別勾選在 vSAN Cluster 中,需要升級 VMware Tools 版本的 VM 虛擬主機後,按下「Upgrade to Match Host」。

此時,在系統彈出的 Upgrade VMware Tools to Match Host 視窗中,除了提醒管理人員升級 VM 虛擬主機的 VMware Tools 版本,將會造成 VM 虛擬主機需要重新啟動之外,並且在 vSAN Cluster 中的每台 ESXi 成員主機,同一時間最多只會同時更新 5 台 VM 虛擬主機的 VMware Tools 版本,以及是否需要排程執行更新 VMware Tools 版本的動作,和管理人員希望如何處理 VM 虛擬主機的快照檔案……等,確認無誤後按下 Upgrade to Match Host 鈕即可(如圖 24 所示)。

圖 24、透過 vLCM 生命週期管理員升級 VM 虛擬主機的 VMware Tools 版本

待 VM 虛擬主機安裝套用新的 VMware Tools 版本,並且重新啟動套用新版 VMware Tools 後,此時在 vLCM 的 VMware Tools 項目中,將會顯示此 vSAN Cluster 中有多少台 VM 虛擬主機,其 VMware Tools 已經更新至最新版本,單台 VM 虛擬主機的 Tools Status 欄位,也會顯示 Up to Date 資訊,表示 VMware Tools 為最新版本(如圖 25 所示)。

圖 25、順利升級 vSAN Cluster 中 VM 虛擬主機的 VMware Tools 版本

切換回 VM 虛擬主機的 Summary 頁籤中,可以看到 VMware Tools 版本由原本舊版的「10346」,升級至最新版本「11365」,有關 VMware Tools 版本的詳細資訊,請參考 VMware KB86165KB70728KB1003947知識庫文章。



升級 VM 虛擬主機硬體版本

同樣的,管理人員可以透過 vLCM 生命週期管理員,批次升級 VM 虛擬主機的硬體版本,與升級 VMware Tools 版本不同的部份是,VM 虛擬主機必須在「關機」(Power Off)狀態下,才能夠順利升級硬體版本。

請點選「Hosts and Clusters > vSAN Cluster > Updates > Hosts > VM Hardware > Check Status」項目,系統將會檢查 vSAN Cluster 中,所有 VM 虛擬主機的硬體版本,並顯示 ESXi 成員主機支援的硬體版本,以及目前 VM 虛擬主機的硬體版本,狀態為最新版本或需要更新,管理人員依據需求全選或個別勾選在 vSAN Cluster 中,需要升級硬體版本的 VM 虛擬主機後,按下「Upgrade to Match Host」即可(如圖 26 所示)。

圖 26、檢查並準備升級 VM 虛擬主機硬體版本

同樣的,管理人員可以在彈出視窗中,選擇立即更新 VM 虛擬主機硬體版本後,按下 Upgrade to Match Host 鈕即可。倘若,VM 虛擬主機在短期間內,不方便關機升級的硬體版本的話,管理人員可以設定以排程更新的方式,一旦 VM 虛擬主機在安裝安全性更新或其它因素,需要重新啟動主機時,系統便會在重新啟動 VM 虛擬主機之前,自動更新硬體版本。

待 VM 虛擬主機更新硬體版本後,此時在 vLCM 的 VMware Tools 項目中,將會顯示此 vSAN Cluster 中有多少台 VM 虛擬主機,硬體版本已經更新至最新版本,單台 VM 虛擬主機的 VM Compatibility 欄位,將會顯示 VM 虛擬主機的硬體版本資訊,在 Status 欄位顯示 Up to Date 資訊,表示硬體版本為最新版本(如圖 27 所示)。

圖 27、順利升級 VM 虛擬主機硬體版本至最新 19 版本



結語

透過本文的深入剖析和實作演練後,相信管理人員對於升級舊有 vSphere 6.x 版本,至最新 vSphere 7.0 Update 3 版本,應該不再感到困擾和擔心,無論是 vCenter Server 管理平台,或是 ESXi 虛擬化平台,甚至是整合 vSAN 超融合基礎架構,都能夠達到無縫且順利版本升級的目的。

[站長開講] Kubernetes Summit 2022 (更新: 簡報和展示影片已上傳)

$
0
0


活動簡介

近幾年雲原生的發展逐漸走向主流,同時受到快速變化、創新以及疫情影響,全球組織與企業對容器和 K8s 的採用率都在大幅成長,將其更廣泛的作為混合雲、多雲基礎設施的平臺。

而隨著全球重要的雲端業者和虛擬化廠商全都支持之後,K8s 已經變成新的基礎架構標準,在公雲、私雲廠商紛紛支援 K8s 下,使用 K8s 執行重要任務的組織及企業大量成長,伴隨著使用者的增加,對於技術應用的需求也就越來越高。

有鑑於此,iThome 今年擴大舉辦兩日,10 月 18-19 日於臺北文創舉辦 Kubernetes Summit 2022,從「技術」、「案例」及「應用」等面向,分享 K8s 導入技術與實戰經驗,幫助你的企業在後疫情與雲原生時代之下渡過數位轉型摸索期與陣痛期。





活動資訊







站長開講 - 實戰工作坊





實作工作坊簡報




無法到場,但是對於 TCE (Tanzu Community Edition) 有興趣的朋友,可以參考下列四段實作影片,了解 TCE on vSphere部署流程,建構和部署 Tanzu Managed Cluster、Tanzu Workload Cluster 、MetalLB、Yelb。想了解更多細節的朋友,也可以參考站長在網管人的技術專欄:

首先,確認準備部署 Tanzu Cluster 的 vSphere Cluster 資訊,是否已上傳 TCE 基礎印像檔,是否準備好 TCE 使用的 vNetwork,部署 TCE 的 Datastore 儲存資源……等,前置作業準備完成後,執行部署 Tanzu Managed Cluster 的動作。


成功部署 Tanzu Managed Cluster之後,將 .yaml 檔案複製後,修改內容中 CLUSTER_NAME為 Workload Cluster 名稱,修改 VSPHERE_CONTROL_PLANE_ENDPOINT為 Workload Cluster IP 位址,即可執行部署 Tanzu Workload Cluster 的動作。


部署 MetalLB 負載平衡機制至 Tanzu Workload Cluster。


部署 Yelb 訂餐投票網頁服務容器至 Tanzu Workload Cluster。


Viewing all 591 articles
Browse latest View live