數十年來,傳統的核心/匯聚/接入網絡架構一直是企業數據中心的主流架構,而當計算和存儲變得越來越靈活、動態、可以“軟件定義”之時,數據中心網絡卻一直在抗拒改變,因而也成了數據中心自動化和彈性擴展的瓶頸。
重新思考數據中心網絡
那么,數據中心網絡如何才能像計算與存儲那樣,具備靈活自適性呢?Big Switch的共同創始人Kyle Farster和Facebook的網絡工程師Petr Lapukhov一致主張,數據中心網絡的運營者們應該尋求一種內核艙式(core and pod)設計,可以讓超大規模數據中心從小起步,逐步試驗,逐步適應日益變化的網絡需求,而不必全盤放棄現有的網絡基礎設施。
20年來,3層的網絡設計一直在做優化,唯獨創新不屬于它。
將近20年來,大多數網絡專家們所學的最主要的數據中心設計就是3層架構:核心(L3)、匯聚(L2/L3)和接入(L2)。而且這種基本設計取得了巨大的成功,可以輕松且低成本地構建出可靠而且可擴展的網絡,但是這樣的優勢正在面臨著新一代數據中心網絡需求的巨大挑戰。
3層的網絡設計構想,當時是因為L3的路由器與L2的交換機之間存在著明顯的價格差,而網絡流量又主要是南北向而非東西向的,且核心以及匯聚層的速度也要比邊緣的速度快上至少10倍。但是現在,這些考慮因素全都不存在了。
更糟的是,3層設計在支持今日數據中心的業務創新方面全面潰敗。而且3層設計中的一些小模塊嚴重固化,想要對其進行快速升級迭代或者創新實驗幾乎是不可能的,要想提升其性價比也幾乎毫無希望。從實際情形上看,3層設計是將網絡鎖定在了一個“最小公分母”的功能集合中,鎖定在了單一廠商、產品換代緩慢的困境中。
如今,數據中心網絡的設計已經走到了一個新的節點上。業界人士也都不斷地在聽說一些超大規模數據中心的運營者們在構建自己的創新網絡。這些數據中心盡管規模龐大,但是其網絡設計卻可以允許你從小起步,快速地進行創新。
這種內核艙式創新的主要觀點是:超大規模數據中心沒必要一天就建成,而是可以添磚加瓦式的有機成長,每次只前進一小步即可。
從小起步的內核艙式創新
所謂內核艙式創新就是利用多個懸掛在路由核心層上、每個都單獨設計的“艙”(內部結構不必相同)。路由核心可串起很多多次迭代的艙,并為其提供快速且簡單的內部連接,將每個艙視為一個原子單元。而在每個艙內,可以只有單一的接入層,或者更常見的“葉片加脊柱”式網絡。如果在一個艙內使用了“葉片加脊柱”拓撲,那么核心層往往會被稱為“脊柱的脊柱”,整個網絡就代表一棵“胖樹”或“層疊式(Clos)”拓撲。
為了匹配新增的需求,新的艙可以在設計、工程、安裝和摘除上都只作為一個單元或網元來對待。在一個數據中心里,可以有不同迭代的艙,例如v1、v2和v3代的筴可以同時共存,都懸掛在共享的核心上。在很多迭代方法中,每個艙的設計都在前一代的基礎上升級——比如說可以在性價比曲線上的一些更好的點上構建較新的硬件平臺。
內核艙設計的好處是網絡、計算和存儲都可以自行迭代,然后組合成一個單元,這樣在運營和自動化上就非常簡單了。這種方法可適應數據中心內的設計多樣性,保證每個單元在艙的邊界內是完全一致的。盡管使用各種不同的艙可能會傷害到整體網絡的一致性,但卻增加了小步試驗、迭代成長的靈活性,同時又有足夠的一致性可進行統一管理。
當然,這種方法也存在短板,那就是增加了操作的復雜性,它要求員工具備多種設計知識,可能還要用到各種不同的工具來管理和操作迭代層級不一樣的多個單元。但無論如何,如果想要維護一個簡單且統一的艙結構,對大多數任務進行自動化也顯然要比對蔓延整個數據中心的傳統3層網絡進行自動化容易得多。
內核艙式設計也不會遭遇“最小公分母”或“單一廠商鎖定”等3層架構所固有的問題。因為每個單獨的艙在合理的范圍內都可以是一個新的開始。
網絡設計適應變化
內核艙式設計最早由一些超大規模數據中心的架構師們所采用,作為一種橫向擴展的方法,而與之前所采用的昂貴的經典樹拓撲縱向擴展模型相對立。傳統的核心/匯聚/邊緣設計一般需要在擴容時替換/重新設計/重建所有的3層架構(這在大多數企業的數據中心建設中是一種常態)。而采用內核艙式設計,你只須給核心增加新的艙便可擴容,也可以更新最新的艙設計(無須更改整個數據中心設計)而適應新的需求。
設想一個應用需要在接入交換機上有雙倍的上行鏈路。在傳統的3層設計中,一旦所需端口密度超過了設備的容量,唯一的選擇就只能是在整個數據中心范圍內重新設計更大、更高密度的盒子用于匯聚。而在內核艙式設計中,只須將一個新一代的艙集成進來便可,不會影響到數據中心的整體設計。
持續的創新不可避免地要求軟件不斷更新。那么內核艙式設計的一個重大優勢就是能夠讓升級變得非常簡單。所有的艙都可以獨立升級,因為Clos或胖樹網絡的設計是在整個層上采用N+1冗余(最常見的是3+1),因此升級的操作風險很低。而傳統的1+1三層設計,大多數升級都是高風險的或繁重不堪的。
對業界而言,已經有一些用例展示了這一革命性的和模塊化的數據中心設計方法,可以查看微軟或eBay的艙部署(一般是以術語“容器”展現的)。
內核艙式思維模式
我們看到,在網絡設計上領風氣之先(例如采用SDN軟件和裸金屬硬件)的一批數據中心架構師們已經開始擁抱內核艙式設計了。他們不會再整個數據中心內采用SDN,但卻會在某一代的艙設計中用到。他們可通過一個集中控制器獲得自動化,不再需要打包的“最小公分母”設計,且可以更容易從小起步,逐步試用,最終適應未來的各種業務需求。
頗具諷刺意味的是,很多企業架構師在描述其數據中心時,首先都會說到3層設計,但在細節上卻各有不同。對于很多數據中心架構師來說,向內核艙式設計的轉變更多的是在心智上而非現有網絡上的。
當數據中心的架構師們認可了這種新的思維模式時,就會有更多的數據中心網絡(無論其規模如何)從小處起步。數據中心網絡設計一直是一門需要在諸多優先項之間進行權衡的學問,如果能在優先項列表中出現內核艙式設計,并由此而實現“創新”,那將是一個重大的利好消息。