對(duì)于傳統(tǒng)的數(shù)據(jù)中心來(lái)說(shuō),南北向流量可以占據(jù)到80%。但是IT基礎(chǔ)架構(gòu)進(jìn)入云計(jì)算時(shí)代后,傳統(tǒng)數(shù)據(jù)中心開(kāi)始向云數(shù)據(jù)中心轉(zhuǎn)型。IT應(yīng)用架構(gòu)方面,企業(yè)應(yīng)用逐步從單體架構(gòu)完成了向“Web-App-DB”架構(gòu)的轉(zhuǎn)型,分布式技術(shù)在谷歌公開(kāi)“三駕馬車”后開(kāi)始盛行。從網(wǎng)絡(luò)的視角來(lái)看,原來(lái)很多在服務(wù)器中內(nèi)部消化的流量都跑到了網(wǎng)絡(luò)上,再加上虛擬機(jī)遷移、業(yè)務(wù)備份等流量的增長(zhǎng),東西向流量開(kāi)始取代南北向流量,在數(shù)據(jù)中心占據(jù)主導(dǎo)地位,比例可達(dá)70%以上。
流量模型的轉(zhuǎn)變對(duì)于數(shù)據(jù)中心的網(wǎng)絡(luò)架構(gòu)提出了全新的要求。
傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)3-Tier的網(wǎng)絡(luò)架構(gòu)起源于園區(qū)網(wǎng),傳統(tǒng)數(shù)據(jù)中心,包括企業(yè)數(shù)據(jù)中心EDC和互聯(lián)網(wǎng)數(shù)據(jù)中心IDC的網(wǎng)絡(luò)將其沿用了下來(lái)。如下圖所示,3-Tier架構(gòu)將網(wǎng)絡(luò)分為接入(access)、匯聚(aggregation)和核心(core)三層。
Access Layer(接入層):接入層位與網(wǎng)絡(luò)的最底層,負(fù)責(zé)所有終端設(shè)備的接入工作,并確保各終端設(shè)備可以通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)包的傳遞。
Aggregation Layer(匯聚層):匯聚層位于接入層和核心層之間。該層可以通過(guò)實(shí)現(xiàn)ACL等其他過(guò)濾器來(lái)提供區(qū)域的定義。
Core Layer(核心層):又被稱為網(wǎng)絡(luò)的骨干。該層的網(wǎng)絡(luò)設(shè)備為所有的數(shù)據(jù)包包提供高速轉(zhuǎn)發(fā),通過(guò)L3路由網(wǎng)絡(luò)將各個(gè)區(qū)域進(jìn)行連接,保證各區(qū)域內(nèi)部終端設(shè)備的路由可達(dá)。

傳統(tǒng)網(wǎng)絡(luò)架構(gòu)雖然穩(wěn)定,但隨著技術(shù)的不斷發(fā)展,應(yīng)用不斷的多元化以及對(duì)業(yè)務(wù)的高冗余化的需求,暴露出了一些傳統(tǒng)網(wǎng)絡(luò)的弊端。主要包括:
1)業(yè)務(wù)流量模型不清晰
隨著網(wǎng)絡(luò)的發(fā)展、各種新技術(shù)的產(chǎn)生,數(shù)據(jù)中心內(nèi)部、服務(wù)器之間協(xié)同處理、計(jì)算,導(dǎo)致由東向西的流量逐漸增大,超過(guò)了由南向北的流量。而傳統(tǒng)三層架構(gòu)服務(wù)器間交換,都要過(guò)三層核心,多層轉(zhuǎn)發(fā),增大了網(wǎng)絡(luò)的延遲,還浪費(fèi)了核心寶貴的資源。與此同時(shí),如果將業(yè)務(wù)拆分成多個(gè)模塊,并部署在不同的區(qū)域中,由于應(yīng)用的不斷發(fā)展,模塊的數(shù)量越來(lái)越多,模塊之間的調(diào)用越來(lái)越頻繁,可能一次完整的應(yīng)用流程需要經(jīng)歷數(shù)十個(gè)模塊,模塊之間的頻繁調(diào)用大大消耗了網(wǎng)絡(luò)設(shè)備的資源。
2)橫向擴(kuò)展能力不足
傳統(tǒng)數(shù)據(jù)中心使用STP技術(shù),雖然上聯(lián)多根鏈路,但都是主備關(guān)系,僅有一根鏈路能跑流量,無(wú)法承載數(shù)據(jù)中心日益增長(zhǎng)的業(yè)務(wù)。盡管后續(xù)使用了有相關(guān)的Ethernet Channel、堆疊、VSS等技術(shù),來(lái)滿足鏈路冗余的需求,但是堆疊、Ethernet Channel不可能無(wú)限地進(jìn)行擴(kuò)展。
3)廣播域過(guò)于龐大
隨著業(yè)務(wù)的發(fā)展,計(jì)算資源被池化。為了使得計(jì)算資源可以任意分配,需要一個(gè)巨大的二層網(wǎng)絡(luò)架構(gòu)。整個(gè)數(shù)據(jù)中心網(wǎng)絡(luò)都是多個(gè)L2廣播域,這樣,服務(wù)器可以在規(guī)定的區(qū)域地點(diǎn)創(chuàng)建、遷移,而不需要對(duì)IP地址或者默認(rèn)網(wǎng)關(guān)做修改。不斷地業(yè)務(wù)擴(kuò)展,造就了一個(gè)巨大的二層廣播域,一旦出現(xiàn)一點(diǎn)問(wèn)題就造成巨大的網(wǎng)絡(luò)問(wèn)題,導(dǎo)致業(yè)務(wù)中斷,業(yè)務(wù)的高可用性就無(wú)法保證。
4)資源無(wú)法快速上線
隨著業(yè)務(wù)的不斷發(fā)展,計(jì)算資源的虛擬化。當(dāng)需要進(jìn)行虛擬資源部署時(shí),嚴(yán)格安全防護(hù)的要求下,需要進(jìn)行安全設(shè)備的策略開(kāi)通。從部署到正式上線使用之間的耗時(shí)會(huì)長(zhǎng)達(dá)1小時(shí)之久。無(wú)法滿足在突發(fā)情況下,快速增加計(jì)算資源。
由于安全設(shè)備以及設(shè)備上聯(lián)位置的限制,無(wú)法在任意的計(jì)算資源池中隨意的創(chuàng)建、遷移;無(wú)法合理分配資源池的各種硬件資源,造成資源的分配不均衡。一旦某資源池已達(dá)閾值,就無(wú)法繼續(xù)計(jì)算資源的橫向擴(kuò)展。
5)網(wǎng)絡(luò)延時(shí)過(guò)大
在使用傳統(tǒng)網(wǎng)絡(luò)架構(gòu)時(shí),每個(gè)業(yè)務(wù)模塊都是一個(gè)煙囪結(jié)構(gòu),業(yè)務(wù)模塊互相調(diào)用需要經(jīng)過(guò)多個(gè)三層設(shè)備(平均需要經(jīng)過(guò)6次物理設(shè)備)其中還可能包括防火墻等安全設(shè)備。受限于設(shè)備的性能、網(wǎng)絡(luò)架構(gòu)的主備方案,數(shù)據(jù)流量每經(jīng)過(guò)一次設(shè)備都會(huì)增加一點(diǎn)延遲。雖然每一次延時(shí)都是微乎其微,但是累計(jì)次數(shù)多了,對(duì)于業(yè)務(wù)來(lái)說(shuō)這個(gè)延時(shí)可能就導(dǎo)致用戶體檢較差。
在大規(guī)模云計(jì)算平臺(tái)場(chǎng)景下,東西向流量的爆發(fā)意味著數(shù)據(jù)中心內(nèi)大部分的流量都將發(fā)生在服務(wù)器之間,在3-Tier網(wǎng)絡(luò)架構(gòu)中,這類流量的處理需要經(jīng)過(guò)層層的設(shè)備,導(dǎo)致流量的通信時(shí)延較長(zhǎng),而不同服務(wù)器間的通信路徑很有可能是不同的,從而又導(dǎo)致了時(shí)延的不可預(yù)測(cè)性,這兩個(gè)問(wèn)題對(duì)于數(shù)據(jù)中心的一些關(guān)鍵應(yīng)用(如大數(shù)據(jù))是不可接受的。
其次,隨著虛擬化得到普遍的應(yīng)用,物理的位置變得無(wú)關(guān)緊要,跨機(jī)架的流量在統(tǒng)計(jì)上的分布趨于更加均勻,3-Tier網(wǎng)絡(luò)中通常所采用的10∶1、6∶1這種大收斂比將使得跨機(jī)架流量在上聯(lián)口被大量地阻塞,降低網(wǎng)絡(luò)的通信效率。因此,傳統(tǒng)的3-Tier網(wǎng)絡(luò)架構(gòu)并不適合用于東西向流量的傳輸。并且,當(dāng)前100GE設(shè)備及布線成本都十分高昂,服務(wù)器采用10GE接入后,傳統(tǒng)結(jié)構(gòu)下,匯聚及核心層設(shè)備必須具備100GE的轉(zhuǎn)發(fā)能力才能保證盡量低的收斂比。
解決東西向流量的問(wèn)題,必須從3-Tier架構(gòu)本身入手進(jìn)行變革,數(shù)據(jù)中心網(wǎng)絡(luò)開(kāi)始向扁平化的、無(wú)阻塞的網(wǎng)絡(luò)架構(gòu)進(jìn)行演進(jìn)。針對(duì)于此,目前主流的設(shè)計(jì)是在數(shù)據(jù)中心中構(gòu)建Leaf-Spine的網(wǎng)絡(luò)架構(gòu)。相比于3-Tier, Leaf-Spine實(shí)現(xiàn)了層次的扁平化,Leaf負(fù)責(zé)所有的接入,Spine只負(fù)責(zé)在Leaf間進(jìn)行高速傳輸,網(wǎng)絡(luò)中任意兩個(gè)服務(wù)器都是Leaf-Spine-Leaf三跳可達(dá)的。Leaf和Spine間是Full-Mesh的,即兩個(gè)Leaf間可以通過(guò)任意一個(gè)Spine進(jìn)行中繼,Leaf可以將不同的流量分散到不同的Spine上進(jìn)行負(fù)載均衡,如果一個(gè)Spine掛掉了,那么原來(lái)經(jīng)過(guò)這個(gè)Spine轉(zhuǎn)發(fā)的流量可以迅速地切換到其他Spine上。Leaf和Spine均可以使用商品化交換機(jī),如果接入端口不夠用了就直接在Leaf層新接交換機(jī),如果Leaf間的帶寬不夠用了就直接在Spine層新接交換機(jī)。這不僅降低了系統(tǒng)的構(gòu)建成本,還極大地提高了網(wǎng)絡(luò)的可擴(kuò)展性。

做一個(gè)簡(jiǎn)單的圖形變換就可以發(fā)現(xiàn),Leaf-Spine就是對(duì)CLOS進(jìn)行了折疊(相當(dāng)于3-Stage CLOS),因此Leaf-Spine在結(jié)構(gòu)上是無(wú)阻塞的。在所有端口速率一致的情況下,如果能夠使用Leaf中一半的端口來(lái)上聯(lián)Spine,那么理論上就可以得到1∶1的收斂比。不過(guò)考慮到成本問(wèn)題,實(shí)際情況中能做到3∶1到2∶1之間,就可以近似地認(rèn)為能夠支撐無(wú)阻塞轉(zhuǎn)發(fā)了。
如果3-Stage的Leaf-Spine仍然無(wú)法滿足其網(wǎng)絡(luò)在擴(kuò)展性方面的需求,此時(shí)可采用5-Stage的Leaf-Spine結(jié)構(gòu),如下圖所示,每個(gè)POD都是一個(gè)3-Stage的Leaf-Spine,不同的POD通過(guò)Core交換機(jī)進(jìn)行互聯(lián),跨POD的流量都是Leaf-Spine-Core-Spine-Leaf五跳可達(dá),因此Core也可以看作Super Spine。Spine與Core間做Full-Mesh的連接,如果POD不夠用了就加POD,如果POD間帶寬不夠用了就加Core。目前,5-Stage的Leaf-Spine所能夠支持的端口數(shù),足以支持單數(shù)據(jù)中心對(duì)組網(wǎng)容量的需求,一般情況下3-Stage Leaf-Spine就足夠用了,只有一些超大規(guī)模的數(shù)據(jù)中心才會(huì)使用到5-Stage Leaf-Spine。
