天天看點

《資料中心設計與營運實戰》——1.6 WSC的架構概述

本節書摘來自異步社群《資料中心設計與營運實戰》一書中的第1章,第1.6節,作者: 【美】luiz andré barroso , 【美】jimmy clidaras , 【瑞士】urs hölzle 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

每個wsc的硬體部署與其他的都千差萬别。即使在像google這樣的單一組織中,不同的年代也使用不同的基本元件進行系統部署,這也反映了行業的硬體演進。然而,這些wsc系統的架構在過去的幾年裡已經相對穩定,是以,描述這個通用的架構有助于為後續的讨論做個鋪墊。

圖1.1描述了wsc的頂層建構。一組低端伺服器,典型的是1u1伺服器或刀片伺服器形式,安裝到機架,使用以太網交換機進行内部互聯。這些機架級别的交換機,支援1~10gbit/s連接配接,有多個上行鍊路連接配接到一個或多個叢集級(或資料中心級)以太網交換機。這些二級交換機組成的域可以覆寫萬台以上獨立伺服器。刀片伺服器内部有一個附加的内部彙聚連接配接層,多個處理器所在刀片通過i/o總線(例如pcie)連接配接到少量網絡管理刀片。

《資料中心設計與營運實戰》——1.6 WSC的架構概述

https://yqfile.alicdn.com/2df565748ea9605b6b9a669a659faf13fd624e55.png " >

1.6.1 存儲

硬碟驅動器或者閃存裝置直接連接配接到每個獨立的伺服器,由全球分布式檔案系統(比如google的gfs)管理,或者它們還可以作為網絡附加存儲(nas)裝置的一部分直接連接配接到叢集級别的交換網絡。nas往往是一個簡單的初始配置解決方案,因為它能将部分資料管理任務外包給nas裝置供應商。由于存儲與計算節點互相獨立,也就更容易提升存儲服務品質,因為nas除了存儲伺服器之外沒有運作計算任務。相比之下,直接連接配接到計算節點的硬碟可以降低硬體成本(硬碟可以利用現有的伺服器機箱),并改善網絡架構使用率(每台伺服器的網絡帶寬在計算任務和檔案系統間實作動态有效共享)。

這兩種方式的多副本存儲模型在本質上完全不同。nas通過在每個請求中使用多副本或糾錯來實作高可用性;而類似gfs的系統則使用機器間多副本實作,由此在寫入操作中将帶來更多的網絡帶寬占用。不過,gfs類系統即使在一整台伺服器甚至一個機架失效的情況下也能保持資料的高可用性,提供更高的叢集讀取帶寬,因為相同的資料可以來自于多個副本。對于google早期的計算任務中,以高寫入成本交換低成本、高可用性的讀取是正确的解決方案。将計算節點與存儲節點綁定的另一個好處是,分布式系統軟體能夠優化利用本地資料。過去十年,網絡性能早已超越硬碟性能。對硬碟而言,本地存儲的優勢不再明顯,但本地存儲對類似閃存這種現代儲存設備而言,依然還是有一定的優勢。

包括google在内的一些wsc采用桌面級硬碟(或類似的近線驅動器)替代企業級别硬碟,由于兩者間成本的巨大差異。典型情況下,消費者(或者“桌面級裝置”)傾向于更低的價格,但廉價産品并不是被設計用來持續運作的。近線驅動器,最初是為基于硬碟的備份伺服器而設計的,添加了一些常見的企業功能(例如抗震能力)後,可以持續運作。最終,企業級的硬碟以更高的成本獲得了更高的性能。

因為資料幾乎總是以分布式方式(諸如gfs)實作多副本,非企業級硬碟的高故障率可以得到容忍和接受。此外,因為硬碟驅動器的現場可靠性與制造商标稱的差距較大,企業級硬碟驅動器的可靠性邊界仍沒有清晰界定。正如elerath和shah 【47】指出的,相比生産流程及設計,某些因素會對硬碟可靠性産生更嚴重的影響。

nand閃存技術已經使得固态硬碟(ssd)可以滿足wsc不斷增長的存儲需求。雖然在可預見的将來,存儲在固态硬碟上的每位元組的成本比在硬碟上的要高很多,但許多對i/o敏感的web服務在硬碟上無法實作其應有的性能。由于固态硬碟可以提供比硬碟高很多數量級的i/o速率,越來越多的固态硬碟取代了硬碟驅動器,成為web服務的首選。

1.6.2 網絡結構

在為wsc選擇網絡結構時,需要權衡速度、規模和成本。在撰寫本文時,支援多達48端口的1gbps以太網交換機是非常有價值的,每伺服器連接配接(包括轉換端口、電纜和伺服器網卡)隻需不到30美元的成本。是以,機架内各伺服器上的帶寬趨向于相同。然而,用于wsc叢集間資料交換的高端口性能交換機具有不同的價格結構,它比普通機架交換機的每端口成本高出十倍。憑借經驗,具有10倍帶寬的交換機成本将高出約100倍。由于成本的不連續性,wsc的網絡結構通常由兩層架構組成,如圖1.1所示。每個機架的網絡交換機提供部分帶寬用于機架之間的通信,通過上行鍊路連接配接到更昂貴的叢集級交換機。例如,一個容納40台伺服器,每個伺服器帶寬1gbit/s的機架,可能有4~8個1gbit/s上行鍊路連接配接到叢集級交換機,對應的跨機架通信的過載系數在5到10之間。在這樣的網絡中,程式員必須了解跨叢集間帶寬資源的相對稀缺,盡量将機架間的流量在機架内處理完成。在複雜軟體開發的過程中,注意其對資源使用的影響。

此外,可以通過更新内聯網絡,解決一些叢集級網絡瓶頸的問題。例如,使用infiniband連接配接,在典型情況下可以在一個區域内支援上千個端口,但每端口成本可能高達500至2000美元。同樣,一些網絡提供商已開始提供更大規模的以太網連接配接架構,但每台伺服器至少花費數百美元。是在網絡上投入更多開銷,還是用這些開銷購買更多的伺服器或存儲空間?這個問題并沒有正确答案。然而現在,我們假定機架内的連接配接成本低于機架之間的連接配接成本。

1.6.3 存儲架構

圖1.3展示了一個程式員視角的wsc存儲結構。每台伺服器由一些包含一個多核cpu及其内部緩存的處理器插槽、本地共享記憶體、一些直連的硬碟或基于閃存晶片的固态硬碟組成。機架内的記憶體和硬碟/閃存資源可以通過第一級機架級别的交換機通路(假設某種類型的遠端過程可以通過調用api通路它們),所有機架的所有資源可以通過叢集級交換機通路。各種資源如何相對平衡取決于目标應用的需求。基于閃存的存儲是最近才加到這張wsc存儲結構圖上的,它在現實世界中被廣泛應用。以下配置假定閃存容量比傳統旋轉媒體低一個數量級,這基于這兩種技術之間每位元組成本之間的大緻差異。

《資料中心設計與營運實戰》——1.6 WSC的架構概述

https://yqfile.alicdn.com/05fd9fc8c41f8422c575726b4a7041ddda253b56.png" >

1.6.4 定量延遲、帶寬和容量

圖1.4所示為量化wsc的延遲、帶寬和容量特性。圖中我們假定一個系統由2400台伺服器組成,每台伺服器都有16gb的記憶體和4個2tb硬碟驅動器(我們并沒有把閃存放到該場景中,主要是因為閃存規模在不同部署方式中的不一緻性,後面的章節會讨論閃存)。每80台伺服器為一組,通過一個1gbit/s鍊路連接配接到一個機架級别的交換機,交換機有8個1gbit/s端口負責機架交換機到叢集級交換機(超負載系數為5)之間連接配接。網絡延遲量假設是使用tcp-ip傳輸模型的。網絡帶寬值假設為除去超負載系數後,每台伺服器平分可用于上聯到叢集級裝置的總帶寬。關于硬碟,顯示了典型商用硬碟驅動器(sata)的延遲和傳輸速率。

《資料中心設計與營運實戰》——1.6 WSC的架構概述

該圖顯示了每個資源池的相對延遲、帶寬和容量。例如,本地硬碟可用帶寬是200mb/s,而通過共享機架上行鍊路帶寬後僅為25mb/s。另一方面,叢集中的總硬碟存儲容量幾乎是本地記憶體容量的一千萬倍。

相比部署在單一機架内的情況,使用更多伺服器的大型應用必須有效地處理延遲、帶寬和容量的巨大差異。這些差異遠比在單一機器上的更明顯,這使設計wsc變得更難。

wsc架構設計的一個關鍵挑戰是,用最具有成本效益的方式來平滑處理這些沖突。與此相反,軟體架構設計的一個關鍵挑戰是隐藏大部分叢集基礎設施和服務細節的複雜性,使其對應用開發者不可見。近期,起初為便攜式電子裝置開發的閃存技術也在wsc系統中得到了應用。今天,閃存成為在記憶體和硬碟之間折中成本和性能差距的切實可行的選擇,如圖1.5所示。相對于硬碟,閃存最吸引人的特征在于其随機讀取時的性能,幾乎是硬碟的3倍多。事實上,閃存的性能如此之高,以至于它對分布式存儲系統的整體性能構成了一個挑戰,因為它需要占用wsc中的更多帶寬。我們将在本書第3章中更加深入地讨論閃存的潛在機遇和挑戰。而我們眼前需要關注的是,在最不利的情況下,寫入閃存的速度要比從閃存中讀取慢幾個數量級。

《資料中心設計與營運實戰》——1.6 WSC的架構概述

https://yqfile.alicdn.com/043fd34cf7fa08ec59147112d09c488c362f0489.png" >

1.6.5 電力使用

能源和電力使用也是wsc設計的關注重點,這将在第5章進行更詳細的讨論。與能源相關的成本已成為這類系統總體擁有成本的重要組成部分。圖1.6提供了一些關于當代it裝置的各個元件在尖峰情況下如何使用能源的深入分析——以google在2007年建立的一個wsc為例。

盡管這種尖峰情況與系統配置和工作負載密切相關,但從圖中依然可以看出cpu再次成為wsc能源消耗的重點。采用2007年google伺服器标準的資料,本書的第一版顯示記憶體系統的相對能源消耗量已經上升到與cpu基本持平的水準。從那時起,這一趨勢由于諸多因素導緻了逆轉。首先,更加精細的功耗管理系統使cpu能夠以更接近最大設計的功耗運作,這使得每個cpu産生了更高的能源消耗。第二,記憶體技術已從耗電的fb-dimm轉換為具有更好功耗管理性的ddr3。第三,記憶體電壓已從1.8v降至1.5v,甚至更低。最後,現在的系統的每吉比特cpu/記憶體功耗比變得更高,這可能主要是因為記憶體技術突破性發展的結果。在第5章,我們還将讨論wsc能源效率的更多細節(圖5.6顯示了基于工作負載的能源使用分布情況)。

在采用2012年年末的伺服器、基礎設施能源消耗在30%情況下的現代資料中心中,硬體子系統尖峰電力消耗的大概配置設定。該圖假定采用兩路x86伺服器,每台伺服器配置16個記憶體插槽和8個硬碟,伺服器平均使用率為80%。

1.6.6 故障處理

資料中心的絕對規模要求網際網路服務軟體可以容忍相對較高的元件故障率。例如,硬碟驅動器的年故障率超過4%【123,137】。不同部署情況的伺服器報告平均每年的重新開機率在1.2到16之間。如此高的元件故障率,運作在數以千計的機器上的應用需要對故障條件的反應以小時為機關。關于應用的部分我們将在第2章讨論,在第7章将詳細探讨故障統計相關内容。

繼續閱讀