下面這篇文章摘選自《VMware 軟件定義存儲》第 6 章。文末有贈書(shū)規則。
Web-Scale 這一詞的概念,最早是由 Gartner 在 2013 年提出,指的是一種架構方法,基于這種方法超大規模云提供商(如 Google,Amazon,Facebook,Netflix 和其他廠(chǎng)商等)可以為大型企業(yè) IT 組織和服務(wù)提供商提供所需的服務(wù)保障能力,建立和運維一個(gè)極大規模的基礎設施平臺。同時(shí),Web-Scale 的目的也不僅僅是構建極大規模的基礎架構,還可通過(guò)一套固定的流程和架構標準化來(lái)提高基礎架構運營(yíng)的敏捷性。
Web-Scale 不是一項單一的技術(shù),它是一種適用于任意規模數據中心的架構和管理的方法論,借助于標準化和可重復的構建塊(building-block)的設計方法,構建滿(mǎn)足不同業(yè)務(wù)需求的基礎架構。
以下是大型企業(yè) IT 組織或云服務(wù)提供商在考慮構建基于 Web-Scale 的基礎架構時(shí)的關(guān)鍵要求:
- 能夠在 x86 服務(wù)器上提供超融合架構(HCI)平臺,具有完全集成的計算和存儲組件。
- 能夠以分布式方式提供數據和應用服務(wù),包括集群范圍內分發(fā)資源的能力。
- 系統基礎架構的高可用和自我修復,包括能夠提供故障隔離和分布式系統恢復能力。
- 通過(guò)軟件定義的數據中心概念提供 API 驅動(dòng)的自動(dòng)化,以及通過(guò)底層基礎架構監控進(jìn)行綜合分析。
- 為工作負載提供關(guān)鍵服務(wù)需求時(shí),具備跨平臺同時(shí)托管多種應用類(lèi)型的能力。
如第 4 章“使用 Virtual SAN 實(shí)現策略驅動(dòng)的存儲設計”所強調的,Virtual SAN 集群具有強大的可擴展性,vSphere 6 中最多可以配置 64 個(gè)節點(diǎn),可以輕松支持成千上萬(wàn)的虛擬機工作負載。在設計 Web-Scale 的 Virtual SAN 平臺時(shí),您有兩種基本的設計策略:
- 縱向擴展:每個(gè) Virtual SAN 主機都有更多的存儲資源可用,但總體 Virtual SAN 節點(diǎn)數較少。
- 橫向擴展:通過(guò)增加 Virtual SAN 節點(diǎn)數量來(lái)擴展,但最終占據更大的總體空間。
在 Web-Scale 的架構設計中,架構師通常要同時(shí)考慮縱向擴展和橫向擴展。設計上不僅僅考慮每個(gè) Virtual SAN 集群是否擁有更少的較大資源主機或更小的節點(diǎn),還要更多的結合用戶(hù)的業(yè)務(wù)情況設計構建塊,結合縱向和橫向擴展架構搭建一個(gè)標準和可控的基礎架構。
6.1 縱向擴展架構
Virtual SAN 環(huán)境中的縱向擴展策略是指增加每個(gè)主機上可用的存儲資源的數量。這可以通過(guò)增加每個(gè)磁盤(pán)組中的容量磁盤(pán)數量或增加每個(gè) Virtual SAN 主機上的磁盤(pán)組數量來(lái)實(shí)現。Virtual SAN 是完全支持將容量磁盤(pán)添加到現有磁盤(pán)組的,如圖 6.1 所示。企業(yè)或服務(wù)提供商在設計 Web-Scale 架構時(shí)會(huì )為磁盤(pán)組配置定義好的構建塊標準,例如按 1:4 比例配置混合磁盤(pán)組,一塊閃存盤(pán)為四塊容量機械磁盤(pán)提供寫(xiě)入緩存和讀取緩存。
Virtual SAN 支持由一塊耐久性高的閃存設備和最多七塊容量磁盤(pán)組成磁盤(pán)組,這七塊容量磁盤(pán)可以是機械硬盤(pán),也可以是閃存盤(pán),取決于設計上要使用的磁盤(pán)組類(lèi)型。此外,Virtual SAN 集群中的每個(gè)主機最多可以支持五個(gè)磁盤(pán)組,每個(gè)磁盤(pán)組都為分布式 Virtual SAN 數據存儲的總容量提供存儲資源。
如第 4 章所述,使用多個(gè)較小的磁盤(pán)組而不是單個(gè)大型磁盤(pán)組,可以減少故障域,當容量磁盤(pán)故障時(shí)重建的組件也會(huì )相應變少,從而重建的時(shí)間會(huì )更快。使用多個(gè)較小的磁盤(pán)組,如圖 6.2 所示,性能也得到了提升,在混合模型中性能提升更加明顯。在磁盤(pán)組架構中使用更多的閃存設備,使得閃存和容量存儲之間的比例變小,更多的數據將會(huì )駐留在閃存設備高速的讀取緩存中,Virtual SAN 將獲得更好的性能。
綜上所述,Virtual SAN 的配置很重要。為了在分布式 Virtual SAN 數據存儲上獲得一致性的性能,建議在集群中的所有節點(diǎn)上采用統一的磁盤(pán)組配置。并且從 Virtual SAN 集群 Web-Scale 架構角度來(lái)說(shuō),更加不建議對 Virtual SAN 不同的節點(diǎn)采用不同的配置。
Web-Scale 架構設計中的縱向擴展部分還要考慮每個(gè) Virtual SAN 主機的存儲 I / O 控制器的數量。在不同存儲控制器上創(chuàng )建磁盤(pán)組時(shí),會(huì )降低故障域,同時(shí)控制器隊列分布在所有的存儲控制器上,會(huì )帶來(lái)更加出色的存儲性能。
另一個(gè)設計上的考慮點(diǎn)還包括使用 SAS 擴展器代替額外的存儲控制器。這種存儲技術(shù)可以超出普通存儲控制器 8、12、16 或 24 塊驅動(dòng)盤(pán)的限制,最大限度的利用 SAS 存儲擴展器的存儲能力。
SAS 擴展器將額外的驅動(dòng)盤(pán)放在單個(gè)存儲控制器后面,比添加存儲控制器更加節省成本。然而,SAS 擴展器的性能和可靠性應被視為設計上的風(fēng)險。通常不推薦將 SAS 擴展器包含在任何 VirtualSAN 平臺中。
【編者 Peter Ye 按開(kāi)始】
VMware 建議避免調整 SAS Expander(擴展卡):
- SAS Expander不需要驅動(dòng),通常對系統來(lái)說(shuō)是透明的,所以用戶(hù)比較難注意到 Expander 的存在;
- Build Your Own 不支持 Expander;
- vSAN SAS Expander 注意事項的細節
- 除了 DELL R730XD,每超過(guò) 8 塊盤(pán),再需要額外的存儲控制器
http://cormachogan.com/2015/07/27/sas-expander-support-on-virtual-san/
通過(guò) vSAN 認證的,支持 SAS Expander 的,也就是說(shuō)一個(gè)控制器可以支持超過(guò) 8 塊盤(pán)的,為數不多。目前 DELL 有 R730XD(24 塊盤(pán))、HPE 有 DL380 Gen10 with SAS Expander(24 塊盤(pán))
- 多數情況下,每個(gè)控制器僅支持最多 8 塊盤(pán) ,有的支持 16 塊盤(pán)
舉例:LSI MegaRAID SAS 9260-16i 支持 16 個(gè)內部端口,也即最多 16 塊盤(pán);9261-8i 只支持 8 個(gè)內部端口,也即支持最多 8 塊盤(pán)。
參考:vSAN 硬件快速參考指南
https://www.vmware.com/resources/compatibility/vsan_profile.html?locale=zh_CN
SAS 擴展器僅在就緒節點(diǎn)中支持。請查看就緒節點(diǎn)列表以獲得支持。如果 SAS 擴展器不支持就緒節點(diǎn),則每個(gè)控制器僅支持 8 個(gè)或 16 個(gè)驅動(dòng)器(具體取決于控制器型號)。如果需要 8 個(gè)或 16 個(gè)以上的驅動(dòng)器,請額外添加一個(gè)控制器。
【編者 Peter Ye 按結束】

圖 6.1 磁盤(pán)組縱向擴展策略(增加容量磁盤(pán))

圖 6.2 磁盤(pán)組縱向擴展策略(增加磁盤(pán)組)
6.2 橫向擴展架構
橫向擴展策略是指將新主機添加到 Virtual SAN 集群中,同時(shí)增加存儲資源和計算資源。這里需要說(shuō)明的是,Virtual SAN 計算資源的橫向擴展是可以獨立于存儲單獨實(shí)現的,但增加 Virtual SAN 節點(diǎn)無(wú)法只擴展存儲資源,除非使用基于 DAS 的 JBOD 硬件。
Virtual SAN 支持在正常操作期間熱添加節點(diǎn)和磁盤(pán)組,無(wú)需停機。然而,與數據中心的大多數物理硬件打補丁需要進(jìn)入維護窗口一樣,Virtual SAN 這些操作通常建議應在軟件維護窗口期執行。
圖 6.3 說(shuō)明了 Virtual SAN 如何擴展以滿(mǎn)足最苛刻的企業(yè)或服務(wù)提供商的環(huán)境需求。Web-Scale 架構下的單個(gè) Virtual SAN 集群最大 64 個(gè)節點(diǎn)可以輕松支持數以萬(wàn)計的虛擬工作負載。

圖 6.3 基于 Virtual SAN 的 vSphere 集群縱向擴展和橫向擴展到 8 個(gè)主機
6.3 基于 vSphere 主機集群的 Web-Scale 設計
Virtual SAN 集群是共享存儲資源的邊界。因此,在規劃多個(gè)大型集群的設計時(shí),請考慮以下關(guān)鍵注意事項:
- 容量規劃:盡管用較少數量的大型集群(大型集群指的是單個(gè)集群節點(diǎn)數多)來(lái)規劃未來(lái)擴展可能更為簡(jiǎn)單,但在總體主機數量固定的前提下,從單個(gè)集群容納的主機數量上限角度去考慮構建塊設計,能更好的實(shí)現集群橫向擴展。例如,16個(gè)24節點(diǎn)的集群和6個(gè)64節點(diǎn)的集群相比,總體主機數量相同,但前者24節點(diǎn)集群顯然更適合按照構建塊方式來(lái)進(jìn)行集群橫向擴展。
- 硬件成本:由于 Virtual SAN 集群需要一定數量的備用存儲資源防止出現故障,在考慮 Web-Scale 時(shí),數量巨大的較小資源的 Virtual SAN 集群會(huì )導致硬件成本更高。
- 安全:在多租戶(hù)或多業(yè)務(wù)環(huán)境中,將租戶(hù)或業(yè)務(wù)組放到專(zhuān)門(mén)的 Virtual SAN 集群是分割負載的一個(gè)好方法,并通過(guò)基于角色的訪(fǎng)問(wèn)控制(Role-based Access Control,RBAC)控制訪(fǎng)問(wèn)。
- 性能:在多租戶(hù)或多業(yè)務(wù)環(huán)境中,將租戶(hù)工作負載或特定業(yè)務(wù)應用放到專(zhuān)門(mén)的 Virtual SAN 集群,確保設計的資源始終為這些用戶(hù)和應用使用。
6.4 構建塊集群和 Web-Scale 橫向擴展架構
Virtual SAN 集群設計的一個(gè)簡(jiǎn)單并可擴展的方法是構建塊方法,這個(gè)方法也被多個(gè)云服務(wù)提供商和大型企業(yè)私有云客戶(hù)使用。構建塊的每個(gè)集群都是一個(gè)標準的資源容器,提供簡(jiǎn)單、可擴展的計算和存儲資源。按照這種方法,不僅可以實(shí)現跨數據中心擴展,還可以保證擴展的一致性,消除配置偏差,減少運維工作量。這種方法同時(shí)也是最簡(jiǎn)單和最有效的方式,以靈活的解決方案,滿(mǎn)足大型企業(yè) IT 組織和云服務(wù)提供商的 Web-Scale 和平臺擴展需求。這種構建塊方法通過(guò)對 Virtual SAN 主機、集群和服務(wù)器機柜的配置制定構建標準,使得管理和支持基礎架構的工作變得更加便利。
在大規模部署時(shí),標準化的構建塊對基礎架構的可管理性和可支持性至關(guān)重要,它通過(guò)對 Virtual SAN 主機和集群的物理和邏輯配置標準化,消除了大規模部署時(shí)的差異性。在 Virtual SAN 的 vSphere 集群中主要通過(guò) vSphere 主機配置文件(Host Profile)實(shí)現標準化,主機配置文件可以跨主機和 Virtual SAN 的集群保持構建塊配置的一致性。
6.5 Web-Scale 架構的物理資源設計
對于設計一個(gè)可擴展且規模達到數百甚至數千臺主機,提供 PB 級存儲,并支持大型復雜網(wǎng)絡(luò )的虛擬基礎架構,如何提高擴展性是一個(gè)關(guān)鍵問(wèn)題。在擴展大型物理 Virtual SAN 平臺同時(shí)又要保證平臺可控,符合合規性以及保障安全,從規劃擴展性的第一天開(kāi)始,就要采用預定義的構建塊方法進(jìn)行設計。
此外,每個(gè)主機的安裝和配置過(guò)程都應該標準化,讓每個(gè)組件的安裝步驟保持一致。物理組件配置的標準化對于 Web-Scale 基礎架構的可管理性、一致性和可支持性等方面至關(guān)重要。整個(gè)過(guò)程的標準化消除了差異性,減少了補丁管理涉及的工作量,提供了一個(gè)更加靈活的構建塊解決方案。
盡管 Virtual SAN 平臺配置和擴展的一些方面可能取決于硬件供應商,但這些也應該是 Web-Scale 的 Virtual SAN 平臺設計需要考慮的一部分。圖 6.4 所示的示例描述了一個(gè)常見(jiàn)的構建塊場(chǎng)景。
在這個(gè)例子中,每個(gè) Web-Scale 的單元由 96 個(gè)機架式 Virtual SAN 主機組成,配置為四個(gè) 24 節點(diǎn)集群,主機平均安放在六個(gè)服務(wù)器機柜中。每個(gè) Web-Scale 的單元還包含兩個(gè) 48 端口 10GbE 交換機和兩個(gè) 1GbE IPMI 管理交換機,用于帶外連接。每個(gè)單元設計為 Virtual SAN 提供多個(gè)故障域,以及計算和網(wǎng)絡(luò )資源。
本示例中的 Web-Scale 單元的數量可以根據設計要求,以及軟硬件限制,相應地進(jìn)行橫向擴展。
如圖 6.5 所示,每個(gè)包含 96 臺主機的 Web-Scale 單元可以橫向擴展,并在多個(gè)數據中心可用性區域和物理數據中心之間形成一個(gè)真正的 Web-Scale 平臺。
本示例中,每個(gè) Web-Scale 單元中的 vSphere 組件由單個(gè) vCenter Server 實(shí)例進(jìn)行管理。表 6.1 提供了此構建塊 Web-Scale 架構的每個(gè)組件的計算、存儲和網(wǎng)絡(luò )資源清單。

圖 6.4 Web-Scale 單元邏輯架構設計
表 6.1 構建塊 Web-Scale 架構擴展性示例


注意: 在此示例中,IOPS 基于 70% 讀取和 80% 混合(隨機)I/O 負載

圖 6.5 Web-Scale 單元數據中心橫向擴展策略
這個(gè)例子只是 Web-Scale 平臺架構中的一種。這種級別的可擴展的 Virtual SAN 物理基礎架構平臺設計非常復雜,它在 Web-Scale 構建塊設計方面的關(guān)鍵考量點(diǎn)如下:
- 平臺增長(cháng)預期
- 硬件可用性和交貨周期
- 物理硬件擴展性限制(如管理工具)
- 建設費用支出和硬件折舊考慮
- 數據中心電源,空間,區域及冷卻限制
6.6 Web-Scale 葉脊架構
傳統的三層(核心、匯聚和訪(fǎng)問(wèn))網(wǎng)絡(luò )拓撲架構,雖然對網(wǎng)絡(luò )數據進(jìn)出數據中心進(jìn)行過(guò)優(yōu)化,但并不適用于 Web-Scale 的 Virtual SAN 平臺跨機架內部數據傳輸。
另一方面,在第 4 章中介紹的葉-脊(Leaf-Spine)架構使用一個(gè)多重拓撲,通過(guò)使用等價(jià)多路徑(ECMP)來(lái)主動(dòng)管理兩個(gè)端點(diǎn)之間的多個(gè)路徑。此外,Spine 設備使用高端口計數平臺并基于層疊式 Clos(或胖樹(shù))的設計實(shí)現部署,無(wú)需再使用其他交換機組件。葉-脊(Leaf-Spine)拓撲的關(guān)鍵特性與 Web-Scale 的 Virtual SAN 平臺相關(guān),包括:
- 可變長(cháng)度的 Spine 使用 E
- AN 集群都應使用專(zhuān)有的 VLAN 進(jìn)行隔離復制和工作負載。這將 VirtualSAN 集群流量與任何外部干擾隔離開(kāi)來(lái),更方便地進(jìn)行故障排查。
- 在 Virtual SAN 6 中,為了使 Virtual SAN 集群能夠支持 64 個(gè)節點(diǎn),必須在集群所有主機上設置三個(gè)選項:
1. 集群中每個(gè)主機設置高級選項,增加節點(diǎn)支持:
esxcli system settings advanced set -o/VSAN/goto11 -i 1

圖 6.6 Web-Scale 葉-脊架構
2. 增加 TCP / IP 堆大小:
esxcli system settings advanced set –o/Net/TcpipHeapMax –i 1024
3. 將客戶(hù)端限制設置為 65,最多允許 64 臺主機:
esxcli system settings advanced set -o/CMMDS/clientLimit 65
必須重新啟動(dòng)所有主機才能使這些更改生效。此外,還應該查看 VMware 知識庫上相關(guān)文章的最新配置建議。
此外,Web-Scale 擴展設計包括以下最大值:
- 在 Virtual SAN 5.5 中集群最多 32 個(gè)節點(diǎn),6.2 中集群最多 64 個(gè)節點(diǎn)。
- 每個(gè)混合磁盤(pán)組中都只能使用一個(gè)緩存閃存設備。
- 每個(gè)磁盤(pán)組可以使用 1 到 7 個(gè)容量機械磁盤(pán)或容量閃存設備。
- 每個(gè)主機最多有 5 個(gè)磁盤(pán)組。
- Virtual SAN 5.5 VMDK 大小最多為 2TB, 6.2 中最大 62 TB。
- Virtual SAN 5.5 中每個(gè)主機最多可容納 100 個(gè)虛擬機,6.2 每個(gè)主機的虛擬機數為 200。
除了這些設計最大值外,表 6.2 還強調了在規劃大型 Virtual SAN 部署時(shí)需遵守的最大值。
表 6.2 Virtual SAN 6.0、6.1、或 6.2 最大值
