顯示具有 SDS 標籤的文章。 顯示所有文章
顯示具有 SDS 標籤的文章。 顯示所有文章

網管人雜誌

本文刊載於 網管人雜誌第 134 期 - 2017 年 3 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。



文章目錄

前言
vSAN 6.5 新功能
          iSCSI 存取
          2 台 vSAN Node 直接對接
          全功能 PowerCLI
          支援新世代硬碟 512e 進階格式
          全版本支援 All Flash
結語





前言

在 2016 年 11 月時,VMware 官方在 VMware VMworld 2016 大會上,正式發佈 VMware vSphere 6.5 最新版本並連同 VMware vSAN 6.5 版本也一起推出。簡單來說,VMware Virtual SAN(簡稱 vSAN),是 VMware 的「軟體定義儲存(Software-Defined Storage,SDS)」解決方案,它能夠將多台 x86 實體伺服器內的「本機硬碟(Local Hard Disk)」互相串連起來,進而將叢集當中所有 vSAN 節點主機的儲存資源整合起來,成為一個巨大的儲存資源池並且能夠互相共同使用。

圖 1、VMware vSAN 運作架構示意圖

事實上,從 VMware vSAN 版本的發佈頻率可知,VMware 官方對於打造 SDDC 軟體定義資料中心內,負責儲存資源的 SDS 軟體定義儲存技術的重視。第 1 代的 VMware vSAN 版本,是在 2014 年 3 月時隨著 vSphere 5.5 Update 1 版本開始內建(vSAN 1.0),接著在隔年推出第 2 代 VMware vSAN 版本,是在 2015 年 3 月隨著當時新版 vSphere 6.0 一同發佈,並直接與 vSphere 版本對齊成為 vSAN 6.0 版本(原訂新版本號應為 vSAN 2.0),在這個版本當中最重要的特色為支援 All Flash 運作架構,同時 vSAN 叢集規模可達到 64 台節點之多。
有關第 1 代 vSAN 運作架構及特色功能的詳細資訊,請參考本刊第 110 期《實戰部署 Virtual SAN套用政策自動化搭配 VM》,而第 2 代 vSAN 運作架構及特色功能的詳細資訊,請參考本刊第 114 期《動手建立 VSAN 6 儲存資源,實戰水平擴充與容錯網域》

接著,半年後於 2015 年 9 月時推出第 3 代的 vSAN 6.1 版本,其中最具代表性的功能便是「延伸叢集」(Stretched Cluster)與「支援 2 Nodes」的運作架構。再隔半年後於 2016 年 3 月推出第 4 代 vSAN 6.2 版本,在這個版本當中最重要的特色為 All Flash 運作架構,支援「重複資料刪除與壓縮」(Deduplication and Compression)及「RAID 5/6 EC 編碼技術」(RAID 5/6 Erasure Coding)。
有關第 3 代 vSAN 運作架構及特色功能的詳細資訊,請參考本刊第 120 期《VMware VSAN 延伸叢集,實作跨站點同步 HA 複寫》,而第 4 代 vSAN 運作架構及特色功能的詳細資訊,請參考本刊第 124 期《概覽 VMware VSAN 6.2 新功能加強健康狀態監控》

現在,於 2016 年 11 月隨著最新 VMware vSphre 6.5 的發佈也同時推出第 5 代的 vSAN 6.5 版本,此版本中重要的特色功能條列如下:
  • iSCSI 存取: 支援將 vSAN 儲存空間以 iSCSI目標的方式提供,讓具備 iSCSI 啟動器功能的伺服器能夠連接及使用 vSAN 儲存空間。
  • 2 台 vSAN Node 直接對接: 支援將 2 台 vSAN節點主機直接對接,讓企業及組織當中的分公司或小型企業在建置 vSAN 軟體定義儲存環境時,無須準備昂貴的 10GbE 網路交換器。
  • 全功能 PowerCLI: 在新版 vSAN 6.5 運作環境中,包括完整的 PowerCLI Cmdlet 功能讓企業及組織的自動化作業更具可擴充性及易用性。
  • 支援新世代硬體: 在新版 vSAN 6.5 運作環境中,支援新世代的 x86 硬體伺服器及相關元件,同時也支援 512e 新式大容量儲存裝置。
  • 全版本支援 All-Flash: 現在不管採用哪種 vSAN 6.5 授權版本,都可以使用及建置 vSAN All-Flash 運作架構。
圖 2、VMware Virtual SAN版本演進及新增功能示意圖





vSAN 6.5 新功能

在過去舊版的 vSAN 運作環境內,當 vSphere 管理人員將 vSAN 叢集中的節點主機儲存資源集合之後,儲存資源只能夠以「VMFS 檔案系統」的方式提供及運作 VM 虛擬主機。但是,對於需要採用其它方式使用儲存資源的應用程式或服務來說便會造成困擾,舉例來說,現行企業及組織當中有許多應用程式及服務的儲存資源,便是透過在伺服器中安裝及啟用「iSCSI 啟動器」(iSCSI Initiator)功能,然後透過 TCP/IP 乙太網路連接至「iSCSI 目標端」(iSCSI Target)所提供的 LUN 儲存資源,最後再將應用程式及服務運作在透過 iSCSI 協定所掛載的 LUN 儲存資源當中。

現在,最新版本的 vSAN 6.5 運作架構中,支援將整合後的 vSAN 儲存資源以 iSCSI 目標端的方式,提供給 iSCSI 啟動器掛載 LUN 儲存資源,有效解決過去舊版 vSAN 儲存資源美中不足的困擾。在運作規模方面,每個 vSAN 叢集最多支援提供 1,024 個 LUN 儲存資源,並且每個 LUN 儲存資源空間最大為 62 TB,同時每個 vSAN 叢集最多支援提供 128 個 iSCSI 目標

因為 iSCSI 目標所建立的 LUN 儲存資源,在 vSAN 運作架構底層中其實是以 VMDK 虛擬磁碟的方式存在,所以儲存空間與 VMDK 虛擬磁碟的限制相同為 62 TB。



iSCSI 存取

雖然,最終是以 iSCSI 協定提供儲存資源服務,但是整個運作架構底層還是建構在 vSAN 軟體定義儲存技術之上,所以當 vSAN 運作架構成型後 vSphere 管理人員若需要啟用 vSAN iSCSI 目標服務時非常簡單,並且同樣能夠以 vSAN 原有的「儲存原則」(Storage Policy),管控由 vSAN 所提供的 iSCSI LUN 儲存資源。此外,倘若運作環境中需要使用 iSCSI 的 CHAP 身分驗證機制時,那麼 vSAN iSCSI 目標也支援單向 CHAP 及雙向 CHAP 身分驗證機制。

圖 3、VMware vSAN 分散式 iSCSI Target 運作架構示意圖

啟用 iSCSI 目標服務
當 vSphere 管理人員需要啟用 vSAN iSCSI 目標服務時,請登入 vSphere Web Client 管理介面並點選叢集物件後,依序點選「Configure > Virtual SAN > General」項目,然後在 Virtual SAN iSCSI Target Service 組態設定區塊中按下「Edit」鈕,準備啟用 vSAN iSCSI 目標服務。

請在彈出的 Edit Virtual SAN iSCSI Target Service 視窗中,組態設定相關選項並在下拉式選單中選擇採用相關功能:
  • Enable Virtual SAN iSCSI target service: 請勾選此項目,以便啟用 vSAN iSCSI 目標服務。
  • Default iSCSI network: 透過下拉式選單指定屆時 vSAN iSCSI 目標服務,要採用哪個 VMkernel Port 進行 iSCSI 儲存流量傳輸作業。
  • Default TCP port: 指定 vSAN iSCSI 目標服務的連接埠號,請採用預設標準的 iSCSI 目標端連接埠號 3260 即可。
  • Default authentication: 透過下拉式選單指定 vSAN iSCSI 目標服務的身分驗證方式,預設值為 None 不啟用 CHAP 身分驗證機制,倘若需要的話 vSAN iSCSI 目標服務也支援單向 CHAP 及雙向 CHAP 身分驗證機制。
  • Storage policy for the home object: 透過下拉式選單指定 vSAN iSCSI 目標服務所要套用的 SPBM 儲存原則。
圖 4、啟用 vSAN iSCSI 目標服務功能及組態設定功能項目

建立 LUN 儲存資源
當 vSAN iSCSI 目標服務順利啟動後,接著便可以建立 iSCSI 目標及 LUN 儲存資源。請在 vSphere Web Client 管理介面中,依序點選「Configure > Virtual SAN > iSCSI Targets」項目後,在 Virtual SAN iSCSI Targets 組態設定區塊中按下「新增」鈕(綠色加號圖示),準備組態設定 vSAN iSCSI 目標及建立 LUN 儲存資源。

請在彈出的 New iSCSI Target 視窗中,組態設定相關選項並在下拉式選單中選擇採用相關功能:
  • Target IQN: 系統為 vSAN iSCSI 目標服務隨機產生的 iSCSI Target IQN。
  • Target alias: 管理人員可以為此 vSAN iSCSI 目標服務指定別名以利識別。
  • Target storage policy: 指定此 vSAN iSCSI 目標服務所要套用的 SPBM 儲存原則。
  • Network: 透過下拉式選單指定此 vSAN iSCSI 目標服務,要採用哪個 VMkernel Port 進行 iSCSI 儲存流量傳輸作業。
  • TCP port: 指定 vSAN iSCSI 目標服務的連接埠號,請採用預設的標準 iSCSI 目標端連接埠號 3260 即可。
  • Authentication: 透過下拉式選單指定此 vSAN iSCSI 目標服務的身分驗證方式,vSAN iSCSI 目標服務支援單向 CHAP 及雙向 CHAP 身分驗證機制,預設情況下請採用預設值 None 即可。
  • Add your first LUN to the iSCSI target(Optional): 請勾選此項目,以便建立及組態設定 LUN 儲存資源。
  • LUN ID: 指定此 LUN 儲存空間的 ID 數值。
  • LUN alias: 指定此 LUN 儲存空間的別名以利識別。
  • LUN storage policy: 指定此 LUN 儲存資源所要套用的 SPBM 儲存原則。
  • LUN size: 指定此 LUN 儲存資源的空間大小。
圖 5、組態設定 vSAN iSCSI 目標及 LUN 儲存資源

新增 iSCSI 啟動器存取清單
順利建立 LUN 儲存資源之後,在 Target Details 組態設定區塊中便會看到剛才所建立的 LUN 儲存資源資訊。最後,請在同組態設定區塊中切換到「Allowed Initiators」頁籤後按下「新增」鈕(綠色加號圖示),新增只有哪些 iSCSI 啟動器能夠存取此 vSAN iSCSI 目標所提供的 LUN 儲存資源。

圖 6、組態設定哪些 iSCSI 啟動器能夠存取 vSAN iSCSI 目標所提供的 LUN 儲存資源

現在,只要在允許存取 LUN 儲存資源清單中的 iSCSI 啟動器,便可以透過 TCP/IP 乙太網路順利存取由 vSAN iSCSI 目標所提供的 LUN 儲存資源。值得注意的是,根據 VMware 官方的最佳作法建議,倘若只是要運作 VM 虛擬主機的話,應該保持以原本的 VMFS 檔案系統來運作 VM 虛擬主機即可,倘若是要運作如 MSCS 微軟容錯移轉叢集或 Oracle RAC……等服務,並且規劃使用 IP-SAN(iSCSI)運作架構時才建議使用 vSAN iSCSI 目標服務。

在 vSAN iSCSI 目標服務容錯移轉的部分,因為 vSAN iSCSI 目標服務是完全整合於 vSAN 分散式運作架構,所以當 iSCSI 啟動器端連線時便會連接到 vSAN 目標端的「擁有者」(Owner)節點主機,並且由該台 vSAN 節點主機回應 iSCSI 啟動器端存取負責管理的 LUN 儲存資源。

倘若,原本負責 vSAN iSCSI 目標端擁有者的節點主機突然發生故障事件時,那麼便會由 vSAN 叢集中其它存活的節點主機接手服務,成為 vSAN iSCSI 目標端擁有者並且繼續服務 iSCSI 啟動器,而 iSCSI 啟動器便會連接至新的 vSAN iSCSI 目標端擁有者,繼續使用由 vSAN 叢集所提供的 LUN 儲存資源。

圖 7、vSAN iSCSI目標服務容錯移轉運作架構示意圖



2 台 vSAN Node 直接對接

事實上,在第 3 代 vSAN(vSAN 6.1)運作環境中,便已經支援「2 Node」的 vSAN 節點主機運作環境,也就是只要 2 台 vSAN 節點主機便能建構 vSAN 叢集,這樣的運作架構適用於企業及組織中分公司或小型運作環境時使用。然而這樣的 vSAN 運作架構雖然只有 2 台 vSAN 節點主機,卻仍需要配置 1 台昂貴的 10 Gbps 網路交換器,並且也僅用到該台 10 Gbps 網路交換器的 4 個連接埠而已,倘若考慮預防 SPOF 單點失敗情況的話,則需配置「2 台」10 Gbps 網路交換器,並且每台 10 Gbps 網路交換器只會用到 2 個連接埠而已,這對於建置分公司或小型 vSAN 運作規模的整體預算來說是項吃重的負擔。

現在,全新第 5 代 vSAN 6.5 運作環境中,原有 1 Gbps 負責 VM 虛擬主機網路傳輸的部分可繼續延用,然而原有 10 Gbps 負責 vSAN 節點主機資料同步的部分,正式支援 2 台 vSAN 節點主機透過「交叉式纜線」(Crossover Cables)的方式互相連接,無須再向過往舊版 vSAN 運作環境必須透過 10 Gbps 網路交換器。如此一來,建置分公司或小型 vSAN 運作環境時便無須再採購昂貴的 10 Gbps 網路交換器,因此能夠有效降低分公司或小型 vSAN 運作規模的整體預算,根據 VMware 官方分析調查的結果顯示可以有效降低約「20 %」的投資成本。

在組態設定部分,根據 VMware 官方的最佳作法建議,當在 vSAN 叢集當中的節點主機透過交叉式纜線互相連接之後,在 vSAN 節點主機網路流量規劃的部分,應該要將「vSAN 儲存流量」及「vMotion 遷移流量」分開在不同的 10 Gbps 纜線進行傳輸,以避免儲存或遷移流量互相干擾的情況發生,舉例來說,倘若 2 台 vSAN 節點主機正透過 vSAN 儲存流量網路大量同步資料狀態的情況下,此時又剛好以 vMotion 線上遷移機制大量遷移 VM 虛擬主機的話,那麼有可能會增加 10 Gbps 的網路延遲時間及工作負載。

因此,在 vSAN 節點主機網路流量規劃的部分,除了將儲存或遷移流量分開之外,也同時應設定為互相備援的組態配置以便故障情況發生時,能夠有另 1 個 10 Gbps 纜線進行網路流量的容錯移轉。

圖 8、2 台 vSAN 節點主機透過交叉式纜線連接後,網路流量規劃的組態配置示意圖

此外,在最新的 vSAN 6.5 版本開始,新增將「見證網路流量」(Witness Traffic)分離的功能,解決在 2 台 vSAN 節點主機上必須建立及維護靜態路由的組態設定,降低 vSAN 整體運作架構的複雜度,同時在安全性方面也得到改善,因為 vSAN 儲存網路流量與 WAN 見證網路流量得以完全分離。

因為,負責 vSAN 運作架構的見證虛擬設備不可以運作在 2 台 vSAN 節點主機上,同時一般來說 2 台 vSAN 節點主機的運作架構,通常是運作在企業及組織的分公司或遠端辦公室當中。倘若,分公司或遠端辦公室有透過 WAN 網路與主要辦公室連接時,那麼可以考慮將見證虛擬設備運作在主要辦公室當中,除了節省建置第 3 台 ESXi 主機以運作見證虛擬設備之外,將見證虛擬設備運作在主要辦公室以便統一進行管理。

圖 9、2 台 vSAN 節點主機及見證虛擬設備運作在主要辦公室運作架構示意圖



全功能 PowerCLI

在新版 vSAN 6.5 運作環境中,VMware 官方已經將 vSphere API 抽象化為簡單的 Cmdlet。因此,現在 vSphere 管理人員可以透過 VMware PowerCLI 的方式,以更快速且自動化的方式部署及管理 vSAN 運作環境:
  • 啟用重複資料刪除及壓縮機制。
  • 啟用 vSAN 效能服務。
  • 組態設定 vSAN 健康檢查服務。
  • 建立 All Flash 磁碟群組。
  • vSAN 故障網域管理。
  • 組態設定 vSAN 延伸叢集。
  • 為維護模式選擇正確的資料遷移選項。
  • 檢索儲存空間資訊。
圖 10、透過 VMware PowerCLI 管理 vSAN 運作環境示意圖



支援新世代硬碟 512e 進階格式

過去,舊有的儲存裝置(硬碟)都採用「512 Byte Sector」(又稱為 512n)格式,而新式儲存裝置「進階格式」(Advance Format,AF)則是採用「4,096 Byte Sector」(又稱為 4Kn)格式。現在,從 VMware vSphere 6.5 及vSAN 6.5 版本開始,只要配合最新的「VMFS 6」檔案系統便全面支援以「512e(512B Emulation)」的方式運作,也就是以 512e 模擬 4K 的方式運作配合實體硬碟特性增強整體運作效能。
請注意!! 採用舊版 vSAN 或 VMFS 檔案系統的話,不支援以 512e 的方式運作所以採用 512e 的儲存裝置時,可能會引發或造成潛在的運作效能問題。有關 512 / 4,096 Byte Sector 詳細資訊請參考 VMware KB 2091600

圖 11、vSAN 6.5 支援新式進階格式 512e 儲存裝置示意圖

簡單來說,「磁區大小」(Sector Size)是影響作業系統及 Hypervisor 虛擬化管理程序運作效能的關鍵,因為它是儲存裝置(硬碟)最底層 I/O 的基本單位。因此,新式 512e 與舊有 512n 相較之下,雖然新式 512e 邏輯磁區大小也是 512 Byte,但是實體磁區大小則是 4,096 Byte 這是二者間最大的不同,所以在資料的「讀取-修改-寫入」(Read-Modify-Write,RMW)行為上,新式的 512e 與舊有的 512n 相較之下,會減少許多在資料 RMW 行為時效能懲罰的部分。

雖然,原生 4Kn 不管在邏輯磁區大小或實體磁區大小都是 4,096 Byte,但是目前的情況為並非所有儲存裝置、作業系統及 Hypervisor 虛擬化管理程序都完全支援。在下列表格中,為讀者們條列舊有 512n 及新式 512e 和原生 4Kn 在邏輯及實體磁區大小上的運作差異:

請注意!! 目前最新版本的 VMware vSphere ESXi 6.5 及 vSAN 6.5 運作環境中,仍尚未支援原生 4K 儲存裝置。
在目前儲存裝置市場中,支援新式進階格式 512e 的儲存裝置空間從 300 GB 到 10 TB 都有,並且通過 VMware vSAN 6.5 版本硬體認證的 512e 硬碟約有 230 個型號,不同 OEM 硬碟供應商所通過的數量不定。建議在使用及建置前應向硬碟供應商再次確認,所使用的硬碟是否支援新式進階格式 512e,以確保屆時建置的 VMware vSAN 6.5 運作效能及穩定性。

圖 12、各家 OEM 廠商通過 VMware vSAN 6.5 版本硬體認證的 512e 硬碟統計圖



全版本支援 All Flash

雖然,VMware vSAN 從第 2 代 vSAN 6.0 版本開始便支援 All Flash 運作架構,然而在過去的 vSAN 軟體授權版本當中,至少要採用「進階版或企業版」的 vSAN 軟體授權才能夠使用 All Flash 的運作架構及特色功能。

現在,最新的 VMware vSAN 6.5 版本當中,不管採用哪種 vSAN 軟體授權版本皆支援使用 All Flash 運作架構。因此,即便是由 2 台 vSAN 節點主機所建構的小型 vSAN 運作環境,也能夠使用 All Flash 的硬體運作架構,為需要高 IOPS 儲存效能的分公司或小型 vSAN 環境提供解決方案。

值得注意的是,雖然開放「標準版」及「ROBO 版」支援採用 All Flash 硬體架構來建立 vSAN 運作環境,但是在 All Flash 運作架構中進階特色功能,例如,「重複資料刪除及壓縮」、「RAID5/6 Erasure Conding」特色功能,仍需要採用「進階版或企業版」vSAN 軟體授權才能夠使用。

此外,如果要讓建置的 vSAN 運作架構支援「延伸叢集」或「IOPS 儲存效能管控」特色功能時,那麼只能採用「企業版」的 vSAN 軟體授權才能夠使用這 2 項進階功能特色。

圖 13、VMware vSAN 6.5 軟體授權可使用特色功能示意圖





結語

透過本文的說明及實作相信讀者已經了解,在第 5 代最新 vSAN 6.5 版本當中有哪些特色功能,能夠幫助企業及組織建立更靈活、高擴充性、高可用性的 SDS 軟體定義儲存運作環境。

同時,對於企業及組織的分公司或小型企業運作環境來說,以往在建立虛擬化環境時令人困擾的初期建置成本問題,在新版 vSAN 6.5 當中透過交叉式纜線的方式解決僅 2 台 vSAN 節點主機,就必須採購昂貴 10Gbps 網路交換器的問題。

前言

自從 Windows Server 2016 推出後,大家對於 S2D (Storage Spaces Direct) 軟體定義儲存技術一直非常有興趣。本文,將要深入探討在 S2D 軟體定義儲存運作環境中「Storage Pool」的功能改進:

  • 每個 Storage Pool 最大支援「416 Drives」及 「1 PB Raw Capacity」,同時最佳建議是「One pool per Cluster」。
  • 執行「Enable-ClusterS2D」指令啟用 S2D 功能時,會自動建立 Storage Pool 並且把「合格的儲存裝置」(例如,未格式化過的磁碟) 加入到 Storage Pool 當中。同時,當加入新的 S2D 儲存節點時 (Scale-Out) 也會自動把相關的儲存裝置加入到 Storage Pool 當中,當儲存裝置發生故障時會自動退出並從 Storage Pool 當中移除。
  • 透過 S2D PM「Cosmos Darwin」撰寫的 PowerShell,可以輕鬆幫助你了解 Storage Pool 及儲存裝置空間的使用情況。






混亂的開始 (Resiliency, Slabs, Striping)

讓我們先從 3 Nodes 的 S2D 運作架構,每台 S2D Node 具備「2 x 800GB NVMe」以及「4 x 2TB SATA SSD」開始談起。




什麼是 Resiliency?

舉例來說,當我們建立「1 TB - 2WayMirror」的 Volume 時,這表示在「不同 Server、不同 Drives」必須維護共「2 份」副本資料,以便 1 份資料損壞時另 1 份仍然可用。所以,雖然建立 1TB Volume 但實際會佔用 2 TB 空間,這樣的行為稱之「Footprint on the Pool」。




什麼是 Slabs?

在建立的 1 TB Volume 儲存空間中,系統將會把它拆解成眾多的「Slab」並且每個 Slab 大小為「256 MB」(在 Windows Server 2016 技術預覽版本時稱為 Extent 大小為 1024 MB) 。因此,倘若建立 1 TB Volume 儲存空間的話便會拆解成「4,000 Slabs」。




什麼是 Striping?

當我們採用 2-Way Mirror 的方式建立 Volume 並且拆解成眾多 Slab 之後,「每個 Slab」將會建立「2 份副本」,然後透過 S2D 演算法分別存放在「不同 Server, 不同 Drives」當中。




因此,原則上眾多 Slabs 將會「平均且分散」的儲存到不同 Server 不同 Drives 當中。同時,預設情況下 Cluster 當中至少會有 5 個 Drive 儲存「Pool Metadata」以便後續「同步」(Synchronized)及「修復」(Repaired)等作業。此外,即便儲存的 Pool Metadata 都遺失,也不會影響 S2D 的部署及運作。






S2D 這樣設計的目的為何?

效能考量

將 Volume 拆解成眾多 Slab 然後平均分散放置到多個儲存媒體時,這樣可以提供「資料讀寫」的效益同時可以使用多個儲存媒體,以期「最大化 IOPS & I/O Throughput」。因此,S2D 的 2-Way Mirror 機制與傳統的 RAID-1 並不相同。



提升資料安全性

當「儲存裝置」發生故障時,原有儲存的資料副本將會在其它位置進行重建,這個行為稱之為「修復」(Repairing) 並執行下列 2 項操作步驟:

修復步驟1、從「存活」的資料副本中讀取 (讀取單位為 Bytes):
  • 想像一下,假設 S2D 沒有把 Volume 拆解成眾多 Slab 的話,那麼當 1TB Volume 副本所在的硬碟損壞時,採用的若是機械式硬碟要進行上述修復程序的第 1 項時,光是讀取 1TB Bytes 資料這個動作,可想而知整個資料重建程序將會非常緩慢!! 
  • 回到 S2D 的運作架構,有顆機械式硬碟損壞裡面存放一堆 Slab,但是這些 Slab 存活的資料副本是分佈在「不同機械式硬碟」中,有的可能在 Drive03、Drive15、Drive17……等。 
  • 重點就是,這個重建的動作可以同時使用到「多顆」機械式硬碟而非「單顆」機械式硬碟!!

修復步驟2、在其它位置寫入「新的」資料副本,以取代遺失的資料副本:
  • 原則上,只要哪裡有儲存空間就往哪裡寫。但是,機械式硬碟損壞的那台伺服器就會不再放置重新的資料副本。
  • 簡單來說,透過 Volume 打散成 Slab 的機制,不但提升資料安全性讓故障事件發生時「Resync」的等待時間縮短。






考量 Reserve Capacity

簡單來說,在你所建立的 Storage Pool 當中,應該要「預留」一些額外的儲存空間而不要都用盡!! 舉例來說,當機械式硬碟故障進行資料副本的修復程序時,才有緩衝的儲存空間可供使用。這個概念有點類似 HDD Hot Spare 但在實際運作上又有點不同。

強烈建議要預留空間,但就算沒有預留儲存空間 S2D 還是能正常運作,只是當「故障事件」發生時倘若沒有預設儲存空間的話將會影響修復速度。






自動建立儲存集區及重新負載平衡

當 S2D 叢集當中加入新的 S2D Node 時,會自動將 Slab 資料副本自動負載平衡到新的 S2D Node 當中,這個動作稱之為「最佳化」(Optimizing)「重新平衡」(Re-Balancing)。例如,在本文 S2D Cluster 中原本只有 3 Nodes 現在加入第 4 台 Node,只要鍵入「Add-ClusterNode -Name <Name>」PowerShell 指令即可。



順利將第 4 台 Node 加入後,「一開始」該 Node 的儲存裝置的使用空間還是空的。



預設情況下,經過「30 分鐘後」 S2D 將會「自動」執行「重新平衡」(Re-Balancing)的動作,但隨著運作規模大小將會需要不同的時間 (例如,幾小時)。倘若,你不希望等待 S2D 自動執行的話,可以手動執行「Optimize-StoragePool -FriendlyName "S2D*"」的 PowerShell 指令讓 S2D 立即執行重新平衡的動作,並且透過「Get-StorageJob」查看重新平衡的工作進度。



因此,當重新平衡作業執行完畢後,可以看到前 3 台 Node 的使用空間「下降」,因為平均且分散放置到第 4 台 Node 的儲存空間。






小結

  • 建立 S2D 的 Storage Pool 之後,無須再針對 Storage Pool 進行調整 (例如,新增 HDD、刪除 HDD……等)或額外再建立 Pool。
  • 建立的 Volume 會拆解成眾多 Slabs,然後平均分散到不同 Server / 不同 Drives。
  • 最好在 S2D Storage Pool 當中「預留」儲存空間,以便故障事件發生時能夠更快的進行修復作業。
  • 當 S2D 建立的 Storage Pool 加入新的 Node 時,會「自動」進行重新平衡的動作,保持資料副本平均分散到不同 Server / 不同 Drives 的原則。
  • 你可以透過「Get-StoragePool S2D*」、「Get-StoragePool S2D* | Get-PhysicalDisk」查看 S2D Storage Pool 相關資訊。
S2D PM「Cosmos Darwin」撰寫的 PowerShell





參考資源


前言

在 VMware VMworld 2016 大會上,由 VMware 執行長 Pat Gelsinger 正式發表 SDDC 軟體定義資料中心願景中最要的運作元件 VMware vSphere 6.5 及 VMware vSAN 6.5 正式推出,並且在日前 2016 年 11 月 15 日時 VMware 官方正式宣佈 vSphere 6.5 新版發佈,同時提供相關新版產品映像檔的下載。



站長將不定期撰寫相關新功能簡介文章: (更新文章符號 💩)

【簡介】




【vCenter Server】




【Security】




【Storage】




【VMware Taiwan vSphere 6.5 新功能介紹】


前言

自從 Windows Server 2016 推出後,大家對於 S2D (Storage Spaces Direct) 軟體定義儲存技術一直非常有興趣。甚至,微軟也推出 Project Kepler-47 的輕量型 OEM S2D 解決方案,讓分公司或小型運作環境也能夠享有 S2D 軟體定義儲存技術的好處。本文,將討論在 Windows Server 2016 中的 S2D 軟體定義儲存解決方案中,佔有舉足輕重地位的儲存裝置「SSD 固態硬碟」。



SSD 固態硬碟基礎知識

眾所周知 SSD 固態硬碟具有「資料讀寫壽命」的問題,隨著資料不斷大量的讀取及寫入後即便只是簡單的資料讀取都會有壽命成本的問題,在 SSD 固態硬碟運作環境中這個現象稱之為「讀取干擾 (Read Disturb)」。下列,為常見的 4 種 SSD 固態硬碟類型:

  • SLC: 1 bit per Cell (100,000 or more Write)。
  • MLC: 2 bits per Cell (10,000 ~ 20,000)。
  • TLC: 3 bits per Cell (> 1,000)。
  • QLC: 4 bits per Cell (> 100)。


因此,正確的規劃及選擇 SSD 固態硬碟便更顯現其重要性。那麼,我們來看看 SSD 固態硬碟的存取行為,一般情況下會透過「FTL (Flash Translation Layer)」連接到 NAND Flash 快閃記憶體的內部控制器。同時,FTL 具備下列 2 項機制:
  • 儲存資料時會一起儲存「ECC (Error Correcting Codes)」,當需要恢復資料時便會透過 ECC 機制進行復原的動作。
  • 具備「Over-Provisioning」機制以便超額提供儲存空間。事實上,NAND 是無法直接寫入資料的,必須經過「P/E (Program/Erase)」的處理流程後才能進行寫入資料,每個「Page」的空間最小可達「16 K」。同時,NAND 不會重複寫入同個 Page,然後 FTL 持續追蹤及更新 Erased Pages,並且合併重新寫入的資料區塊以及所對應的 Re-Written Logical Blocks,最終的結果就是 Over-Provisioning。


簡單來說,「NAND Flash SSD」是個複雜且動態的運作環境,必須要整合多項機制才能確保儲存資料的可用性。同時,隨著儲存密度不斷增加的情況下維持資料可用性的難度相形提高,目前為透過「緩衝區 (Buffers)」機制來處理這個部分。同時消費者等級與伺服器等級的 SSD 固態硬碟,在資料可用性的保護機制上也有所不同 :
  • 在「消費者等級」SSD 固態硬碟當中,透過「Volatile Cache」及「電池 (Battery)」機制以確保不會因為意外失去電源而導致資料遺失。
  • 在「伺服器等級」SSD 固態硬碟當中,則透過「電容 (Capacitor)」以提供電源保護機制。


舊式企業級 SSD」(Older Enterprise-Grade SSD),具備可拆卸及更換的「內建電池」提供電源保護機制。


新式企業級 SSD」(Newer Enterprise-Grade SSD),則是使用「電容 (Capacitor)」也就是下圖中 3 顆黃色顆粒裝置以便提供電源保護機制。


那麼,倘若在 S2D 軟體定義儲存的運作環境當中採用「消費者等級 SSD 固態硬碟」時會發生什麼事? 下列,便是採用 1TB SATA SSD (5 年保固)消費者等級的 SSD 固態硬碟進行實驗:
  • QD32 4K Read: 95,000 IOPS
  • QD32 4K Write: 90,000 IOPS
  • 資料儲存耐用性: 185 TB 


根據上述消費者等級的 SSD 固態硬碟效能數據及資料儲存耐用性,我們來估算一下這樣的消費者等級 SSD 固態硬碟其「DWPD (Device Writes per Day)」數值:
  • 185 TB / (365 days x 5 years = 1825 days) = ~ 100 GB writable per day
  • 100 GB / 1 TB total capacity = 0.10 DWPD


首先,透過 Diskspd 用「8 Threads - QD8 70 (Read):30 (Write) 4KB」的資料讀寫工作負載測試:
diskspd.exe -t8 -b4k -r4k -o1 -w30 -Su -D -L -d1800 -Rxml Z:\load.bin

可以看到測試長度為「30 分鐘」,但是從測試數據中可以看到在資料存取不到「3 分鐘」之後 IOPS 突然「下降 10,000 IOPS」,這對於消費者等級的 SSD 固態硬碟來說是非常正常的現象。因為 FTL 已經用完預設準備給 NAND 的寫入空間了,所以導致資料存取速度變得非常的慢,因為整個資料存取動作已經中斷並且必須重新準備。


同樣的工作負載,再次透過 Diskspd 用「8 Threads - QD8 70 (Read):30 (Write) 4KB」的資料讀寫工作負載測試,但是加上「Write-Through」的動作 (參數 -Suw),讓整個 NAND 的延遲時間及 FTL/Buffer 真正顯現出來。從下圖中可以看到,IOPS 效能數據的結果非常差:
diskspd.exe -t8 -b4k -r4k -o1 -w30 -Suw -D -L -d1800 -Rxml Z:\load.bin



結論

因此,在 Windows Server 2016 所建構的 S2D 軟體定義儲存環境中,應該選擇及採用具備「Non-Volatile Write Cache」及「Enterprise-Grade SSD」特性的企業級 SSD 固態硬碟。那麼,該如何確認選擇的企業級 SSD 固態硬碟支援「Non-Volatile Write Cache」機制?
  • 在 DataSheet 中看到「PLP (Power Loss Protection)」字眼,例如,Samsung SM863、Toshiba HK4E…等。
  • 在  DataSheet 中看到「Enhanced Power Loss Data Protection」字眼,例如,Intel S3510、S3610、S3710、P3700…等。




參考資源



前言

日前 (2016.12.8),在 Taiwan 舉辦的 VMware Taiwan vForum 2016 議程簡報已經開放下載了,有興趣的朋友可以參考看看。

簡報下載

主題演講




分會場 1、軟體定義資料中心




分會場 2、軟體定義儲存




分會場 3、軟體定義網路及安全




分會場 4、多雲維運與自動化




分會場 5、行動終端應用




分會場 6、Cloud Native


網管人雜誌

本文刊載於 網管人雜誌第 130 期 - 2016 年 11 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。




文章目錄

前言
實體網路基礎架構
          Leaf-Spine 網路架構
          建立多路徑路由環境
          IP MultiCast
          網路安全性
          實體網路卡配置
虛擬網路架構
          vSwitch 虛擬網路交換器
          VMkernel Port
          停用流量管控機制
          NIC Teaming
          Jumbo Frames
          Switch Discovery Protocol
結語





前言

在 VMware 所擘劃的 SDDC 軟體定義資料中心願景中,在 SDC 軟體定義運算的部分由 vSphere ESXi 虛擬化平台擔綱,而在 SDN 軟體定義網路的部分為 NSX 虛擬化平台解決方案,在 SDS 軟體定義儲存的部分,便是由 VMware Virtual SAN(簡稱 VSAN)負責。

圖 1、VMware SDDC 軟體定義資料中心願景

簡單來說,透過 VMware VSAN 技術便能夠將多台 x86 實體伺服器中,配置於實體伺服器的「本機硬碟(Local Hard Disk)」串連起來,進而將叢集當中所有叢集節點主機的儲存資源整合起來,成為一個巨大的儲存資源池並且能夠互相共用。

同時,為了提供足以運作大型運作規模的軟體定義儲存資源,因此 VSAN 支援採用「Hybrid」儲存資源運作架構,將快取資料存放於快閃式儲存(例如,SSH / NVMe)中,至於儲存資料則放於一般機械式硬碟內。倘若,需要更高的儲存效能則可以建置「All-Flash」運作架構,也就是連同資料儲存空間的部分也交由一般的 SSD 固態硬碟負責。

圖 2、VSAN 運作架構示意圖

目前,VMware VSAN 最新釋出為 6.2 版本(第 4 代 VSAN),除了原有加強監控 IOPS 效能及健康狀況外,同時也推出重複資料刪除與壓縮 、EC 編碼技術和 QoS 品質管控機制。在本文中,我們將從實體網路環境至 vSphere 虛擬化環境,深入剖析最佳規劃設計準則及相關組態設定建議,以便幫助企業及組織的管理人員打造高可用效高效能的 VSAN 運作環境。

圖 3、VSAN 版本演進及功能進化示意圖



實體網路基礎架構

在資料中心網路基礎架構中,傳統網路環境採用「Access-Aggregation-Core」的 3 層式架構,以便處理資料中心內「南 - 北(North - South)」的網路流量,同時為了避免網路環境發生「迴圈(Looping)」的情況,通常會啟用 STP(Spanning Tree Protocol)機制防止網路環境發生迴圈的情況,但也等同於將網路的整體頻寬限制在 50 %

然而,隨著虛擬化及雲端運算不斷的發展,現代化資料中心的網路架構已經改為採用架構簡單 、 可擴充性 、 高網路頻寬 、 容錯機制和 QoS 網路流量管控的「Leaf-Spine」2 層式架構。不管採用哪一種網路環境及基礎架構,在 VMware VSAN 運作環境中皆支援舊式的 3 層式網路架構或新式的 2 層式網路架構。

圖 4、 傳統 3 層式架構(Access-Aggregation-Core)與新式 2 層式架構(Leaf-Spine)示意圖



Leaf-Spine 網路架構

VMware VSAN 為 SDS 軟體定義儲存解決方案,所以在 VSAN 叢集中每台 ESXi 成員主機便是 1 台儲存資源節點主機,因此每台儲存資源節點主機之間將會有高速資料傳輸的需求(東 - 西向網路流量),應該要保持網路傳輸極低的延遲時間,否則將會造成 VSAN 儲存效能上的問題。

此外,在網路頻寬的規劃上也非常重要,舉例來說,VSAN 儲存網路環境建議採用 10 Gbps 網路頻寬環境,雖然 1 Gbps 網路環境也能運作但是將會造成 VSAN 儲存效能上的問題,因為在 1 Gbps 網路環境中假設重建儲存空間為 12 TB 時,那麼儲存資源節點主機之間的資料同步作業將需要 24 小時以上。

即便規劃 10 Gbps 網路頻寬環境搭配 Leaf-Spine 網路架構,後續在規劃 VSAN 叢集時也必須考量實務上儲存資源節點主機的放置及環境。舉例來說,如圖 5 所示可以看到為 10 Gbps 網路頻寬的 Leaf-Spine 網路架構,機櫃 1 中為編號 1 ~ 16 儲存資源節點主機而機櫃 2 為編號 17 ~ 32 儲存資源節點主機,倘若只是單純將這 32 台儲存資源節點主機建立 1 個 VSAN 容錯網域的話,那麼屆時在儲存資源節點主機之間的溝通網路頻寬,將會因為比例(4:1)的關係有可能只達到 2.5 Gbps 的水準。

因此,建議在這樣的運作環境中建立 3 個 VSAN 容錯網域(Fault Domains),假設每台儲存資源節點主機原始儲存空間為 10 TB,當設定 FTT = 1 時將會有 6 TB 空間用於保護 VM 虛擬主機,在這種情況下將會有 4/3(也就是 30 Gbps 可以進行重建資料的動作),並且在沒有發生磁碟資源爭奪的情況下只需要 26 分鐘即可完成,即便重建資料儲存空間達 12 TB 並且頻寬少到 10 Gbps,那麼重建時間也僅需要 156 分鐘即可完成。

圖 5、VMware VSAN 採用 Leaf-Spine 網路架構示意圖



建立多路徑路由環境

目前,許多企業或組織已經在資料中心網路環境內,建立 STP 機制以防止網路環境發生迴圈的情況,同時在 Layer 2 網路環境內也應建立 ECMP(Equal-Cost Multi-Path routing)、SPB(Shortest Path Bridging)或 TRILL(Transparent Interconnection of Lots of Links)……多路徑路由或最短路徑等機制。同樣的,在 VMware VSAN 運作環境中皆支援這些網路拓撲基礎架構,重要的是必須良好規劃設計 VSAN 叢集中 ESXi 成員主機的「東 - 西」向網路。

根據 VMware 官方最佳作法,在 VSAN 叢集同一個容錯網域內的 ESXi 成員主機之間,除了確保東西向網路具備低延遲網路時間之外,在實體交換器的部分應該採用「交換機堆疊」(Switch Stack)的運作架構,以滿足高可用性及網路頻寬輸送量的需求。

圖 6、ECMP 多路徑路由運作示意圖



IP MultiCast

簡單來說「IP 多點傳送」(IP Multicast)機制,是可以「1 對多」或「多對多」的 IP 網路通訊技術。一般來說,會建議將 VSAN 運作環境建立於 Layer 2 網路環境中,以便降低複雜度及管理成本。倘若,將 VSAN 運作環境建立於 Layer 3 網路環境時,那麼實體網路一定要建立 IP Multicast 機制。

在 IP 多點傳送運作環境中,使用的 IP 多點傳送位址稱為「多點傳送群組」(Multicast Group,MG)。同時,在預設情況下當 VSAN 叢集建立時,預設便會自動分配 IP 多點傳送位址給節點主機,預設的 VSAN 多點傳送群組位址為「224.1.2.3」,而 VSAN 多點傳送群組代理程式位址為「224.2.3.4」。
請注意! 倘若希望調整預設的 VSAN 多點傳送群組位址,或是 VSAN 多點傳送群組代理程式位址的話,請參考 VMware KB 2075451 文件內容即可進行調整。

在 VSAN 叢集運作環境中,叢集節點主機透過 VMkernel Port 以 IP 多點傳送機制,透過 IGMP(Internet Group Management Protocol)互相傳送 Metadata 以及加入或離開 VSAN 叢集等資訊,同時在叢集節點主機之間也是透過 IP 多點傳送機制,互相偵測對方是否存活。

在預設情況下,VSAN 叢集將會採用 IGMP v3 版本進行「交涉」(Negotiate)的動作,倘若網路環境不支援 IGMP v3 的話,那麼就會採用 IGMP v2 進行交涉的動作。VMware 最佳作法,建議在 Layer 3 網路環境中採用一致的 IGMP 版本即可。

在 VSAN 叢集運作環境中,倘若叢集節點主機之間需要跨越多個子網路時,便需要採用 PIM(Protocol Independent Multicast)機制,並且支援 4 種模式以便因應不同的應用情境,PIM-DM(PIM Dense Mode)適用於 1 對多環境,PIM-SM(PIM Sparse Mode)同樣適用於 1 對多環境,當 Layer 3 網路環境僅支援 IGMP v2 時便建議採用此模式,Bi-PIM(Bidirectional PIM)適用於多對多環境,PIM-SSM(PIM Source-Specific Multicast)適用於多對多環境,且完全支援 IGMP v3 環境中使用。

圖 7、Layer 3 網路環境 PIM-SSM 運作機制示意圖

Layer 2 網路規劃建議
當你決定將 VSAN 架構運作於 Layer 2 網路環境時,下列為 Layer 2 網路規劃建議假設採用 VLAN ID 1,並且 IGMP Querier 運作於網路交換器上而非路由器。值得注意的是,務必確認實體網路交換器支援 IGMP v2 或 IGMP v3(例如,Cisco Nexus 交換器支援 IGMP v3,而 Brocade VDX 交換器僅支援 IGMP v2)。

圖 8、 運作於 Layer 2 網路環境的 VSAN 架構示意圖

Layer 3 網路規劃建議
當你決定將 VSAN 架構運作於 Layer 3 網路環境時,表示屆時 VSAN 叢集節點主機之間將有 Layer 3 設備(例如,L3 網路交換器或路由器)。同時,因為必須針對每個 Layer 3 分區送出請求,所以 IGMP Querier 必須是預設閘道,並且必須具備多點傳送群組的成員資格以便執行加入及更新 PIM 的動作。

圖 9、 運作於 Layer 3 網路環境的 VSAN 架構示意圖



網路安全性

與其它 IP 儲存網路流量一樣,在 VSAN 儲存網路中儲存資源節點主機之間的流量並「沒有加密」。因此,在規劃設計 VSAN 儲存網路時,應該規劃獨立且安全的 VLAN 網段進行 VSAN 儲存流量隔離。倘若,管理人員需要更高的安全性,那麼可以在更高運作層級中進行資料加密的動作即可,舉例來說,可以在 VM 虛擬主機的客體作業系統中執行資料加密工作任務。

實體網路卡配置

下列為 VSAN 叢集運作環境中,為每台 ESXi 主機規劃設計實體網路卡時的配置建議:

  • 至少配置 1 個專屬於 VSAN 儲存流量的實體網路卡。建議配置 2 個或以上實體網路卡,以便達到 VSAN 儲存流量負載平衡及容錯移轉機制。
  • 建議將 VSAN 儲存流量(VMkernel Port),在 Layer 2 層級以 VLAN 隔離以維持基本網路安全性。倘若,需要與其它網路流量共用(例如,VM 虛擬主機 、vSphere vMotion……等),那麼務必要搭配 NIOC(Network I/O Control)網路流量頻寬管控機制。
  • 在 Hybrid VSAN 運作架構中,若採用 1 Gbps 網路頻寬則必須規劃多個且專屬的實體網路卡,建議改為採用 10 Gbps 網路頻寬環境。
  • 在 All Flash VSAN 運作架構中,倘若採用 SATA SSD 固態硬碟時仍可採用 10 Gbps 網路頻寬環境,倘若採用 SAS、NVMe、PCIe 或 Ultra DIMM 等快閃儲存資源時,建議採用 25 Gbps 或 40 Gbps 網路頻寬環境(甚至 100 Gbps 也支援)。






虛擬網路架構

了解 VSAN 運作架構中實體網路環境的部分後,接下來我們將 VSAN 叢集的規劃設計重點轉移到 vSphere 虛擬化環境中,我們將依序討論 vSwitch 虛擬網路交換器和 VMkernel Port,然後再深入至 NIC Teaming 負載平衡機制及交換器探索機制的部分。


vSwitch 虛擬網路交換器

在 VSAN 運作環境中,支援「標準型交換器」(vNetwork Standard Switch,vSS)或「分散式交換器」(vNetwork Distributed Switch,vDS)。VMware 最佳作法,建議管理人員採用 vDS 分散式交換器,主要原因是 vSS 並不支援相關進階管理功能,並會增加企業及組織在管理 VSAN 運作環境中的營運成本,舉例來說,vSS 不支援 LBT(Load Based Teaming)負載平衡機制 、LLDP(Link Layer Discovery Protocol)交換器環境探索機制 、NIOC(Network IO Control)網路流量管控機制……等。
請注意! 有關 vSS 標準型交換器及 vDS 分散式交換器,這兩種虛擬化網路交換器的功能差異詳細說明,請參考 VMware KB 1010555 文件內容。
圖 10、vDS 分散式交換器啟用 NIOC 網路流量管控示意圖

值得注意的是,當 vDS 分散式交換器啟用 NIOC 網路流量管控機制後,共有 3 種管控流量的方式分別是「共用率值」(Share)、「保留」(Reservation)、「限制」(Limit)。VMware 最佳作法,考量網路頻寬整體使用率及管理方便度和靈活性,建議採用共用率值的方式進行網路頻寬的管控動作。只要在 vSphere Web Client 管理介面中,依序點選「首頁 > 網路功能 > vDS Switch > 管理 > 資源配置」項目,即可針對網路流量進行頻寬管理的組態設定。

此外,如果 VM 虛擬主機有啟用 vSphere FT 高可用性機制的話,那麼也請將 vSphere FT 網路流量的共用率值提升,因為 vSphere FT 為「延遲時間敏感」(Latency-Sensitive)類型的網路流量,倘若發生網路頻寬不足的情況將會造成受保護的 VM 虛擬主機,發生非預設的運作錯誤。

圖 11、vDS 分散式交換器啟用 NIOC 網路流量管控機制



VMkernel Port

完成 vSwitch 虛擬網路交換器的規劃後,接著便是新增 VMkernel Port 來處理 VSAN 儲存流量。基本上,ESXi 虛擬化平台上所有類型的流量,都會透過 VMkernel Port 服務類型的組態設定後進行傳送,並且在 VMkernel Port 當中除了 ESXi 主機的管理網路流量之外,還有其它類型的網路流量。舉例來說,VMkernel Port 還負責 vSphere vMotion、iSCSI、NAS/NFS、VSAN、vSphere Replication 及 vSphere FT……等網路流量。

在舊版 vSphere 5.5 時,VMkernel Port 網路流量類型只有 4 種。在新版 vSphere 6.0 運作環境中,VMkernel Port 網路流量則細分為 7 種,其實是將原本歸納於管理流量的相關網路流量,再細分後拆出來成為獨立的網路流量,分別是佈建流量、vSphere Replication 流量、vSphere Replication NFC 流量。

其中,「佈建流量」負責處理 VM 虛擬主機「複製」(Cloning)、「冷遷移」(Cold Migration),以及建立「快照」(Snapshot)時所產生的網路流量,同時當採用的儲存資源若未支援 VAAI(VMware vSphere Storage APIs Array Integration)硬體卸載功能時,產生的佈建網路流量將會更為明顯。
請注意! 有關 VAAI 硬體卸載功能的詳細資訊,請參考 VMware KB 1021976

「vSphere 複寫流量」項目,則是負責處理 ESXi 主機傳輸複寫資料至 vSphere Replication 虛擬設備時使用,「vSphere 複寫 NFC 流量」項目,負責處理 vSphere Replication 虛擬設備從網路環境複製檔案,至 ESXi 主機 Datastore 儲存資源之間的網路流量。

請依序執行下列操作步驟,即可透過 vSphere Web Client 管理工具建立 VMkernel Port,並加入至現有的 vSwitch 虛擬網路交換器中:

1. 在本文實作環境中,請開啟瀏覽器鍵入網址 https://vcenter.vdi.weithenn.org:9443/vsphere-client,鍵入管理者帳號密碼後便能透過 vSphere Web Client 管理工具,連接至 vCenter Server 執行個體。
2. 依序點選「首頁 > 主機和叢集」項目後,點選準備建立 VMkernel Port 的 ESXi 主機。
3. 依序點選「管理 > 網路功能 > VMkernel 介面卡」項目後,按下「新增網路」圖示。此時,管理畫面將會彈出新增網路精靈視窗。
4. 在選取連線類型視窗中,請點選「VMkernel 網路介面卡」項目後,按下一步鈕。
5. 在本文實作環境中,我們要將 VSAN 用途的 VMkernel Port 加入至現有的 vDS 分散式交換器中,因此選擇「選取現有網路」項目後按下瀏覽鈕,選擇要將 VMkernel Port 加入至哪個連接埠群組內(本文實作環境中,vDS 分散式交換器名稱為 Dswitch,而連接埠群組名稱為 DPortGroup),請按下一步鈕繼續組態設定程序。
6. 在連接埠內容頁面中,請於啟用服務設定區塊中勾選「Virtual SAN 流量」項目,以便為此 VMkernel Port 啟用 VSAN 儲存流量,請按下一步鈕繼續組態設定程序(如圖 12 所示)。
7. 在 IPv4 設定頁面中,請為 VMkernel Port 指定採用 DHCP 動態取得 IPv4 位址,或選擇採用靜態 IPv4 設定,手動為 VMkernel Port 指定 IP 位址及子網路遮罩等網路資訊。建議為每台 VSAN 叢集節點主機設定固定的 IPv4 位址,請按下一步鈕。
8. 在即將完成頁面中,檢視 VMkernel Port 組態設定內容正確無誤後,按下完成鈕系統便立即於剛才選定的 vDS 分散式交換器,以及所屬的連接埠群組中建立 VMkernel Port 並啟用 VSAN 儲存流量功能。

圖 12、建立 VSAN 用途的 VMkernel Port 並勾選啟用 VSAN 流量項目

請注意! 倘若 VSAN 用途的 VMkernel Port 網段,與 ESXi 主機的管理網路不同(採用不同預設閘道及 DNS 伺服器 IP 位址),那麼便需要建立及採用非預設值的 TCP/IP 堆疊。有關建立 VSAN 用途的 VMkernel Port 及 TCP/IP 堆疊的詳細資訊,請參考 VMware KB 2058368 文件內容。



停用流量管控機制

在 VMware VSAN 軟體定義儲存的網路環境中,VSAN 不管採用 vSS 標準型交換器或 vDS 分散式交換器,都必須與 ESXi 主機的實體網路卡(在 vSphere 環境中稱為 Uplink)進行關聯,以便屆時其上運作的 VM 虛擬主機能夠透過 Uplink 與實體網路環境溝通。

預設情況下,在 vSphere 虛擬化環境中所有的 Uplink 都會啟用「流量管控」(Flow Control)機制。因為,在乙太網路環境運作架構中,倘若 ESXi 主機不堪網路流量沈重的工作負載時,將會送出「暫停封包」(Pause Frames),以便通知在網路流量發送端暫時停止網路傳輸。

但是,在 VSAN 運作環境中已經內建「壅塞管理」(Congestion Management)機制,能夠有效防止因為網路流量爆發而產生壅塞的情況,或者是因為快取及緩衝機制所導致的壅塞。因此,VMware 官方最佳作法為建議將 VSAN 叢集中所有 ESXi 成員主機,組態設定 VSAN 用途的 VMkernel Port「停用」(Disable)Flow Control 機制,以避免與內建的壅塞管理機制互相干擾。
請注意! 有關如何在 VSAN 叢集節點主機中,組態設定 VMkernel Port 停用 Flow Control 機制的詳細資訊,請參考 VMware KB 1013413 文章內容。



NIC Teaming

在 VSAN 運作架構中啟用 NIC Teaming 功能後,若採用「Port ID」、「Source MAC」、「IP Hash」等原則時,其實僅具備高可用性(容錯移轉)特色並沒有負載平衡功能。VMware 最佳作法,當採用 vDS 分散式交換器時能夠使用特殊 NIC Teaming 機制,也就是「LBT(Load Based Teaming)」的負載平衡機制,啟用後將會每隔 30 秒偵測實體網路卡流量並進行流量負載平衡作業。

圖 13、LBT(Load Based Teaming)負載平衡機制運作示意圖

圖 14、將 NIC Teaming 負載平衡機制調整為 LBT 模式

請注意! 有關 NIC Teaming 負載平衡及容錯移轉機制的詳細資訊,請參考 VMware KB 2006129KB 1004048 文件內容。



Jumbo Frames

VSAN 運作架構中支援 Jumbo Frames,但是並非運作 VSAN 環境的必要條件。在 VMware 的測試結果中,發現 Jumbo Frames 機制可以減少 CPU 使用率並提高輸送量,但是因為 vSphere 已經使用 TCP Segmentation Offload(TSO)及 Large Receive Offload(LRO)機制,所以 Jumbo Frames 的幫助其實是有限的。
請注意! 有關 TSO 及 LRO 的詳細資訊,請參考 VMware KB 2055140 文件內容。

VMware 最佳作法,建議採用現有的 MTU/Frame Size 即可。也就是說倘若企業及組織的資料中心內已經啟用 Jumbo Frames 機制,那麼 VSAN 用途的網路環境也請啟用 Jumbo Frames。倘若資料中心並沒有啟用 Jumbo Frames,那麼不必單獨為 VSAN 網路特地啟用 Jumbo Frames。

圖 15、在 vSphere 運作環境中啟用 Jumbo Frames 機制



Switch Discovery Protocol

在 vSphere 虛擬化網路環境中,偵測實體網路環境探索協定分別支援 CDP(Cisco Discovery Protocol)及 LLDP(Link Layer Discovery Protocol)。值得注意的是,採用 vSS 標準型交換器僅支援 CDP,採用 vDS 分散式交換器才支援 CDP/LLDP。同時,VMware 最佳作法為不管採用 CDP 或 LLDP 皆請開啟傳送及接受模式。

圖 16、啟用 LLDP 探索通訊協定並啟用傳送及接受模式



結語

透過本文的說明及實作,從實體網路環境到 vSphere 虛擬化網路環境,相信企業或組織的 IT 管理人員只要遵從 VMware 官方的最佳作法及建議進行設計規劃,便能建構出高可用性、高效能並具備靈活性的 VSAN 軟體定義儲存環境。