Facebook的數據中心每天要收到多達數十億次的用戶請求;隨著這家公司不斷添加成員,推出新的功能特性,請求數量在不斷增加。這一切對Facebook來說基本上是好事,可是對Facebook的網絡工作人員來說卻是個挑戰。比如說,五個月前還能滿足要求的數據中心拓撲結構現在已不堪重負了。
所以除了構建大型數據中心(比如位于衣阿華州阿爾圖納的這個數據中心)外,Facebook的工程師們還在不斷優化數據中心的網絡設計。話雖如此,用調整和改動來形容工程師們提出并在阿爾圖納數據中心落實的的設想想法可能并不恰當,更像是他們重新編寫了網絡設計指南。
舊的Facebook網絡
在阿爾圖納數據中心興建之前,Facebook的工程師們將數據中心的服務器機架排列成集群,類似圖A中所示的架構。在實際環境中,Facebook不是只有三個機架,而是會有數百個機架。另外該圖還顯示了每個機架的架頂式(TOR)交換機,架頂式交換機在服務器和上游聚合交換機之間充當中介。
圖A:架頂式(TOR)――網絡連接架構
這種架構很管用,但是卻給Facebook的工程師們出了幾道難題。Facebook的網絡工程師Alexey Andreyev解釋:“首先,集群的大小受到集群交換機端口密度的限制。想建造最龐大的集群,我們就需要最龐大的網絡設備,而那種設備只有一批數量有限的廠商才有售。另外,一個設備中需要這么多的端口與提供帶寬最高的基礎設施這種愿望相悖。更為困難的是,如何在集群大小、機架帶寬和集群外面的帶寬之間保持長期的最佳平衡。”
Fabric:新的網絡拓撲結構
工程師們將每天那些數十億次請求視作一種激勵,決定擯棄復雜的、很耗帶寬的自上而下的網絡層次體系,改而換成一種新的設計,名為Fabric。圖B中的幻燈片描述了新的服務器機架集群,名為pod。單單一個pod包括48個機架和架頂式交換機,架頂式交換機相互連成四只fabric交換機。“每只架頂式交換目前有4條40G上行鏈路,為用10G連接的服務器機架提供了總共160G的帶寬容量。”
圖B
這種設計方法具有下列優點:
易于部署擁有48個節點的pod
可擴展性得到了簡化,而且沒有限制
每個pod都一模一樣,都使用同樣的連接
下一步是連接所有fabric交換機――圖C中的幻燈片描述了這項任務是如何完成的。Andreyev表示,這個比較簡單(難以想象它曾經是什么樣子)。
圖C
Andreyev解釋,Facebook的工程師們在增添主干交換機時恪守48個節點這一原則。“為了實施覆蓋整個大樓的連接,我們建立了主干交換機組成的四個獨立‘平面’,每個平面里面最多可以擴展到48個獨立設備。每個pod的每只fabric交換機都連接到本地平面里面的每只主干交換機。”
Andreyev接下來提到的數字大得驚人。“pod和平面共同組成了一個模塊化網絡拓撲結構,它能夠容納數十萬臺用10G連接的服務器,可擴展到數千萬億位的等分帶寬,為我們的數據中心大樓提供非超額訂購的機架到機架性能。”
網絡運營
從架頂式交換機到網絡的邊緣,Fabric網絡設計統一使用“第3層”技術,支持IPv4和IPv6,并且使用等成本多路徑(ECMP)路由。Andreyev補充說:“為了防止偶爾出現的‘長流’(elephant traffic)大量占用帶寬,導致端到端路徑性能下降,我們讓網絡具有多種速度――所有交換機之間使用40G鏈路,同時通過架頂式交換機上的10G端口來連接服務器。我們還有服務器端機制,以便萬一出現問題,可以繞過故障處。”
物理布局
Andreyev寫道,圖D中所示的新大樓布局與Facebook之前的設計區別不是很大。一個區別是,將Fabric新的主干交換機和邊緣交換機放置在數據大廳X和數據大廳Y之間的第一層,并讓通向外界的網絡連接(最小入口點,即MPOE)跨越主干交換機和邊緣交換機時代。
圖D
克服挑戰