黑客故事:12個月造Facebook開源服務器
導讀:Facebook從開源服務器、數據中心直到剛剛宣布將開源存儲方案,Facebook正在幫助互聯網企業除去那些昂貴而且不必要的組件來降低成本,從新設計供電、主板和散熱系統,并將方案分享給所有人。Wired記者Cade Metz對Facebook的系統工程經理Amir Michael進行了采訪,為我們描繪了Facebook開源服務器和數據中心的誕生過程。你很難想象,Michael和他的團隊僅僅用了12個月就完成了這一切。
▲Amir Michael在Faceobook的服務器實驗室
Amir Michael在Facebook工作,作為一名黑客這沒有什么值得驚訝的。但他并非一名傳統意義的軟件黑客,而是一名硬件黑客——在作為臨時實驗室的收發室里。
到2010年底,Facebook在Palo Alto的總部碼頭不再接收任何貨物。Michael和另外幾名工程師隨之涌入,因為他們需要建立更大的服務器實驗室,這不,他們已經在隔壁建立了存儲房間。
這里曾是發貨碼頭,在地板上有一個巨大的標尺。有時候,這個巨大的標尺用來給包裹稱重。當Michael和他的團隊搬進來后,標尺用來測量從零開始制造的服務器。12個月后,他們為Prineville數據中心設計的服務器完成,其中一臺放在標尺上。他愛不釋手,這個服務器已經批量生產并在世界各地使用。
Michael制造的服務器輕了10磅。
像其他互聯網巨頭一樣,Facebook為他的互聯網帝國提供了大量數據中心網絡和服務器,投入巨大,很多很多錢。如果你要為上億的用戶提供網頁,就需要花掉大量的金錢,不僅僅要購買硬件,而且要為這些硬件提供電力。從某種角度上說,你真的花了太多錢了。你需要的東西與世界上的任何一件東西都不一樣。
2009年春天,Facebook將Michael招募進來,幫助公司提高效率。“我的主管和我說:‘嘿,來吧,我們有很多架構要建立,我們要做許多創新,更加經濟以及更高的能源效率’”,Michael回憶。“我問道有沒有什么具體的目標么?他說:‘沒有。為什么不來加入我們并找到它呢?’”于是,Michael就做了這些。
為了保持Facebook世界知名“黑客文化”,他從一塊空白的地板開始,利用能觸手可及的一切東西,以工程師的瘋狂速度建造了Facebook IT存儲間以及隔壁的收貨“碼頭”。結果就是一個全新的服務器誕生了,不僅能效高、更加經濟,而且外形(physically )更高效。
“為了優化成本,我們拿掉了標準服務器中很多組件,”Michael說,“這使得它更容易維修。由于少了很多阻擋物,散熱變得更加高效。并且輕了10磅:這讓我們少購買了10磅,任何時候把它放入或從機架上卸下變的更輕松,***到報廢的那一天,也少回收了10磅。”
Facebook并不是獨自設計自己的服務器。Google參與幾年了。不同的是,Facebook會邀請你進入臨時的實驗室,參觀他們是怎么做的,還會把Michael設計的服務器提供給你,甚至包括Prineville數據中心的設計藍圖,有了它你就可以用把這些服務器串聯起來工作了。
互聯網巨頭需要高效的硬件處理各種大量的業務。無論是金融機構、生物醫藥還是其它的商業機構,都遇到了同樣的問題。Facebook希望幫助自己,也幫助他們。通過Michael以及其他Facebook的硬件智能團,可以將雙方緊密攜手。
▲在曾經的收發室內,Michael把服務器從機架上卸下。#p#
***的經驗就是沒有經驗
在加入Facebook前,Michael在Google做了5年半多的硬件工程師。他調試過各種主板和電源,但從未設計過自己的服務器。這就是為什么他適合為Facebook制造一臺服務器的原因。“我的愿景并不是混亂的,”他說。“我研究了很多獨立的部件,但我從未涉及整個系統。”
他開始擺弄Facebook數據中心中的各種服務器和設備,Facebook僅僅租賃空間和基礎設施。他和其他工程師做了一些改進,但他們很快意識到他們不能改變多少,除非從頭設計數據中心和服務器。“我們不能改變一點數據中心,再改變一點服務器,”Michael說。“我們的確改進一些,但我們想走的更長遠。”
于是一名叫Jay Park的工程師發力研究數據中心,Michael專注服務器。但他們還在一起工作。設計的想法由兩個人密切合作完成。
一般而言,數據中心在交流、直流電轉換以及不同電壓間轉換會浪費很多電能。但一天晚上,Jay Park說,他夢見了一個新的數據中心不存在這些浪費。當他醒過來,手邊并沒有紙,就隨手在餐巾紙上畫出了他的構想圖。
我們沒有采用大量的分散的裝置將電壓降到208伏,而是直接將277伏電流供給服務器機房。“我們這么做的原因和供電公司在傳輸網絡上采用高電壓的原因是一樣的。”Michael說。“更高的電壓,意味著更少的浪費,更高的效率。”而且,省去了那些龐大的不間斷電源(UPS),從而減少了損耗。取而代之的是,Park和其他工程師將直流電池放進旁邊的機架上,并將其裝進服務器。這意味著,后備電源的供電距離較短,而且不需要從直流電轉換到交流電,再從直流電轉換到交流的長途跋涉。
但Park夢想中的數據中心還不能工作,除非你有能夠適應這些變化的服務器。Michael對數據中心生態系統的貢獻是將提供了兩個而不是一個電源接口。其中包含一個277伏特交流電源,和一個在旁邊機架上的48伏特的直流電池。“電源裝置十分智能,當交流供電失效時,將自動切換到電池供電,”Michael說。“服務器甚至不知道電源供電消失了。”
但他并沒有停下腳步。他設計了從服務器底架、風扇、主板等一切東西。Michael和他的團隊并不是在現有的基礎上修修補補,而且完全設計了一個新的機器。
▲一個Facebook的服務器部門的工作臺。有時候會增加一倍大小。#p#
哪里的世界是Amir Michael的?
以前從來沒有做過一臺服務器,你該怎么做呢?你閱讀了大量描述供電裝置的技術手冊。于是,你找到了一個能真正制造電源的家伙。
當他開始設計服務器,他想到了Synnex,一家全能公司,在過去30年,深耕于全球的電腦硬件的購買和銷售業務。Synnex總部位于美國加利福尼亞州的佛瑞蒙,他與臺灣、中國大陸以及其它地區的原始設備制造商(ODM)關系緊密。Michael要求公司指派他與各種各樣的電源制造商、主板制造商聯系。
“我們也很愉快,”Synnex高級副總裁、總經理Steve Ichinaga表示。Steve Ichinaga與Michael緊密合作。畢竟這是在Facebook。最終,Facebook成為了Synnex的客戶。在服務器運往Prineville的數據中心前,Synnex負責對其進行測試。
通過Synnex和其它渠道,Michael與許多設備制造商取得聯系,至少3家同意幫助制造服務器:廣達,一位于臺灣的主板和電腦制造商;臺達,另一家臺灣制造商,專攻電源裝置;寶威,另一家總部在美國的電源制造商。寶威拒絕接收采訪,臺達和廣達沒有對采訪要求做出回應。但據Michael透露,三家公司不僅為Facebook服務,而且他們之間彼此還有合作。
“我們選擇的伙伴非常開放,溝通很順利,并給我們分享了很多經驗,幫助我們更好的優化,”Michael說。“我們與主板供應商分享了我們的供電設計,并邀請他們一起工作。因此,我們緊密的合作。每個人都能看到全局,這讓所有的工程師更有效率。讓我們有同樣的思考方向。”
別的服務器設計師并不這樣工作,他補充道,顯然在暗指Google。“其它公司將這些事情分離開來,要花很多精力來進行溝通和理解。工程師不可能集中精力設計好的服務器。許多很小的細節,人們也不得不親自描述。”
Facebook也與Intel和AMD合作,他們的CPU用于制造服務器。Intel數據中心群組高密度計算業務總經理 Jason Waxman拒絕透露合作的細節,但他表示Intel與Facebook在設計服務器項目上工作“非常和諧”。
通過與這些伙伴合作,Michael的目標是制造一個“無浪費”(vanity-free)的服務器,不含有任何一個Facebook不需要的組件。“我們不需要花精力去照看服務器,”他說。“沒有噴漆,前面板上沒有按鍵,沒有logo或徽章。”但是,這樸實的設計只是我們努力的一部分,這幫助我們減少制冷的成本。
最終,他們被固定在底架上,由于比一般的服務器高,所以可以容納更大的風扇和散熱器。大風扇提供更高效的氣流。由于采用更大的散熱器,不需要那么多流動的空氣。散熱器有更大的表面積,幫助CPU散熱的效率更高。
同時,Michael的團隊從新設計了主板上的芯片位置來增大氣流。“這個主意產生了一些列連鎖反應,”冷空氣吹向發熱的設備。設備彼此間不會“遮擋”。更多的冷空氣直接吹向需要冷卻的設備。通過調整電路設計,我們提升了散熱設計。”
Michael從2010年1月開始設計,***臺原型機在夏天到達他的臨時實驗室。
▲Facebook風洞,測試服務器散熱。#p#
批薩、啤酒、薯片和主板
批薩和啤酒運到這里已經幾周了。在Santa Clara的數據中心,Michael組建了“build聚會。”批薩和啤酒用來招待來自Facebook和其它地方的服務器技術員,技術員被分好區,并在Michael的原型機上工作,他的團隊在一邊觀看。技術員會把他們放在一起,然后再分開。“這很有趣,令人興奮,并從中學到很多經驗,”Steve Ichinaga說,“這是個好辦法,讓所有的人都知道每件東西是怎么工作的。”
包括Amir Michael和他的工程師在內,工程師們通過眾所周知的方法來測試原型機的極端狀態。他們安裝了熱量測試間,并對服務器極端加熱和冷卻。有時,他們會讓服務器迅速加熱或冷卻,會產生嚴重的凝結,生成一大塊冰。在第三個房間,他們建立的風道,用來測試服務器散熱。在風道邊旁,一臺示波器用于追蹤通過主板的信號。
▲Facebook的熱量測試間,也稱服務器烤箱。
經過3輪原型機、5個月反復測試,他們確定了最終設計方案。12月,整整7個機架的服務器運送到Oregon Prineville的數據中心,Michael和幾個工程師也來到這里,不過他們并沒有做什么。“我們啟動了機架上的服務器,一切都開始工作。沒有bug。嬰兒的死亡率——服務器在運輸過程中的損壞率非常低,比我們用過的那些服務器要低。”他說。“事實上,那是非常無聊的一天。服務器運來。我們調試。然后我們鼓掌。我們沒有其它事可做。”對于過去的5個月測試,這是一份遺書,他說。
他在那里多待了一天防止出任何差錯。但什么都沒發生。于是他就回家了。
▲生命的2.0#p#
請拿走我的服務器
Michael說,一個工程師喜歡在Facebook工作的原因就是,我們經常討論誰不愿意在Facebook工作。與數據中心和服務器一起工作,公司給予了極端的企業文化。 去年四月,在Michael啟動那些服務器后3個月后,公司發布了他的設計方案,這成為 了Open Compute Project的一部分。任何人都可以獲得它。
任何人都能對其更新。Open Compute Project 1.0發布一年后,Michael和他的團隊將要發布2.0版。Synnex建立了新的組織——Hyve,提供開放服務器和其它定制機,一些設備已經在訂單系統中,其中包括1、2個互聯網大佬級企業的名字。
為了分享設計,Facebook希望降低設備的價格,也鼓勵其它組織幫助提高設計。公司清楚這些對大家協作制造服務器有所幫助。
為了制造Facebook的服務器,Michael同寶威的工程師奮斗在意大利,與臺達的工程師在德國工作,其它工程師則前往臺灣。為了2.0版,他聯合了第二家臺灣主板制造商緯創。在圣誕假期到來前,我們站在他的服務器實驗室中談論,一名叫Peter Ha的Facebook工程師,以及兩名來自其它公司叫不上名字的朋友,一起仔細檢查新設計的細節。盡管Michael正走向Facebook的新總部的實驗室,這里曾是Sun Microsystems在California Menlo Park的老校區。
他們并不常說英語。碰巧的是,在與Michael結束談話前我問道,你和你的團隊如何應對語言障礙。“我們工程師中的許多人都熟練的說普通話(Mandarin。Facebook中有許多華人工程師?),”他說。“如果溝通中出現困難,談話語言會變成普通話。”
和其他自稱Facebook黑客的同事一樣, Amir Michael和他的團隊知道如何解決手頭的問題,并且與來自世界各地的伙伴良好合作。
【編輯推薦】