保密本就是數據中心行業的慣例。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的發展史或許可資借鑒。
[page]從一臺服務器到多個數據中心
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這個開源硬件組織的組織架構及主要成果。
[page]董事會:經驗的傳承
成立基金會,而不是在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)
[page]超越往往從學習和模仿開始,雖然牛頓所謂“站在巨人的肩上”并非此意。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年)
[page]更關鍵的問題在于,傳統的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的特點主要是:
拓展空間。 開創性的提高了內部利用率,特別是留給IT設備的寬度大為增加,單位高度也略有提升,同時盡可能的保持了與原有機架標準的兼容性(外寬一致,高度接近);
集中供電。 提供機架范圍內的共享與冗余,服務器等IT設備直接插拔取電,免去上架時的手動連線工作;
前端維護。 后端用于供電和散熱,維護人員在冷通道一側即可完成日常工作,不用進入熱通道。兩邊跑不僅增加了工作量,在后端識別設備困難,容易導致誤操作。
當然副作用也是有的,即兩側起支撐作用的部分變薄,同時內部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還有重組供電布局、去掉單獨電池柜等重要改進,將在后面的章節介紹。
[page]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,占據半個機架。
[page]數據中心: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)
[page]網絡:從邊緣走向核心
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架構等導致異構的管理子系統,又給上面的網絡操作系統制造了困難。
[page]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或以上。
[page]圖注:開放云服務器的機箱組件,機箱管理卡類似于天蝎整機柜的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自身沒有硬件包袱。