SDN應(yīng)對數(shù)據(jù)中心互聯(lián)網(wǎng)絡(luò)的挑戰(zhàn)
騰訊的網(wǎng)絡(luò)架構(gòu)伴隨了騰訊15年的發(fā)展,幾乎承載了全部互聯(lián)網(wǎng)業(yè)務(wù)產(chǎn)品,包括即時(shí)通信(QQ/微信)、SNS(QZONE)、網(wǎng)絡(luò)媒體(騰訊網(wǎng)/微博)和游戲(QQGAME)等,為了給廣大互聯(lián)網(wǎng)用戶提供更好的接入體驗(yàn),數(shù)十萬服務(wù)器分布在全球10多個(gè)城市、數(shù)十個(gè)數(shù)據(jù)中心,產(chǎn)生的跨城數(shù)據(jù)中心間流量達(dá)到數(shù)百G規(guī)模。在業(yè)務(wù)類型多樣及流量需求規(guī)模巨大的情況下,騰訊數(shù)據(jù)中心間網(wǎng)絡(luò)主要存在如下挑戰(zhàn):
首先,從響應(yīng)業(yè)務(wù)的角度來看,數(shù)據(jù)中心間網(wǎng)絡(luò)鏈路帶寬資源有限,難以滿足業(yè)務(wù)臨時(shí)性的大容量傳輸需求,通常需要業(yè)務(wù)部門自行搭建VPN平臺并通過公網(wǎng)傳輸;對重點(diǎn)業(yè)務(wù)流量的QoS保障也需要較長時(shí)間的擴(kuò)容來滿足,業(yè)務(wù)部門通常抱怨基礎(chǔ)架構(gòu)側(cè)行動(dòng)緩慢、缺乏靈活性、響應(yīng)速度慢。
其次,從鏈路利用率角度分析,為確保DCI(Data Center Interconnect,數(shù)據(jù)中心互聯(lián))專線的可靠性需要對其進(jìn)行1:1備份,所以正常情況下網(wǎng)絡(luò)鏈路利用率低于50%。昂貴的DCI專線帶寬浪費(fèi)過半,而業(yè)務(wù)部門又苦于DCI專線帶寬不夠,如何提高DCI鏈路利用率成為一個(gè)難題。
第三,從網(wǎng)絡(luò)管理的角度分析,在大型骨干網(wǎng)中,由于地理分布較廣和業(yè)務(wù)類型眾多等原因,一個(gè)管理域中設(shè)備數(shù)量往往接近1000臺,完全通過人工方式來管理如此大型的分布式網(wǎng)絡(luò)系統(tǒng),需要一個(gè)非常復(fù)雜的管理體系和風(fēng)險(xiǎn)控制流程。而且,未來網(wǎng)絡(luò)規(guī)模還會持續(xù)不斷地增加,完全通過傳統(tǒng)方式進(jìn)行管理將是不可想象的;同時(shí),業(yè)務(wù)模式的多樣性還意味著需要為不同的業(yè)務(wù)類型提供差異化服務(wù),也就是說,在管理一個(gè)規(guī)模達(dá)1000臺設(shè)備的網(wǎng)絡(luò)的同時(shí),還要求在每臺設(shè)備上為不同類型的業(yè)務(wù)提供實(shí)時(shí)變化的差異化服務(wù),其復(fù)雜程度可想而知。
SDN(Software Defined Networking,軟件定義網(wǎng)絡(luò))將網(wǎng)絡(luò)配置從單臺設(shè)備遷移到軟件平臺,設(shè)備本身變得更加簡單。網(wǎng)絡(luò)配置由中央控制器管理,控制器是一個(gè)包含算法、分析和規(guī)則的軟件,它來自一組規(guī)則,并使用OpenFlow或其它協(xié)議將配置下發(fā)到網(wǎng)絡(luò)設(shè)備。SDN允許網(wǎng)絡(luò)工程師更為靈活地控制和管理網(wǎng)絡(luò),以便最好地服務(wù)需求,從而達(dá)到增加功能和降低運(yùn)營成本的目的。
為了更好地滿足業(yè)務(wù)的帶寬需求、提升專線利用率以及降低運(yùn)營復(fù)雜度,騰訊逐步實(shí)踐了數(shù)據(jù)中心間網(wǎng)絡(luò)SDN解決方案。為此我們提出了一個(gè)全新的概念——“Network as a Router”,它假設(shè)整個(gè)網(wǎng)絡(luò)只有一臺路由器,所有的功能和配置都在其中實(shí)現(xiàn)。試想一下,管理這樣的網(wǎng)絡(luò)將會是一件多么輕松愉悅的事情,不僅如此,通過這臺路由器提供的標(biāo)準(zhǔn)API,甚至可以讓每個(gè)用戶來自己管理其在網(wǎng)絡(luò)上使用的資源。那么,騰訊是如何將數(shù)據(jù)中心間網(wǎng)絡(luò)從傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)演變?yōu)?ldquo;Network as a Router”?又是怎樣在SDN解決方案下實(shí)現(xiàn)智能的流量調(diào)度、網(wǎng)絡(luò)管理的?
分階段逐步演進(jìn)的解決思路
規(guī)劃和構(gòu)建一個(gè)網(wǎng)絡(luò)就好比建設(shè)一座城市,俗話說“羅馬不是一天建成的”,網(wǎng)絡(luò)架構(gòu)的改變也是一項(xiàng)長期而重大的工程,需要在一個(gè)總體的藍(lán)圖下分階段逐步演進(jìn)。
道路建設(shè)
任何一座智能城市,都需要建立在穩(wěn)固的基礎(chǔ)設(shè)施架構(gòu)之上,沒有好的公路便談不上城市的智能。網(wǎng)絡(luò)也是一樣,任何智能網(wǎng)絡(luò)都是建立在穩(wěn)定、可靠的基礎(chǔ)設(shè)施之上的。
在數(shù)據(jù)中心間網(wǎng)絡(luò)上,需要選擇穩(wěn)定、可靠的網(wǎng)絡(luò)設(shè)備和主備鏈路,選擇設(shè)備節(jié)點(diǎn)的異地備份,選擇具備良好擴(kuò)展性的路由協(xié)議。物理硬件設(shè)施的基礎(chǔ)特性跟傳統(tǒng)的網(wǎng)絡(luò)理念是一致的。
BRT工程
當(dāng)一個(gè)城市把公路修好之后是否就可以高枕無憂?答案是否定的,隨著城市車輛的增多、人口的增長,再寬敞的馬路也會逐步產(chǎn)生擁堵,特別是在交通高峰期更會發(fā)生大面積擁堵,為了解決這一問題,國內(nèi)各大城市開始建設(shè)BRT(Bus Rapid Transit,快速公交系統(tǒng))工程,通過公交車專用車道,提前預(yù)留專用道路給公交車,讓優(yōu)先級別更高的公交車可以暢通無阻地通行。
在網(wǎng)絡(luò)上也需要相應(yīng)的技術(shù)手段預(yù)留帶寬,讓專用的流量在專用的帶寬上轉(zhuǎn)發(fā),例如MPLS-TE,不同優(yōu)先級別的TE,可以為不同類型的業(yè)務(wù)保障、承諾不同等級的服務(wù)。
智能交通
現(xiàn)在,駕車者為了更快地到達(dá)目的地,通常會選擇導(dǎo)航工具來提供所有道路的交通信息,通常導(dǎo)航工具推薦的路徑可能不是物理距離最短的,但卻是交通最暢通、花費(fèi)時(shí)間最短的路徑,這里體現(xiàn)了道路交通的一部分智能化。
在網(wǎng)絡(luò)上也可以實(shí)現(xiàn)類似的功能,和過去不同的是,現(xiàn)在我們可以把全網(wǎng)的所有鏈路和設(shè)備都看作一個(gè)資源池,從A點(diǎn)到B點(diǎn),使用者不需要知道直連的物理鏈路有多少,只需能夠調(diào)配資源池里面的所有資源即可,因?yàn)閺腁到B不僅僅只有A→B直連的路徑,也有可能是A→C→B或者A→D→B。到底使用哪個(gè)路徑到達(dá)目的地,使用者也許不必關(guān)心。
如何把不同的流量放到不同的路徑上,從而避免網(wǎng)絡(luò)發(fā)生擁塞的情況,這就完全依賴于網(wǎng)絡(luò)控制器了(Network Controller)。Controller不僅僅能看到某條物理專線的帶寬,還能看到整個(gè)資源池,對池中的資源進(jìn)行總體調(diào)度,它可以判斷哪里有網(wǎng)絡(luò)帶寬,甚至與業(yè)務(wù)應(yīng)用的計(jì)算聯(lián)動(dòng),根據(jù)網(wǎng)絡(luò)資源情況將計(jì)算放到有資源的節(jié)點(diǎn)進(jìn)行處理。
網(wǎng)絡(luò)控制器擁有面對用戶的接口,能夠獲取網(wǎng)管工具傳遞的信息,并通過用戶信息和網(wǎng)管信息等有效控制網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)資源。它可以根據(jù)實(shí)時(shí)需求將不同的flow在不同的路徑上進(jìn)行添加、刪除、修改等操作,讓全網(wǎng)資源得到合理的共享。這就相當(dāng)于將全網(wǎng)看作一臺路由器,只需要維護(hù)和管理控制器就可以管理整個(gè)網(wǎng)絡(luò),從而實(shí)現(xiàn)“Network as a Router”的目標(biāo)。
智能調(diào)度網(wǎng)絡(luò)的技術(shù)實(shí)現(xiàn)
騰訊的下一代數(shù)據(jù)中心間網(wǎng)絡(luò)將會實(shí)現(xiàn)資源自動(dòng)池化、業(yè)務(wù)應(yīng)用自動(dòng)化管理網(wǎng)絡(luò)資源、業(yè)務(wù)應(yīng)用自動(dòng)感知網(wǎng)絡(luò)資源等特征。業(yè)務(wù)系統(tǒng)直接通過網(wǎng)絡(luò)系統(tǒng)提供的北向API接口實(shí)現(xiàn)自動(dòng)申請、使用和釋放網(wǎng)絡(luò)資源,利用集中式調(diào)度系統(tǒng)自動(dòng)完成網(wǎng)絡(luò)資源合理分配和使用。為了實(shí)現(xiàn)以上智能調(diào)度工作,PCEP(Path Computation Element Protocol)協(xié)議給了控制器和路由器一個(gè)非常好的交互接口。
傳統(tǒng)網(wǎng)絡(luò)設(shè)備的工作角色
在未來的網(wǎng)絡(luò)世界,報(bào)文的轉(zhuǎn)發(fā)路徑不能再由每個(gè)獨(dú)立的路由器決定。原因很簡單,因?yàn)榫W(wǎng)絡(luò)中每個(gè)獨(dú)立的路由器就像城市中的汽車一樣,只知道自己怎樣走,不會去考慮會不會給整個(gè)城市帶來交通擁堵。
因此,未來數(shù)據(jù)中心間網(wǎng)絡(luò)中的路由器的角色將會發(fā)生變化,由原來的計(jì)算路徑、轉(zhuǎn)發(fā)報(bào)文兩個(gè)功能減少為只有轉(zhuǎn)發(fā)報(bào)文的能力,而路徑計(jì)算將會交給集中式智能管理系統(tǒng)統(tǒng)一計(jì)算和調(diào)度。在PCEP協(xié)議中,傳統(tǒng)路由器將擔(dān)當(dāng)PCC(Path Computation Client)角色,在整套控制系統(tǒng)中成為控制系統(tǒng)的Client端。
集中控制系統(tǒng)的工作角色
集中控制系統(tǒng)就像一個(gè)交通樞紐中心,它知道每一條道路的容量、當(dāng)前流量以及路上每一輛汽車將要到達(dá)的目的地。利用這些信息,它可以通過智能算法為每一個(gè)業(yè)務(wù)flow計(jì)算出最合適的路徑。所以集中控制器就成為了PCEP協(xié)議中的Server端。但在整個(gè)控制系統(tǒng)中,核心部分是控制系統(tǒng)的邏輯算法,而不是PCEP協(xié)議,PCEP協(xié)議只是為傳統(tǒng)網(wǎng)絡(luò)設(shè)備提供了北向接口,為控制器提供了南向接口。
為什么說控制系統(tǒng)中最重要的是邏輯算法呢?因?yàn)椴煌木W(wǎng)絡(luò)、業(yè)務(wù)系統(tǒng)和業(yè)務(wù)類型對網(wǎng)絡(luò)資源有不同的要求,在傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中,只能按照統(tǒng)一的硬件網(wǎng)絡(luò)設(shè)備設(shè)計(jì)好的路徑轉(zhuǎn)發(fā),而不能靈活地為不同的業(yè)務(wù)類型提供不同的選路方案。
在傳統(tǒng)網(wǎng)絡(luò)中,硬件設(shè)備提供商或者IETF協(xié)議已經(jīng)把規(guī)則固化在硬件設(shè)備中,允許用戶調(diào)整的空間很小,作為用戶只能按照固化的規(guī)則進(jìn)行業(yè)務(wù)的部署。那么這是否是我們想要的呢?從眾多的實(shí)際業(yè)務(wù)部署場景中可以看到,很多時(shí)候網(wǎng)絡(luò)的路徑選擇并不是最貼合業(yè)務(wù)需求的,這些方案的選擇應(yīng)該交給網(wǎng)絡(luò)的使用者來決定,甚至應(yīng)該交由上層的業(yè)務(wù)應(yīng)用層進(jìn)行選擇。作為網(wǎng)絡(luò)的使用者,應(yīng)當(dāng)能更多地控制路徑選擇的邏輯算法,甚至可以為每種不同類型的業(yè)務(wù)應(yīng)用提供不同的網(wǎng)絡(luò)選路算法。
業(yè)務(wù)應(yīng)用系統(tǒng)的工作角色
上面所說的網(wǎng)絡(luò)控制系統(tǒng)是為業(yè)務(wù)應(yīng)用系統(tǒng)提供服務(wù)的,業(yè)務(wù)應(yīng)用系統(tǒng)通過調(diào)用網(wǎng)絡(luò)控制系統(tǒng)提供的北向API接口來申請、使用、釋放網(wǎng)絡(luò)資源,通過API接口通知網(wǎng)絡(luò)控制系統(tǒng)業(yè)務(wù)的真實(shí)需求(包括需求帶寬、延時(shí)、使用時(shí)長等信息)。
向更簡單、更智能方向發(fā)展
為了不斷提高廣大互聯(lián)網(wǎng)用戶的使用體驗(yàn),滿足不斷發(fā)展的業(yè)務(wù)需求,我們正在嘗試?yán)肧DN的思路研究下一代數(shù)據(jù)中心互聯(lián)網(wǎng)絡(luò)。
在過去階段,騰訊按照業(yè)務(wù)帶寬需求構(gòu)建了一個(gè)高速、穩(wěn)定、可靠的數(shù)據(jù)中心間網(wǎng)絡(luò),并且全面承載騰訊所有類型的業(yè)務(wù),實(shí)現(xiàn)了網(wǎng)絡(luò)資源的靈活共享。在現(xiàn)階段,我們正在進(jìn)行BRT工程的建設(shè),使用SDN的初級理念實(shí)現(xiàn)QoS的集中管理和控制,使用MPLS-TE提供業(yè)務(wù)差異化服務(wù)能力,為業(yè)務(wù)的快速部署提供了堅(jiān)實(shí)基礎(chǔ)。在未來階段,我們將進(jìn)一步引入SDN理念,采用Controller控制全網(wǎng)flow的轉(zhuǎn)發(fā),讓特定的flow轉(zhuǎn)發(fā)到特定的路徑上。實(shí)現(xiàn)集中控制的智能調(diào)度網(wǎng)絡(luò),簡化網(wǎng)絡(luò)管理。
可以預(yù)計(jì)的是,基于SDN理念的網(wǎng)絡(luò)正向著更簡單、更智能化的方向發(fā)展,未來將會衍生出一系列相對于現(xiàn)有路由協(xié)議更輕量級、更易于管理的協(xié)議。千里之行,始于足下,今天我們研究SDN,應(yīng)該著眼于如何協(xié)調(diào)網(wǎng)絡(luò)的能力,增加網(wǎng)絡(luò)的可視化,提升網(wǎng)絡(luò)的差異化服務(wù),從而為今后提供更智能、更便捷的服務(wù)夯實(shí)基礎(chǔ)。
今天,我們探討了數(shù)據(jù)中心間網(wǎng)絡(luò)流量調(diào)度的思路,通過這個(gè)思路可以解決我們長期以來DCI流量模型的困惑,指導(dǎo)我們未來DCI流量調(diào)度的發(fā)展方向。但是否所有問題都解決了呢?在大型網(wǎng)絡(luò)中,大量的路由條目、運(yùn)行了20多年的BGP協(xié)議、每個(gè)AS各自管理自己的路由條目接收發(fā)送、由于某些運(yùn)營商的不正確操作經(jīng)常導(dǎo)致大規(guī)模故障事件……這種運(yùn)營了20多年的互聯(lián)網(wǎng)協(xié)議和模式是否還適合今天的運(yùn)營環(huán)境?這應(yīng)該引起大家更多的思考。