1. 程式人生 > >Facebook資料中心實踐分析,OCP主要工作成果介紹

Facebook資料中心實踐分析,OCP主要工作成果介紹

以下為正文:

保密本就是資料中心行業的慣例。2014年11月,我獨自去拉斯維加斯(Las Vegas)南部參觀SuperNAP資料中心。下車後,幾次試圖用手機拍建築外景,迅速被開著悍馬巡邏的警衛阻止。進門等候預約時段,雖說在美國警衛持槍是再平常不過的事,但警衛室裡那幾位嚴陣以待、隨時準備應付劫匪的架勢,仍令我印象深刻。參觀資料中心內部不允許拍照是行規,不過之前我參觀資料中心都有專人陪同,還沒享受過這麼戒備森嚴的待遇。

圖注:SuperNAP 7資料中心的接待室,我在這裡等了20多分鐘,得以觀察小窗子裡面的警衛室。圖片來自SuperNAP官網,下同

這與託管資料中心的性質不無關係,必須為租戶保密。自為客戶的Google則將基礎設施視為核心競爭力之一,這從該公司對基礎設施一貫的重視程度也能感受到。因此,Google長期對其資料中心和定製硬體設計祕而不宣,員工入職時要簽署保密協議,離開Google一兩年內也不能透露。

圖注:夜幕下的SuperNAP 7資料中心,典型的美式大平層結構

但是,那些Google自己公開的資料中心內外景照片,又是怎麼回事?

2009年3月,Facebook從Google挖來工作近6年(更早在思科做過實習生)的硬體工程師Amir Michael,主管硬體設計。2010年4月1日,Facebook宣佈任命Ken Patchett主管其位於俄勒岡(Oregon)州Prineville的第一個自建資料中心。Ken Patchett的職業生涯從康柏(Compaq)起步,在微軟積累了近6年的資料中心和網路運營經驗。到Google後指導過位於俄勒岡州Dalles的資料中心,去Facebook之前又在亞洲工作了一年多,管理Google自有和託管的資料中心。轉了一圈,又回到俄勒岡州。

圖注:SuperNAP資料中心的警衛室

從伺服器設計到資料中心運營,Facebook堅持挖Google牆角,後者又不好打官司——這意味著要公開更多細節。更絕的還在後面:2011年4月,乘Prineville資料中心投產之東風,Facebook宣佈發起開放計算專案(Open Compute Project,OCP),開源了其包括資料中心、定製伺服器在內的一系列硬體設計。

三年兩大招,先挖人,再開放,Facebook在資料中心規模比Google差一個量級的條件下,經常被與前三大(還有微軟和亞馬遜)相提並論,OCP居功至偉,甚至連“百萬富嗡”(指伺服器風扇的噪音,非貶義)微軟都來入夥。

Facebook將資料中心宣傳的公關戰提高到一個嶄新的水平。Google在2012年10月對外公開了一些資料中心技術的情況,包括請記者參觀,和網站上近百張高清晰度的照片。但是,對於IT裝置(伺服器和網路)及相關技術,Google依然諱莫如深,至多提及其已廢棄的伺服器。Urs參與的前後兩版書裡,也是以巨集觀理念和資料中心層面的建設原則為主。

圖注:Google位於俄勒岡州Dalles的資料中心依山傍水(哥倫比亞河),團隊成員可以享受漂流、風力衝浪、釣魚和徒步的樂趣。注意看左上角的山腰處(來源:Google官網)

有趣的是,James Hamilton還對Google公開的這些資訊分析點評了一番。曾被認為在技術中心實力和保密程度上與Google一時瑜亮的AWS,如今似乎是最神祕的了。

總體而言,Google透露的是久遠的歷史和近期的狀況,中間的壯大過程中傳世不多,Facebook的發展史或許可資借鑑。

從一臺伺服器到多個數據中心

2004年2月,Mark Zuckerberg(馬克·扎克伯格)在哈佛大學宿舍內將Facebook上線,當時只有一臺伺服器。僅僅五年之後,這個世界最大的社交網站已擁有超過3億活躍使用者,每天處理3.9萬億feed,超過10億聊天資訊,1億搜尋請求,每月超過2000億PV……

在只有一小撮人使用,少量照片、沒有視訊的草創時期,全部服務執行在一臺伺服器上還是沒問題的。2009年時的Facebook網站顯然是另一個樣子:載入使用者主頁這麼一個看似簡單的動作,就需要在不到一秒鐘的時間裡訪問數以百計的伺服器,處理上萬片分散在各處的資料並提交所需的資訊。

伺服器的增長速度不難想象,有跡象表明,Facebook的伺服器數量:

  • 2008年4月約1萬臺;
    2009年約3萬臺;
    2010年6月至少6萬臺……
即使放在今天,這個數量也可以排在Tier 2網際網路客戶的前列(以10萬臺為界,超過即為Tier 1,Facebook是十幾家之一),能效就是必須要考慮的問題了。以每臺伺服器200W的保守計算,年耗電量已經超過1億度。如果資料中心PUE(Power Usage Effectiveness,電源使用效率)能從1.5降到1.1,每年即可節省4200萬度電。

直到2009年,Facebook仍然依靠租用的資料中心空間,沒有自建的資料中心。租用資料中心空間(自己部署伺服器、網路等IT設施)的優點是交付速度較快,可以在5個月內搞定;建設一個數據中心則需要大約一年的時間和更多的前期投資,但是在供電和散熱等方面可以根據自身需求定製,對超大規模使用者更划算,Google、、微軟和亞馬遜早就自建資料中心了。

圖注:Prineville的兩座資料中心建築(來源:Facebook官網,2014年)

2010年1月,Facebook宣佈在俄勒岡州的Prineville建設屬於自己的第一個資料中心,規劃面積約1.4萬平米,目標PUE為1.15。同年7月,社交巨頭決定將Prineville資料中心的規模倍增至約3萬平米。2010年12月完工,得益於100%使用外部空氣冷卻、無需空調的一系列高能效設計,PUE可低至1.073。與1.51的“業界平均值”相比,節能幅度還略好於我們剛才的假設。

圖注:2013年8月底,夕陽下的Altoona資料中心建設工地,佔地約194英畝。到2013年11月中旬,每天有超過200人工作,累計工時近10萬小時(來源:Facebook官網)

從自建資料中心嚐到甜頭的Facebook再接再厲,先後在北卡羅來納州(North Carolina)的Forest City(2010年11月宣佈)、瑞典的Luleå(2011年10月宣佈)和衣阿華(Iowa)州的Altoona(2013年4月宣佈)建設資料中心。每個資料中心建成後都有擴建,像Prineville和Forest City還各增加了一個用於冷儲存的資料中心(建築),Luleå和Altoona的二期工程也在2014年啟動。

OCP緣起:青出於藍以勝藍?

沒有開源就沒有今天的網際網路行業,但這主要是從軟體的角度來說。Google在軟體開源方面還是做了不少工作,著名的Hadoop便可以視為Google無意間“開源”了思路的結果。就在2015年2月,Google宣佈將其2014年6月收購獲得的MapReduce for C(MR4C)開源,這是用C++開發的MapReduce框架,此舉讓使用者可以在自己的Hadoop環境中執行原生的C及C++程式碼,是Hadoop社群的福音。

支撐網際網路基礎設施的是開放硬體技術,這與開源不太一樣。英特爾通過開放硬體技術營造的生態環境,擊敗了IBM及其他RISC廠商(ARM另當別論),但至少在OCP出現之前,無法想象戴爾和惠普會公開其伺服器的詳細設計材料。而且,“開源+開放”也不意味著結果一定是透明的,Google就在開源軟體和開放硬體技術的基礎上打造了專有的資料中心。

應該說,扎克伯格很早就意識到,Facebook與Google必有一戰,而且這一天遠比國人聽著耳熟的某同樣句式表達來得快。Google在整個Web上開展廣告業務,Facebook在自己的社交網路裡開展廣告業務,就像騰訊不讓百度搜索進入微信一樣,Facebook也要發展自己的搜尋引擎。2013年Facebook上線了Graph Search,2014年12月初又更新為Facebook Search,隨即在Facebook的搜尋中去掉來自微軟Bing的Web搜尋結果。

很重要的一個區別是,騰訊並不比百度小,而Facebook自身尚不能與Google抗衡。從伺服器到資料中心,Google起步早,規模大,自成體系。為了迅速縮小基礎設施領域與Google的差距,Facebook想出了通過開源壯大生態系統的妙招,即成立開放計算專案(OCP)。

圖注:開放計算專案(Open Compute Project)的Logo,左側是用伺服器主機板拼成的“f”(來源:張廣彬,2013年)

作為一個開源的硬體專案,OCP不僅是公佈Facebook“白手起家”定製資料中心和伺服器的細節,直到機架和主機板的CAD圖紙,更邀請開源社群及其他合作伙伴使用並改進。也就是分成兩個步驟:先放出規範和機械圖紙,再與社群共同改進它們。

如果我們考慮Facebook和Google身上類似硬體廠商的成分,可以看到,即便是生態系統的核心廠商如英特爾,也很難有如此社群化的思維。沒錯,上一個這樣做的是Google,為了對抗蘋果iOS而開源Android,成功的建設起巨大的生態系統,以群狼圍攻猛虎。

在這個資金和人才密集型行業,開源是爭奪人才的好辦法,還具有顯著的廣告效應。有更多的客戶使用基於OCP規範的硬體,也可以增大采購量,幫助Facebook降低成本,起到類似團購的效果。

當時OpenStack剛剛興起,OCP也採用了一些類似的做法,譬如上下半年各一次峰會(Summit),並在2011年10月27日召開的第二屆OCP Summit上,宣佈成立OCP基金會(Open Compute Project Foundation)。不過,硬體設計的週期較長,於是,從2012年開始改為每年一次,2015年3月9至11日召開了第六屆峰會。

圖注:Facebook的基礎架構部門(來源:張廣彬,2013年)

在2014年1月底召開的第五屆OCP峰會上,Mark Zuckerberg和Facebook工程副總裁Jay Parikh宣佈,OCP成立三年來,開源硬體方案幫助Facebook節約了12億美元。

此時,OCP的成員總數已接近200家(不乏2014年加入的微軟、VMware等重量級傳統企業廠商),以廣達(Quanta)為代表的7家解決方案提供商,大量經過驗證的設計,Facebook和Rackspace的採用……接下來,就從董事會和典型專案兩個方面,大致介紹一下OCP這個開源硬體組織的組織架構及主要成果。

董事會:經驗的傳承

成立基金會,而不是在Facebook一家控制之下,對OCP發展的重要性不言而喻。OCP基金會在董事會的管理下運作,最初有5位董事,分別來自5家公司。

Frank Frankovsky代表Facebook,擔任OCP基金會主席兼總裁。2009年10月加入Facebook,先後擔任硬體設計與供應鏈運營總監和副總裁。此前,在戴爾負責伺服器定製業務的資料中心解決方案(Data Center Solutions,DCS)部門擔任總監近四年,上世紀90年代曾任康柏(Compaq)計算機公司的產品經理。

圖注:Facebook硬體實驗室一角。在硬體實驗室裡,這已經算相當整潔的了(來源:張廣彬,2013年)

Mark Roenigk是Rackspace Hosting的COO,在微軟工作過9年,大部分時間負責OEM和供應鏈運營,此前7年是康柏的工程師。Rackspace是著名的伺服器託管商,有豐富的資料中心建設、運營和硬體經驗,還與NASA共同催生了OpenStack——是惟一在一軟一硬這兩大開源組織中都有肇始之功的公司。

Jason Waxman現任英特爾(Intel)資料中心事業部高密度計算業務總經理,主要負責的領域包括網際網路資料中心、刀鋒伺服器以及與未來密集型資料中心架構相關的技術。他還負責領導英特爾在雲端計算方面的工作,並在Blade.org和伺服器系統架構組織(Server System Infrastructure Forum,SSI Forum)的董事會兼任管理職位。此前曾擔任負責英特爾至強(Xeon)處理器、相關晶片組和平臺產品及其客戶關係的總監。

圖注:Facebook在矽谷的園區以前屬於Sun——一家值得緬懷的偉大公司,順道緬懷拍下這張照片的手機(來源:張廣彬,2013年)

Andy Bechtolshiem來自Arista Networks,更響亮的名頭是“Sun Microsystems共同創辦人”。Andy Bechtolshiem擔任過Sun的首席系統架構師,第一個投資Google,還擔任快閃記憶體初創企業DSSD的董事長——後者2014年5月被EMC高調收購。

除高盛(Goldman Sachs)的Don Duet職業生涯主要履歷為CIO之外,以上四人均有深厚的硬體行業背景,從產品、技術到供應鏈都有涉獵,見多識廣,經驗豐富,對把控開源硬體專案的發展方向至關重要。

正如前面所說,OCP下轄的專案很多,從伺服器到資料中心,還包括機架(Rack)、儲存、網路、硬體管理,並於2014年啟動了HPC(High Performance Computing,高效能運算)專案。

伺服器:始於Google,終成一派

Facebook開始定製硬體不算早,前期的伺服器也來自OEM。Facebook基礎設施工程負責人Jay Parikh在2012年10月中旬的GigaOm Structure歐洲會議上表示,在瑞典Luleå的資料中心將是Facebook首次完全沒有采用OEM伺服器硬體。


圖注:Facebook的資料中心叢集(2014年公開資料),前端(FE)叢集包括大量的Web伺服器和一些廣告伺服器、相對少量的Multifeed伺服器;服務叢集(SVC)包括搜尋、圖片、訊息等伺服器,後端(BE)叢集主要是資料庫伺服器。這一配置規模有可能隨著後面提及“6-pack”核心交換機的應用而改變。

這顯然與本章一開始提到的Amir Michael有直接關係,他比Frank Frankovsky還早半年加入Facebook,也是OCP的共同創辦人之一,2013年1月起擔任OCP孵化委員會(Incubation Committee,IC)副主席,4月出任Coolan CEO——該公司與Facebook及OCP頗有淵源,Amir Michael又是共同創辦人。


圖注:區域資料中心之間的基礎設施冗餘。FE(前端叢集)、SVC(服務叢集)、BE(後端叢集)組成一個整體,與另一個區域的資料中心互為冗餘(來源:Facebook)

超越往往從學習和模仿開始,雖然牛頓所謂“站在巨人的肩上”並非此意。OCP成立時,Facebook資料中心團隊貢獻的第一代OCP伺服器,很大程度借鑑了Google的設計,最明顯的標誌就是1.5U(66mm)的伺服器機箱。這樣做的好處是可以使用直徑更大的60mm低轉速風扇,與1U伺服器的40mm風扇相比,節能效果顯著。450W供電模組(PSU)支援277V交流和48V直流輸入,前者比208V減少不必要的電壓轉換,後者由備份電池提供短時電力供應,都是為了儘可能的避免能源損耗。散熱與供電雙管齊下,控制電費(省OPEX)。


圖注:Prinevill資料中心的供電轉換環節與損耗狀況對比(來源:Facebook)

另一點是去掉(前)面板和BMC,沒有VGA介面,以貫徹Facebook的“Vanity-free”(無浪費)精神。目標是儘可能降低購置成本(省CAPEX),儘管做工看起來有點糙。正如Jay Parikh所言,OCP伺服器比標準伺服器少很多功能,也儘可能需要更少的部件。


圖注:48伏電池櫃的輸電路徑(來源:Facebook)

OCP V1伺服器有AMD(12核Opteron 6100)和Intel(6核Xeon 5600)兩種雙路方案,主機板尺寸為13×13英寸,由廣達(Quanta)製造。機箱寬度(480mm,略小於19英寸)和高度單位(Rack U,即RU,1RU為1.75英寸,即44.45mm)都遵守工業標準的“老規矩”,後端有3個硬碟托架,與主機板均為免工具拆裝。


圖注:OCP伺服器V1(左)和V2(右)採用同樣的1.5U機箱,4個60mm風扇位於主機板後方,右側的硬碟托架由供電模組提供冷卻氣流。V2的改進包括:硬碟前置便於維護;2個主機板提升計算密度,但犧牲了可能的硬碟數量;CPU效能提升(來源:Facebook)

2012年5月初在聖安東尼奧召開的第三屆OCP峰會之前,AMD和Intel貢獻了第二代OCP主機板的設計,得益於至強(Xeon)E5-2600,Intel開始佔據壓倒性的優勢。代號“Windmill”的Intel OCP v2.0主機板採用雙路Intel Xeon E5-2600,外形長而窄(6.5×20英寸,約165×508mm)。OCP V2伺服器仍為1.5U規格,但主機板寬度只有第一代的一半,因而能容納兩個計算節點,在同樣的機箱內將密度翻番。

為了支援兩個主機板,V2伺服器的供電模組提升為700W,並與硬碟互換位置,這樣從前面可以直接維護硬碟。

經過兩代伺服器的摸索,相繼暴露出一些問題:

  • 供電模組的冗餘度差。相比於工業標準伺服器的1+1冗餘電源,這兩代伺服器只有一個供電模組。OCP V1伺服器尚可用“牲口模式”來解釋(關鍵元件出問題即替換整個伺服器),OCP V2伺服器的供電模組故障會導致兩個計算節點失效,有點矯“枉”過正。為此Facebook還設計了高可用(High Availability,HA)伺服器的方案,即增加一個PSU,替換下來一個主機板,等於把計算密度又降回去了。
  • 可以用前一章所述把PSU集中到機架層面的方案(此時中國的天蠍整機櫃已經這麼做了),但是以19英寸機箱的寬度,拿走PSU剩下的空間,又不足以放下第三個主機板(6.5×3=19.5英寸)。
  • 計算與儲存沒有解耦合。這在OCP V1伺服器中尤為明顯,3個驅動器托架可以放6個硬碟,計算節點只用一個啟動盤的話,為保留不夠用的靈活性而造成大量的空間浪費;OCP V2還好,因為增加的主機板擠佔了2個驅動器托架的位置。
  • 60mm風扇還不夠大。
  • 不同程度的保留了USB介面,卻沒有BMC(Baseboard Management Controller,基板管理控制器)。哪個對管理更有價值,不言而喻。

除了最後一點,其他幾點都需要機箱、乃至機架設計的改變。

Open Rack:重新定義資料中心機架

Facebook最初採用19英寸三聯櫃設計,名為Freedom Triplet,寬度為1713mm,比三個並排的EIA 310-D機架(600mm×3)略窄。外側的兩個機架(機櫃,Rack)上各有一個架頂式(Top of Rack,ToR)交換機,每一列30個Open Compute伺服器,共90個。一組三聯櫃裝滿90個伺服器後總重2600磅(約1179公斤),兩組三聯櫃共享一個備份電池櫃。


圖注:配合前兩代伺服器的Freedom三聯櫃,因並聯而略省材料且更穩固,高度也略高於常見19英寸機架,可容納30個1.5U伺服器(45U)以及交換機(來源:OCP規範)

Facebook很快認識到,形成於1950年代的EIA 310-D標準不能滿足他們的要求。EIA 310-D標準化了機架內軌之間的寬度(19英寸),但把高度、深度、安裝和佈線方案以及聯結器的規範留給製造商去定義。Facebook認為,這導致伺服器和機架設計不必要的分化,把客戶鎖定於特定的供應商及其實現。


圖注:一個直流UPS電池櫃支援兩組三聯櫃共180臺伺服器的全系統(來源:Facebook,2010年)

更關鍵的問題在於,傳統的19英寸機架,考慮到側邊和滑軌,留給IT裝置(伺服器、儲存)的可用寬度只有17.5英寸,不能並排放置3個(6.5英寸寬)主機板或5個3.5英寸硬碟。嫌窄者早已有之,如IBM大機和EMC的高階儲存,都有寬度在60cm以上的機架,譬如EMC Symmetrix VMAX,系統和儲存機架寬度均超過75cm(30.2英寸,合76.7cm),為的也是容納更大的伺服器(儲存控制器)或更多的硬碟。

不過,一則拓展外寬未必提高效率,二則大機和高階儲存從量上來說,還是小眾產品,很少有人幾千個機架的買。Facebook的辦法是保持外寬600mm(近24英寸)不變,把內部橫向間距從483mm擴大到538mm(21英寸),提高55mm(約2.2英寸),取消佔地費錢的滑軌,空間利用率從73%(17.5英寸時)躍升為87.5%,可謂創舉。


圖注:Open Rack俯檢視(下前上後),可以看清內寬擴大,前端維護&後端供電等要素(來源:OCP規範)

既然重要的內寬已經改變,索性把每個Unit也重新定義,高度從傳統Rack U(RU)的44.5mm,略微放大至48mm,名為OpenU,簡稱OU,機架也起名為Open Rack(開放機架)。為與之前的裝置相容,保留0.5 OU為最小單位,不過後來似乎沒有推出過非整數OU的產品。

然後是整合供電模組,分為3個供電區(Power Zone),每個供電區有3 OU供電框安置7個700W的PSU(來自OCP V2伺服器),N+1配置,共4.2kW,整個機架的供電能力達12.6kW。每機架兩個PDU,200-277V交流在左後方,48V直流在右後方。伺服器從機架正後方等距分佈的3根銅排(Bus bar,母線)上取電,PSU輸出電壓12.5V,正好滿足伺服器對12V輸入的要求。

Open Rack v0.5版規範於2011年12月15日釋出,在第三屆OCP峰會上隆重介紹。該版本建議每個供電區為15 OU,12 OU用於IT裝置;然後再留2 OU放置ToR交換機,總高度至少47 OU(不低於2300mm,似可見之前Triplet縱向空間分配思路的遺存)。2012年9月18日,Open Rack 1.0規範公佈,主要明確了以下幾點:

  • 專注於單列機架設計(非三聯櫃);

  • 入口(inlet)溫度提高到35攝氏度,反映其他Open Compute設計和真實資料中心的溫度;

  • 交換機佈置更靈活,不僅限於供電區的頂端;

  • 計算裝置(伺服器/儲存)機箱為1-10 OpenU高,支援L形支架直接承載。L形支架明顯比傳統伺服器的測滑軌節省空間和成本,免工具安裝,可以0.5 OpenU(24mm)為增量固定;

  • 最大高度取決於供電區,但建議不要超過2100mm,以保持穩定。常見的做法是每個供電區13 OU,IT裝置10 OU,再加2 OU交換機,共41 OU;

  • 新設計的簧片(clip),使機箱電源聯結器易與銅排配合。


圖注:Open Rack V1前檢視和側檢視(左前右後),可以看到縱向空間的分配(來源:OCP規範)

綜合起來,Open Rack的特點主要是:

  1. 拓展空間。 開創性的提高了內部利用率,特別是留給IT裝置的寬度大為增加,單位高度也略有提升,同時儘可能的保持了與原有機架標準的相容性(外寬一致,高度接近);
  2. 集中供電。 提供機架範圍內的共享與冗餘,伺服器等IT裝置直接插拔取電,免去上架時的手動連線工作;
  3. 前端維護。 後端用於供電和散熱,維護人員在冷通道一側即可完成日常工作,不用進入熱通道。兩邊跑不僅增加了工作量,在後端識別裝置困難,容易導致誤操作。

當然副作用也是有的,即兩側起支撐作用的部分變薄,同時內部IT裝置可能的重量還會增加(Open Rack V1.1規範已達950千克,接近本節開頭提到的三聯櫃),對機架強度提出挑戰。在整機櫃交付等運輸途中尤其如此,早期的Open Rack要在後端加斜樑輔助,防止變形。

不過,在目前的Open Rack V2規範裡,基本機架配置在動態環境下支援500千克的IT裝置,通過增加緊固螺栓等手段,過載機架配置(Heavy Rack Config)可以支援1400千克的IT裝置——作為對比,James Hamilton在re:Invent 2014大會上透露,AWS的儲存優化機架可容納864個(3.5英寸)硬碟,重達2350英鎊(約1066千克)——要怎麼裝出這個密度來,也是門學問。

還是類似三聯櫃的方式穩固(來源:OCP Engineering Workshop)


圖注:Open Rack V2還有重組供電佈局、去掉單獨電池櫃等重要改進,將在後面的章節介紹。

Open Vault:儲存從伺服器分離

得益於Open Rack,第四屆OCP峰會上亮相的第三代OCP伺服器(代號Winterfell)在設計上有質的飛躍:

  • 主機板仍然是v2.0,但伺服器高度增至2 OU,並特意強調不是1.5 OU,80mm風扇效率進一步提高;
  • 更大的縱向空間有利於容納全尺寸GPGPU,支援兩個全高的PCIe卡,一個3.5英寸驅動器槽位,均從前端維護;
  • 伺服器機箱裡沒有PSU,正好並排擺放三臺(2個80mm風扇),分別從後部的銅排取電,密度進一步提高(2 OU3)且相互獨立;
  • 觀感上,做工精細了很多,裸露部分的處理也較好,總體上不輸一般商用伺服器的水準。


圖注:用於Open Rack V1的OCP伺服器(Winterfell)俯檢視及三聯裝(共佔用2 OU機架空間)(來源:網路圖片組合)

現在的OCP伺服器主機板已發展到V3.1,尺寸不變,支援Intel Xeon E5-2600 V3,16個DIMM/NVDIMM,加上了BMC,支援Open Rack V1和V2。3個75W PCIe x8插槽,擠佔了硬碟的位置,代之以板載mSATA/M.2(2260,60mm長),以前只支援mSATA,且需要通過介面卡。

硬碟先是被邊緣化,接著連裝作業系統的工作也被SSD搶走了。那麼,大容量儲存怎麼辦?


圖注:沒有儲存專案時Facebook的6種伺服器型別,Type Ⅱ因與Type Ⅵ配置而被併入(弱勢的AMD啊),多數公開資料裡都沒有;Type Ⅳ和Ⅴ的儲存配置看著很像2U的所謂“儲存伺服器”(來源:Facebook)

我們常說,網際網路公司是不買儲存(裝置)的,這裡指的是SAN、NAS等傳統的企業級陣列,而不是沒有對大容量儲存的需求。像前面剛提到的AWS儲存優化機架,即為一例。

OCP V1伺服器支援最多6個3.5英寸硬碟,都放滿,不算多;只放一兩個,剩下的空間又派不上別的用場。保持靈活性,就得付出浪費空間的代價,問題是也沒多靈活。

其時Amir宣佈了一個面向儲存密集型應用的專案設計,看起來像是個4U裝置,支援50個硬碟,分配到兩個控制器,可以連線到多臺伺服器,提供可變的計算與儲存配比。

第三屆OCP峰會上,失勢的AMD基於其雙插槽Opteron 6200主機板建立了一個代號Roadrunner的專案,包括1U(HPC選項)、1.5U(通用)、2U(雲選項)、3U(儲存計算選項)共四個規格。2U支援8個3.5英寸或25個2.5英寸驅動器,3U支援12個3.5英寸或35個2.5英寸驅動器,僅以3.5英寸硬碟的密度而言,還不如OEM廠商推出的伺服器。在Open Rack實用後,這個專案愈發沒有下文,AMD也投靠了ARM陣營,在OCP的專案裡主要以微伺服器卡(Micro-Server Card)刷存在感。

總的來說,還是Amir那個計算與儲存分離(解耦,disaggregation)的思路靠譜。Facebook在時任硬體工程經理Per Brashers和中國籍工程師晏勇等工作人員的努力下,於同一屆峰會上公開的Open Vault(代號Knox)取得了成功。這是一個寬度和高度(2 OU)都適配Open Rack的JBOD(Just a Bunch of Disks,一堆硬碟的簡單集合,無處理能力,需配合計算節點使用),共30個3.5英寸硬碟,分為上下兩層,每層有15個硬碟和一對冗餘的“控制器”。電路邏輯比伺服器主機板簡單許多,基本上是Facebook獨力設計完成,先交由廣達生產,貢獻給OCP之後,與OCP伺服器一樣有其他提供商(如Hyve Solutions和Wiwynn)生產的版本。


圖注:抽出一層(tray)共15個硬碟的Open Vault,背景機架供電區上方的2 OU裝置為廣達的JBR,也是JBOD(來源:張廣彬,2013年)

Open Vault是個非常經典的設計,後面會有專門的章節展開分析。


圖注:除了CPU、記憶體和硬碟配置的自然更新,2013年Facebook 的Hadoop(型別4)和Haystack(型別5)伺服器都用上了Open Vault,冷儲存機架更成為一種新的伺服器型別(7),從硬體架構上也可以理解為一臺單控制器帶8個JBOD組成的低效能儲存系統(來源:根據Facebook資料製表)

現在,需要大容量儲存的Facebook伺服器,如Type Ⅳ(用於Hadoop)和Type Ⅴ(用於Haystack,Facebook的圖片應用)都由Open Vault提供儲存,還增加了一個OCP伺服器帶8個Open Vault(240個硬碟)的冷儲存(Cold Storage)型別——共18U,佔據半個機架。

資料中心:RDDC與水……

如前面介紹,OCP的孕育便與資料中心建設有著密不可分的關係,Facebook貢獻的基於Prineville資料中心實踐的資料中心電氣和機械設計規範,是OCP最早的文件之一;Facebook向OCP貢獻的冷儲存硬體設計規範包括了冷儲存資料中心地面佈局的建議,冷儲存伺服器就是前述的配置。


圖注:位於北極圈邊緣的Facebook Luleå資料中心,景象是不是有點像前一章介紹的Google芬蘭Hamina資料中心?為Hamina資料中心提供電能的Maevaara風力發電廠就在Luleå北邊不遠……(圖片來源:Facebook)

2014年3月初,Facebook資料中心設計團隊的設計工程師Marco Magarelli在OCP官網上撰文表示,瑞典Luleå園區的第二座資料中心建築(Luleå 2)將採用“快速部署資料中心”(Rapid Deployment Data Center,RDDC)的概念模組化構建。RDDC包括兩種方法,第二種“flat pack”(組合件)方式自稱效仿宜家(Ikea),不過,真正“因地制宜”的是為了適應瑞典寒冷的氣候(Luleå離北極圈不到100公里)——Facebook機械和散熱工程師Veerendra Mulay在與我的交流中表示,用傳統的方法建設資料中心需要11~12個月(參見Prineville),RDDC可以縮短為3~8個月,從而儘量避開Luleå下雪的季節(騰訊天津資料中心建設過程中也曾被暴雪所阻)。


圖注:chassis方式的不同型別模組(來源:Facebook)

第一種“chassis”(底盤)方式來源於12英尺寬、40英尺長的預組裝鋼框架,是類似組裝汽車底盤的理念:構建框架,然後在組裝線上附件部件。電纜槽、輸電排、控制面板乃至照明都在工廠預安裝好。對應的,這種模組化方法就像搭建樂高積木。


圖注:flat pack方式的分段組裝(來源:Facebook)

顧名思義,這兩種方法的精髓都體現了由傳統的工程專案到工廠預製產品、現場模組化組裝的轉變。通過部署預安裝的總成和預製單元模組、交付可預測和可重用的產品,RDDC能夠實現站點無關設計、減少現場影響、改善執行和工藝的目標,加快資料中心建設的速度,提高利用率且易於複製到其他地區。提高效率,終歸是要服務業務需求。


圖注:Prineville第一座資料中心的散熱設計,上層頂棚(對照前面Altoona資料中心的框架結構照片)對外部冷空氣和迴流熱空氣進行處理,按一定比例混合

RDDC很大程度上得益於Facebook著力推行的新風供冷(fresh air cooling),沒有空調(Chiller-less)和冷卻水管道,便於實現資料中心的模組化,另一好處是很低的PUE(約1.07)。相比之下,Google的資料中心模組化程度雖然高,但冷卻水管道多少是個阻礙,PUE也略吃虧(約1.12)。不過,因為要靠噴水霧調節溫度和溼度,Facebook的資料中心安全性略遜一籌。


圖注:Google俄勒岡州Dalles資料中心內景,藍色的是冷水供應管道,紅色的把溫水送回致冷。鋪設水管典型的工程專案,費時費力,難以模組化(來源:Google官網)

2011年夏天,Prineville的資料中心投入使用不久,建築控制系統錯誤的輸送了富含水分(溼度95%)的冷空氣(80華氏度),“機房裡就像飄著一朵雨雲”,很多伺服器遇溼重啟,或者因電線短路而自動關機。那年6月下旬,Facebook曾計劃將Prineville資料中心二期像北卡Forest城資料中心一樣,把伺服器進風溫度從80華氏度(26.7攝氏度)提高到85華氏度(約29度),相對溼度從65%提高到90%,溫升(ΔT)從25華氏度提高到35華氏度,旨在減少環境的影響,並允許減少45%的空氣處理硬體。現在看來其後兩個指標只到80%和22華氏度,且只有Forest城資料中心相對溼度為90%,不知是否與這次事故有直接關聯。


圖注:Facebook三大資料中心(Prineville、Forest City、Luleå)基本設計指標對比(來源:Facebook)

網路:從邊緣走向核心

Intel在至強E5-2600的參考平臺中力推夾層卡(Mezzanine Card)設計,特別是網絡卡,讓高密度的機器獲得和標準(PCIe)插卡接近的靈活性。這一思想在同樣基於至強E5-2600的OCP Intel V2.0主機板上得到了很好的體現,按照OCP Mezzanine Card 1.0規範設計的夾層卡,安裝位置在主機板前端(冷通道側),便於維護。

就標準機架伺服器而言,網絡卡採用夾層卡設計的緊迫性不高,還會提高成本,所以OEM大廠的響應不是很熱烈。支持者如戴爾等將靈活性作為主要賣點,以Broadcom或Intel的網絡卡模組為主,希望能推動傳統企業使用者加速向萬兆網絡卡升級。OCP伺服器則大量採用Mellanox的萬兆夾層卡,豐富的特性如能降低傳輸延遲的RoCE(RDMA over Ethernet,乙太網遠端記憶體直接訪問)和硬體虛擬化技術SR-IOV(Single Root I/O Virtualization,單根虛擬化)也是其賣點。甚至國內OEM伺服器大廠如聯想,亦在其天蠍2.0伺服器節點中採用這種夾層網絡卡,如此“拿來主義”精神對擴大OCP的覆蓋有一定積極作用。


圖注:聯想天蠍2.0整機櫃伺服器節點用的就是萬兆OCP夾層卡CX341A,Mellanox ConnectX-3 EN家族的單埠10GbE網絡卡,以色列原廠生產(來源:張廣彬)

OCP Intel V3.0主機板加入了對 OCP Mezzanine Card 2.0的支援。2.0版夾層卡新增了可選的第二聯結器,以滿足未來高速網路(如100GbE)的需求,目前來看更主要的變化是擴大了板上空間,支援的介面模組也從1.0的2個SFP+升至2個QSFP、4個SFP+或4個RJ45/10GBASE-T的多種選擇。


圖注:OCP夾層卡V2主要有三大改進:增加聯結器B、擴大板上空間、可選I/O區域(來源:OCP Engineering Workshop)

說到這裡有必要指出,夾層卡屬於伺服器專案。OCP在網路專案上的起步相對較晚,從2013年才開始有規範產生,2014年逐漸壯大。

按照OCP官網上的說法,網路專案最初的目標是開發邊緣(leaf,指ToR)交換機,然後是骨幹(spine,相當於Aggregation)交換機和其他硬體及軟體方案。


圖注:三層網路的Aggregation(會聚)/Access(訪問,如ToR)與二層網路的Spine(枝幹)/leaf(葉子)存在一定的對應關係(來源:Cumulus Networks)

網路裝置與伺服器的同源性還沒有儲存裝置那麼高,以交換機與伺服器的配比,密度早不是一個級別,擴充空間不是優先考慮的事情。已有的幾款OCP定製交換機在外形尺寸上很常規,標準RU、能裝在19英寸機架裡即可,電源和風扇的佈置方式也很傳統,有助於被企業市場接受。目前,OCP網路硬體追求的是類似伺服器的使用體驗乃至生命週期,包括控制平面與資料平面的高度模組化、軟體與硬體解耦合,以實現定製的靈活性(DIY),避免被供應商鎖定。


圖注:OCP網路專案的階段性目標,先從傳統單片式(Monolithic)交換機到軟硬體解耦,再進一步模組化(來源:Facebook)

資料平面的核心是ASIC(如Broadcom)或FPGA,不乏支援40GbE的方案;控制平面的CPU可以是x86(如AMD的嵌入式SoC,或Intel Atom)、PowerPC(如Freescale多核PPC)、MIPS(如Broadcom多核MIPS)或ARM。截至2015年2月底,OCP已經公開了6款交換機(Accton、Broadcom/Interface Masters、Mellanox和Intel各1款,Alpha Networks有2款)的設計,其中的半數方案可以根據需要配置為ToR或會聚(aggregation)交換機。

軟體與硬體解耦,ONIE是關鍵,也是OCP網路專案早期的重點工作。ONIE即Open Network Install Environment(開放網路安裝環境),是一個定義用於裸金屬(bare metal)網路交換機的開放“安裝環境”的開源專案。傳統的乙太網交換機有預安裝的作業系統,拿來就用,直接管理,但會鎖定使用者;所謂的白盒(white-box)網路交換機提供了選擇硬體的自由,但不同的CPU架構等導致異構的管理子系統,又給上面的網路作業系統製造了困難。

ONIE定義了一個開源的“安裝環境”,將boot loader(引導裝載程式)與現代的Linux核心及BusyBox相結合,提供了一個可以安裝任何網路作業系統的環境,有助於自動化大型資料中心的交換機(上千臺)配給,讓使用者像管理Linux伺服器一樣管理交換機。

上述成果的直觀體現就是Juniper Networks(瞻博網路)2014年12月初發布的OCX1100交換機,在Alpha Networks SNX-60×0-486F的硬體上執行基於Linux的Junos作業系統,預計於2015年第一季度上市。SNX-60×0-486F是Alpha Networks公司設計的OCP交換機,由一個BCM56854(Broadcom Trident Ⅱ)晶片提供48埠10G SFP+和6埠40G QSFP,CPU子系統為Freescale(飛思卡爾)P2020或Intel C2558,可作為ToR或會聚交換機使用。Dell(提供如Z9500-ON資料中心核心及會聚交換機)與Cumulus Networks(提供CLOS)的合作也是類似的情況。

圖注:2014年6月公開的Wedge交換機硬體設計,雙冗餘供電單元,4個風扇(來源:Facebook)

沒錯,Facebook正在向核心交換機挺進。2014年6月,Facebook展示了其設計的新款ToR交換機(代號Wedge),有多達16個40GbE埠,支援Intel、AMD和ARM的CPU,配以基於Linux的作業系統(代號FBOSS)。


圖注:6-pack硬體平臺外觀,由於集中了PSU,Wedge交換機寬度更緊湊,兩兩並行放置(來源:Facebook)

2015年2月11日,Facebook宣佈推出第一款開放硬體模組化交換機“6-pack”,7RU的機箱,裝有8個基於Wedge的交換機和2個fabric卡,共6層,底下還有一層電源和風扇。作為Facebook data center fabric的核心,6-pack將使Facebook可以組建更大規模的叢集,而不是將叢集分為多個,並因叢集間的網路鏈路而限制叢集的規模。


圖注:6-pack內部網路資料路徑拓撲(來源:Facebook)

Wedge和6-pack都將通過OCP公開設計規範。

反哺與變局:來自傳統廠商的支援

2014年是OCP變動很大的一年,儘管也遇到了一些困惑,但生態系統明顯壯大了起來,特別是體現出對傳統軟硬體廠商的吸引力。

1月底召開的第五屆OCP峰會上,微軟高調宣佈加入OCP,風頭明顯蓋過一同亮相的IBM、Yandex、Cumulus Networks、Box、松下、Bloomberg、IO、LSI(已被Avago收購)。相比看起來像是打入內部探聽訊息的IBM,微軟可謂誠意十足——貢獻了用於全球雲服務(如Windows Azure、Office 365和Bing)的開放雲伺服器(Open CloudServer,OCS)設計作為“投名狀”。

單論資料中心的規模,微軟應該比Facebook和還在瘋狂趕進度的IBM/SoftLayer(也是10萬+伺服器的Tier 2網際網路客戶)加在一起都大,把新硬體的採購換成OCP就已經是天大的喜訊了,再貢獻一組硬體設計規範及管理軟體原始碼,Staya Nedella還沒上任就大赦天下?

顯然沒那麼簡單,微軟也有與Facebook類似的想法。

現在OCP的伺服器規範與設計頁面中,開放雲伺服器的資料列在最上面,在2014年的Engineering Workshop裡也是伺服器部分的宣講重頭。OCS的12U機箱為EIA 310-D 19英寸機架而設計,半寬的計算和儲存刀片,每U兩節點(1U2),集中風扇、PSU和管理單元(Chassis Manager),很不Open Rack,更像12U的天蠍1.0整機櫃(下一章介紹)。如此看來,要把天蠍專案納入OCP,確實不是技術上的問題——只要BAT願意……當然是在開放資料中心委員會成立之前。

2014年10月底在巴黎召開的歐洲峰會上,公佈了OCS V2規範。V2的計算刀片將CPU從V1的雙路Intel Xeon E5-2400 v2(10核/CPU)升級為最新的雙路Intel Xeon E5-2600 v3(14核/CPU,v3沒有2400),記憶體隨之由12個DDR3-1333升級為16個DDR4-2133,支援的容量範圍也從64-192GB擴至128-512GB。計算能力大為增強,但CPU的TDP也從95W(應為E5-2470 v2)提高到120W(應為E5-2683 v3),因而每個刀片的能耗從不到250W增至300W或以上。

圖注:開放雲伺服器的機箱元件,機箱管理卡類似於天蠍整機櫃的RMC,特點是執行Windows Server 2012 R2,微軟已開源機箱管理軟體的程式碼(來源:OCP Engineering Workshop)

所以,OCS V2的機箱也進行了升級,首先是6個PSU從1400W換成1600W,N+1配置時總容量8kW,支援24個計算刀片,N+N配置時為4.8kW。付出的代價是供電的停頓時間(hold-up time)從10毫秒倍增為20毫秒,並以新的風扇匹配刀片的能耗。

刀片效能的提高,對I/O頻寬也提出了更高的要求,OCS V2每層托盤(Tray)的I/O從V1的雙10GbE和雙6Gb SAS(x4)升級為10/40GbE和雙12Gb SAS(x4),並增加了PCI Express 3.0 x16的夾層卡。


圖注:2011年微軟IT-PAC(IT Pre-Assembled Components,IT預組裝部件)中的伺服器機架,看似是開放雲伺服器的前身,目測機架高度應該在50U以上

儲存刀片為可容納10個3.5英寸硬碟驅動器的JBOD,V2也是從V1的6Gb SAS升級為12Gb SAS,單就硬碟密度而言,每機架可達800個硬碟。V1 JBOD仍可用於V2機箱,每個計算刀片自帶4個3.5英寸硬碟(V1還支援2個2.5英寸SSD,V2增至4個,以及8個110mm M.2 PCIe NVMe模組)。每個計算刀片可連線1-8個JBOD,即支援14-84個硬碟。


圖注:Facebook的PB級藍光歸檔儲存系統(來源:The Register,2014年)

第五屆OCP峰會上還展示了Facebook的藍光光碟歸檔儲存系統,42U的空間內可以容納1萬個三層100GB光碟,容量達1PB,據稱可以儲存資訊50年。Facebook的前輩Google使用單盤容量更大的磁帶,也有歷史因素,Facebook則認為光碟代表著未來。


圖注:Google南卡Berkeley County資料中心的磁帶備份系統,這張照片以前曾被誤傳為Google的伺服器(來源:Google官網)

從離線儲存的角度來看,磁帶與光碟各有千秋,短期內難分勝負。很快見效的是,2014年3月下旬,Frank Frankovsky宣佈離開Facebook,去做一個基於光碟的冷儲存初創公司,但以獨立身份保留在OCP基金會董事會的位置,並繼續擔任基金會主席兼總裁。董事會裡必須有Facebook的代言人,於是增補了Facebook基礎設施總監Jason Taylor,以及微軟負責雲和企業業務的副總裁Bill Laing,規模擴大到7人。


圖注:調整後的OCP組織架構(來源:OCP官網)

老牌儲存廠商EMC在2013年1月舉辦的第四屆OCP峰會上就宣佈入夥,只是風頭被一起加入OCP的ARM壓過。因此,EMC World 2014上釋出基於x86商用伺服器硬體的ECS(Elastic Cloud Storage,彈性雲端儲存)裝置時,就被問到是否與OCP有關。相比之下,EMC的子公司VMware就爽快得多,在2014年8月底舉辦的VMworld 2015上宣佈加入OCP,尚處於技術預覽階段的EVO: RACK則明確表示基於OCP硬體——畢竟,VMware自身沒有硬體包袱。

小結:模式、傳承與融合

OCP下屬專案越來越多,第六屆峰會馬上就要召開,短短一章實在難以盡述,單獨寫一本書都是可以的。本章走馬觀花的概覽了一些關鍵專案,有主要感受如下:

  1. 模式。 OCP最成功之處無疑是創造了開源硬體的模式,雖然起自Facebook自家的定製需求,卻在社群的協助下,進一步推動硬體的標準化與商品(commodity)化;
  2. 傳承。 開源軟體的模式可以學,沒有精通硬體的人才也搞不好。眾多在硬體廠商乃至Google有多年資料中心相關技術積累的專業人才,為OCP的後發優勢提供了可能;
  3. 融合 。OCP已經體現出了來自網際網路的第三平臺對傳統企業市場的第二平臺的影響,微軟和VMware、Juniper等在傳統企業市場積累有軟體資產,要顛覆現有硬體秩序或順應潮流的,都來加盟。開源社群的特性和這些加盟者所做的工作,也會影響到OCP的發展方向。