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

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

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

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

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


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

圖 6.5 Web-Scale 單元數(shù)據(jù)中心橫向擴展策略
這個例子只是 Web-Scale 平臺架構中的一種。這種級別的可擴展的 Virtual SAN 物理基礎架構平臺設計非常復雜,它在 Web-Scale 構建塊設計方面的關鍵考量點如下:
- 平臺增長預期
- 硬件可用性和交貨周期
- 物理硬件擴展性限制(如管理工具)
- 建設費用支出和硬件折舊考慮
- 數(shù)據(jù)中心電源,空間,區(qū)域及冷卻限制
6.6 Web-Scale 葉脊架構
傳統(tǒng)的三層(核心、匯聚和訪問)網(wǎng)絡拓撲架構,雖然對網(wǎng)絡數(shù)據(jù)進出數(shù)據(jù)中心進行過優(yōu)化,但并不適用于 Web-Scale 的 Virtual SAN 平臺跨機架內部數(shù)據(jù)傳輸。
另一方面,在第 4 章中介紹的葉-脊(Leaf-Spine)架構使用一個多重拓撲,通過使用等價多路徑(ECMP)來主動管理兩個端點之間的多個路徑。此外,Spine 設備使用高端口計數(shù)平臺并基于層疊式 Clos(或胖樹)的設計實現(xiàn)部署,無需再使用其他交換機組件。葉-脊(Leaf-Spine)拓撲的關鍵特性與 Web-Scale 的 Virtual SAN 平臺相關,包括:
- 可變長度的 Spine 使用 E
- AN 集群都應使用專有的 VLAN 進行隔離復制和工作負載。這將 VirtualSAN 集群流量與任何外部干擾隔離開來,更方便地進行故障排查。
- 在 Virtual SAN 6 中,為了使 Virtual SAN 集群能夠支持 64 個節(jié)點,必須在集群所有主機上設置三個選項:
1. 集群中每個主機設置高級選項,增加節(jié)點支持:
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. 將客戶端限制設置為 65,最多允許 64 臺主機:
esxcli system settings advanced set -o/CMMDS/clientLimit 65
必須重新啟動所有主機才能使這些更改生效。此外,還應該查看 VMware 知識庫上相關文章的最新配置建議。
此外,Web-Scale 擴展設計包括以下最大值:
- 在 Virtual SAN 5.5 中集群最多 32 個節(jié)點,6.2 中集群最多 64 個節(jié)點。
- 每個混合磁盤組中都只能使用一個緩存閃存設備。
- 每個磁盤組可以使用 1 到 7 個容量機械磁盤或容量閃存設備。
- 每個主機最多有 5 個磁盤組。
- Virtual SAN 5.5 VMDK 大小最多為 2TB, 6.2 中最大 62 TB。
- Virtual SAN 5.5 中每個主機最多可容納 100 個虛擬機,6.2 每個主機的虛擬機數(shù)為 200。
除了這些設計最大值外,表 6.2 還強調了在規(guī)劃大型 Virtual SAN 部署時需遵守的最大值。
表 6.2 Virtual SAN 6.0、6.1、或 6.2 最大值
