網管人雜誌
本文刊載於 網管人雜誌第 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 2006129、KB 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 探索通訊協定並啟用傳送及接受模式