北京時間7月29日消息,美國科技網站ArcTechnica近日刊載文章,講述了Facebook正如何利用自己“毫無浮夸的”服務器來對惠普、思科及其他企業IT領域中的大型廠商造成威脅的。文章指出,開源商品硬件之所以能迅速擴大自己的影響范圍,從最初的受眾轉向更多的用戶,其原因在于硬件廠商可以很自由地采用這種硬件,從而壓低新服務器系統的價格。
以下是這篇文章的全文:
Facebook總部的17號樓坐落在Sun Microsystems原來的園區,因為形似加利福尼亞州昆廷監獄(San Quentin)而被戲稱為“Sun Quentin”。現在,在這座大樓里辦公的是Facebook電力實驗室的一個Facebook工程師團隊。在每一個工作日里,他們都在推進這家公司有關數據中心硬件應如何構建的想法。這些工程師會不斷地對自主開發的服務器硬件的設計進行臺架測試——基本上來說,Facebook自主設計的服務器硬件與我們平常所知的硬件大有不同。
ArcTechnica最近造訪了Facebook的總部園區,在Facebook硬件工程高級經理、服務器硬件設計團隊負責人馬特·考德里(Matt Corddry)的引領下參觀了這家公司的服務器實驗室。Facebook實驗室里正在發生的事情不僅僅是對這家公司的數據中心造成了影響,同時也是Facebook為開放計算項目(Open Compute Project)作出的貢獻之一,這個項目的宗旨是希望將開源設計帶給全球范圍內的數據中心服務器和存儲硬件、基礎設施以及管理界面。
Facebook、亞馬遜和谷歌都對各自的服務器硬件很是挑剔,這些科技巨頭主要都是通過購買商品部件然后自主開發的方式來生產自己的硬件。Facebook硬件設計和供應鏈運營副總裁弗蘭克·弗蘭科夫斯基(Frank Frankovsky)曾為開放計算項目的發起出過一份力,原因是他認識到,在大型云計算公司對它們能共享的東西進行重新創造的過程中會產生浪費現象。弗蘭科夫斯基感覺,將Facebook在軟件領域中一直遵循的開源原則引入硬件領域,將可為這家公司及其他公司節省大量資金——這種節省體現在兩個方面,一種是直接的硬件成本,另一種則是維護和電力成本。
正如Raspberry Pi單板電腦和Arduino開源微控制器已經激發了小型硬件黑客的想象力那樣,開放計算項目的目標是在宏觀層面上讓DIY變得更加容易、更加有效和更加靈活。從最后可能造成的結果來看,Facebook和開放計算項目正在對數據中心硬件所做的事情可能不會令整個硬件行業面臨消亡的危險,但肯定會對這個行業造成一定的影響。沒錯,開源的、商品化的主板及其他為Facebook所用的子系統最初是專門為“超大規模”的數據中心世界而設計的,比如說Facebook、Rackspace及其他云計算服務提供商的數據中心;但是,這些設計能輕松地找到通向其他DIY硬件環境的道路,或是通向“毫無浮夸的”(vanity free)服務器系統的道路,這種系統不僅會被賣給小型公司,也會賣給大型企業。
開源商品硬件之所以能迅速擴大自己的影響范圍,從最初的受眾轉向更多的用戶,其原因在于硬件廠商可以很自由地采用這種硬件,從而壓低新服務器系統的價格。而對于惠普、思科及其他企業IT領域中的大型廠商來說,這可未必是個好消息。“毫無浮夸的”、開源設計的服務器系統很可能將會推動創新活動迅速發展,從而對惠普等公司一直以來都賴以生存發展的整個模式都造成破壞性的影響。
消除一切復雜的東西
確切地說,開放計算項目不能沿著開源的道路一路走向CPU,甚至就連Raspberry Pi也不是以開源硬件為基礎的,原因是在開放式設計的芯片中,沒有哪種芯片具有足夠的能力(出于經濟性的考慮,廠商也不會愿意批量生產這樣的芯片)。開放計算項目的硬件設計是在更高層面上“開放”的,任何人都能利用基于標準的部件來創造主板、底座、機架、機架零件及其他服務器部件。
“我們把重點放在盡可能最簡單的設計上。”考德里告訴我說。“我們關注的重點是非常高的可擴展性,消除一切復雜的東西,放棄任何美輪美奐的或是浮夸的設計。”這就意味著,通過這種方式創造出來的硬件易于維護,生產成本和價格都比較低,而且在出現問題的時候也能比較簡單地進行處理。另外,基于這種設計來創造其他東西也比較簡單,這對Facebook及其他認同開源計算項目哲學的公司來說都是有幫助的。這一點可以在Facebook于6月18日在總部園區舉辦的“開源計算項目硬件黑客馬拉松”(OCP Hardware Hackathon)大賽中得到證明,此次大賽中涌現出了一些很棒的想法。
到目前為止,開源計算項目硬件的主要采用者只有Facebook和Rackspace,但這種情況在不久以后就會發生變化,原因是開源硬件的發展動量正開始起步。由于英特爾、AMD及其他一些公司都已經開始創造更多符合開源計算項目規格的部件,而且正在為這個項目貢獻出更多的知識產權,因此有些相關人士認為,開源計算項目社區很快就會像滾雪球那樣變得越來越大。
“我認為,我們的行業很可能在大約十年以前就已經認識到——當時Linux正在接管Unix的地盤——開放對于供應商乃至大規模計算領域中的消費者來說都是非常有利的一件事情。”考德里說道。“Linux并未打垮數據中心行業或操作系統行業。我認為,今天我們也正在看到同樣的模式,看到開放式的硬件并不意味著硬件的死亡,而很可能是意味著硬件的重生。在這種重生的過程中,我們所看到的是創新的速度將會大大加快,因為我們不會總是白費力氣去做一些重復的工作。”
Facebook硬件工程高級經理馬特·考德里
解構服務器
Facebook數據中心設計哲學的核心是“解構”(disaggregation)——也就是把傳統上構成一臺“服務器”的東西拆解開來,使其變成特定目的的硬件群組,這些硬件群組在很大程度上靠網絡硬件互相連通。從某種程度上來說,這樣的事情發生在原屬Sun的園區中帶有那么點諷刺意味。在Sun的全盛期,這家公司的廣告口號是“網絡就是計算機”;而時至今日,計算機就是網絡,無論是從概念上來說還是從物理上來說都是如此。
Facebook硬件背后的設計原則來自于直接的實踐經驗。考德里稱,他手下的所有工程師都曾花時間在Facebook的數據中心里做過技術員的工作,“因此每個人都有過實踐動手經驗,了解硬件的具體運作”。
Facebook和開放計算項目所采用的方法是對數據中心進行一種“后現代解構”,也就是把通常情況下構成一臺服務器的部件拆解開來,使其變成能各自發揮功能的部件,盡可能地降低其復雜性,同時盡可能地提高其工作效率。在Facebook的數據中心架構中,真正意義上的所謂“服務器”少之又少,取而代之的是眾多填滿了各種功能性“sled”的機架。“那將成為一種模式,未來兩年時間里你們都會從我們這里看到這種模式。”考德里說道,他在硬件實驗室里向我們展示了一些sled設計。“我們的許多硬件設計都將把重點放在一個類別的問題上。”
在Facebook最新的數據中心里,這家公司已經采取了這樣的方法。在這些數據中心里,服務器機架中布滿了各種使用多用途計算sled(配備CPU、內存和用于處理特定任務的PCI卡的主板)構成的系統、存儲sled(高密度磁盤陣列)和“內存sled”(配備大量RAM和低能耗處理器的系統,這種處理器是為處理內存中索引和數據庫而設計的)。
“我們不會把這些用在網站上。”考德里說道,他所指的網站是Facebook用來連接至大型互聯網站點的托管站點。“但是我們會將其用在自己的所有數據中心設施里,包括位于弗吉尼亞州阿什本(Ashburn)的數據中心——那里的數據中心環境更傾向于經典模式。事實上,我們已經設計了一系列最初的開放式機架。”
所有這些分解開來的硬件模塊都擁有一種共同的特征,那就是它們都是完全獨立的,可以很方面地拆卸、修理或替換。考德里指著實驗室工作臺上的一個計算sled說道:“如果這個東西需要修理的話,那么你要做的事情就是抓住把手然后把它拉出來就行了,因為沒有螺絲,不需要使用螺絲刀。”
基于“Windmill”的Facebook計算
考德里用“Windmill”計算sled對此進行了演示,其基礎是第二代開源主板設計。“這是一種雙插槽的英特爾主板。”考德里說道。“我們把它稱作‘壽司船’形狀系數。”這種計算sled擁有跟服務器主板一樣的裸露“骨骼”:兩個處理器、16 DIMM內存插槽以及一些PCI(外部控制器接口)插槽。Facebook使用PCI 10Gb以太網卡,而不是直接把以太網卡放在主板上??嫉吕锓Q,這在很大程度上是因為這樣一來公司就能從多家供應商那里獲得這種產品。
計算sled上沒有電源;為了節能,所有電力都來自于機架。“背面有12伏電源接頭。”考德里解釋道。“我們給主板提供12伏穩壓電源,這樣一來我們就能消除所有與功率變換和系統供電相關的復雜性,節能原則會告訴你說,盡可能減少功率變換的次數是最節能的,而每次變換功率都會讓你損失五分之二的電力。因此我們直接為機架提供480伏非穩壓三相電源,然后通過電源插框將其轉換為12伏電源并向主板供電。也就是說,從發電廠到主板之間,我們僅僅進行了一次轉換。而與此相比,許多數據中心都會轉換三到四次:從480伏到208伏,進入UPS(不間斷電源),從UPS出來,進入配電裝置,然后進入服務器電源。”
在每個計算sled的冷卻風扇設計中,這種節能性也同樣存在。“這些東西的節能性好得令人難以置信。”考德里說道。“它們擁有很好的大扇葉,轉動的速度較慢,只需要三到四伏就能保持冷卻,而傳統的1U服務器則需要80伏到100伏。”
Facebook自主開發的數據庫發射器設計
在Facebook服務器中,有一種服務器不太符合Facebook的簡約化和“解構化”的模式,那就是數據庫服務器。“在通常情況下,數據庫服務器是最難利用DIY硬件來組建的。”考德里說道。“但是,我們想要去除那些價格高昂的、難以維修的OEM(原始設備制造商)數據庫服務器。那原本是一種有趣的迅速開發項目,而并非真正意義山的黑客馬拉松,但我們說道:‘嘿,我們仍在購買這種OEM硬件;不但價格昂貴,而且難以維修——我們能做點更好的事情嗎?’幾個月以后,就有工程師跳出來說:‘讓我們看看是否能去掉這最后一種OEM設備吧。’”
Facebook的硬件工程師團隊利用Windmill主板推出了一種解決方案,加入了一個電源工具箱,從而“允許我們使用兩套電源”??嫉吕镎f道。“在正常情況下,這種設計實際上會擁有一個電源和兩個主板”。他指出,雖然Facebook的大多數服務器都使用單電源,但數據庫服務器則需要額外的電源保護,從而防止斷電帶來破壞性的后果。因此,為Facebook用戶數據庫及其他大型數據庫提供支持的服務器需要擁有額外的電源。
Facebook的Open Vault磁盤陣列
Facebook應用的磁盤存儲需求——至少是那些相對較低的輸入和輸出需求,比如說Facebook的“Haystack”照片存儲系統——是由Open Vault磁盤陣列負責滿足的。在Facebook內部,Open Vault磁盤陣列的代號名為“Knox”。Open Vault是一種“布滿硬盤驅動器的托盤格式”,考德里說道。“當你進行高密度存儲時——正如你們所想象的那樣,我們有很多東西需要存儲——你會很想去做的事情就是填滿整個封閉空間。”
而Open Vault就是這樣做的,它的封閉空間中排滿了30個硬盤驅動器,分成兩個可拉出的單位,每個單位中各有15個硬盤驅動器。“硬盤驅動器的耗電量不大,散發的熱量也不算多。”考德里解釋道。“你不會覺得電不夠用或是需要首先考慮冷卻的問題,而是會面臨空間不足的問題。因此我們設計了某種東西,盡可能地減少冗余結構,從而在最大程度上利用機架的容量。”
每個硬盤驅動器都可熱插拔。此外,Open Vault磁盤陣列的硬盤托盤安裝有鉸鏈和摩擦彈簧。“如果你把這個Open Vault磁盤陣列放在機架頂上,那么在這種托盤配置下,想要拿到后面的硬盤驅動器就很難了。”考德里說道。但安裝在硬盤托盤上的鉸鏈和摩擦彈簧則能讓整個托盤都被拉出來,而在拉出來的同時,硬盤仍舊還在運行??嫉吕锓Q,這種鉸鏈已經讓Facebook存儲設備的可維修性有了很大不同。
就目前而言,Facebook的存儲托盤都通過Serial Attached SCSI界面與服務器連接到一起,這意味著它們需要通過一個PCI適配器與一個計算節點聯系起來。但是,Facebook正致力于讓所有存儲設備都能通過網絡存取,從而進一步降低布線的復雜性——而不是通過使用ISCSI等存儲區域網絡協議的方法來做到這一點。
“我們想要做的事情是把一個微型服務器放在存儲節點上,并通過10Gb以太網連接起來,然后放棄復雜的節點到節點布線方法。”考德里說道。“這樣一來,所有節點都擁有一個以太網連接單元接口,沒有別的東西。”通過這種方法,計算節點就能被釋放出來,而不必驅動磁盤I/O。
在推進閃存和大型內存中存儲sled向前發展的問題上,Facebook也采取了類似的方法,也就是以計算節點為基礎,通過網絡為應用提供低延遲的訪問路徑。“我們的大多數固態存儲都是以PCI為基礎的,因此我們就將其放在計算節點上。”考德里說道。“計算sled中有一個PCI轉接卡,因此你能在其中插入一些PCI Express卡。我們發現,在一個磁盤界面上放置閃存是一種技術上的錯誤搭配,無法充分利用其速度。”
Facebook的數據需求傾向于靠近輸入輸出范圍的極端,Haystack(照片存儲系統)等系統的數據要求十分龐大,但相對于所需要的存儲總量而言,其輸入和輸出水平比較低。“這些東西在運轉中的磁盤上也能運行得很好。”考德里說道。“有些東西在固態存儲系統上也能很好的運行,每TB的I/O操作水平很高。”
完整配置的“開放式機架”
下一代技術
對于Facebook將其解構后的服務器重新裝配起來的方法來說,以太網是基礎,而網絡則是一個很重要的組成部分,這正是Facebook想要利用開放計算項目去推進的發展方向。“這確實是構建開放的、非鎖定式機架的基本要素。”考德里說道。“從主機接口出發,一路到機架頂部。對我們來說,同樣的解構原則適用于所有層面。這是件大事——對我們而言,解構是件大事。我們認為,隨著我們的解構,高速機架內構造的需求將以指數級的速度增長。”
開放計算項目的開放式網絡相關計劃以納賈姆·艾哈邁德(Najam Ahmad)領導下的Facebook網絡工程團隊為主導,主要目標是為一個開源的、操作系統不可知的網絡交換機創造一種規格。你可能會認為,想讓網絡公司放棄垂直鎖定式機架的想法會遭遇一些阻力,但考德里表示,Facebook的想法很受這些公司的歡迎。到目前為止,博通、英特爾、虛擬化解決方案提供商VMware、虛擬企業網平臺開發商Big Switch Networks、創業企業Cumulus Networks、可編程芯片供應商Netronome和開源“軟件定義網絡”(SDN)項目OpenDayLight都已經簽約參加了開放計算項目。
在6月19日,艾哈邁德和Facebook基礎設施工程副總裁杰·帕里克(Jay Parikh)宣布了Facebook準備如何使用來自開放計算項目的網絡交換機的計劃。Facebook的網絡團隊以每秒鐘10Gb的以太網為基礎創造了一個Fabric網絡架構。來自開放計算項目的網絡交換機的開放性將允許Facebook把交換機變成整體架構的部件。
“我們將有不同規格的交換機。”艾哈邁德在美國科技新聞網站GigaOm舉辦的結構大會上說道。“我們最開始開發的交換機適用于非常簡單的、基本的、機架上方的環境,但隨后會有Fabric交換機和骨干交換機。操作系統將允許我們擁有更好的可編程性和配置管理以及類似的東西,因此我們能利用來自Linux世界中軟件方面的很多知識基礎和專門技術。”
帕里克解釋道,Facebook的網絡需求超過了許多企業網絡的要求。“我們從機器到機器的流量遠遠超過從機器到用戶的流量。”他說道。“我認為,兩者之間的比率大約為1000:1,也就是說,數據中心之間的流量要比從機器到用戶的流量高1000倍。對于我們應用的實時性本質來說,這種龐大的流量是非常必要的。”
Facebook正在關注下一步的技術;對于這種技術來說,銅線電纜已經不再足夠。“雖然10Gb對今天的我們來說已經相當足夠,但我們認為在未來幾年時間里,我們將需要40Gb或是100Gb的技術。”考德里說道。“就目前而言,銅線電纜還能夠滿足我們的需求;但我們認為,在未來幾年時間里,銅線電纜就無法再滿足我們的需求了。”
通向解構服務器的道路之一可能是硅光子學技術,這是一門研究光子的產生和運動特性、光子同物質的相互作用及其應用的前沿學科,允許每秒鐘100Gb的傳輸速度,英特爾和IBM都在開發這種新技術。“我們正在關注很多光學互連技術。”考德里說道。“我們正在關注英特爾的硅光子學研發工作,這是開放計算項目的一部分內容。”
但是,Facebook也并未將其他選擇都排除在外,這家公司正在尋找既能簡單執行又具有開放性的方法,考德里說道,這種方法不會是“秘傳的或是專有,以至于讓我們不得不承擔較高的成本”。他進一步指出:“因此,我們正在尋找那種商品化的高速互連產品,無論是光纖的還是銅線電纜的。”
病毒式傳播
“開源計算項目硬件黑客馬拉松”及其他賽事已經為Facebook的開放式硬件計劃營造了DIY的氛圍,這些賽事正在帶來很多成果(例如能用于汽車的數據實時監控硬件),這些成果不一定都與數據中心有關。正如Raspberry Pi黑客和Arduino黑客正在向DIY硬件開發者工具提供出人意料的創新產品那樣,出自開放計算項目的開放式設計和界面也能被用于各個領域,更不必說這些賽事經常都會帶來商品化的硬件部件了。
當我問及考德里Facebook的硬件計劃除了數據中心以外還將覆蓋哪些領域時,他并未猶豫。“我們所遵循的原則——開發高效而毫無浮夸的硬件——將適用于任何地方。”
但考德里同時補充道,通過開放計算項目設計并由Facebook開發的硬件在生產時并未考慮到這一點。“目前而言,我們一直都把重點放在數據中心計算的問題上,我的團隊還沒有考慮到數據中心以外的應用問題。這種硬件是專門為數據中心環境而設計的,目的就是為了解決與數據中心有關的問題。開發一種適用于所有領域的硬件是要冒些風險的。如果你想要設計一種能在辦公室、小型公共汽車和數據中心里都能運行的硬件,那么通常情況下都必須就很多事情作出妥協。”
這并不意味著為數據中心設計的產品不會被用于其他用途。舉例來說,節能性、低成本以及開放式界面對于主板的其他應用來說也是很重要的。當然,你還沒有辦法從新蛋網(NewEgg)上隨意購買到“Windmill”主板。但在不久以后,你或許就會發現,與Facebook數據中心相比,基于開放計算項目設計的產品離你更近一些。