在IT業(yè),軟件和硬件一直在高速發(fā)展,為什么NFV直到最近才被運(yùn)營(yíng)商提上議事日程呢?最重要的原因是CPU 的技術(shù)發(fā)展改變了方向。從2000年開始,由于功耗和散熱的限制,X86 CPU時(shí)鐘頻率達(dá)到了上限,因此采用并行計(jì)算包括超標(biāo)量和多核技術(shù)成為提供更強(qiáng)處理能力的關(guān)鍵。多核技術(shù)為計(jì)算虛擬化打開了大門,為了充分利用計(jì)算能力,人們開始考慮網(wǎng)絡(luò)功能虛擬化。毫無疑問,控制平面功能更加適合通用CPU,許多現(xiàn)有的網(wǎng)絡(luò)控制功能也是基于X86的通用處理器實(shí)現(xiàn)。然而,由于通用服務(wù)器的設(shè)計(jì)不是為了實(shí)現(xiàn)分組的高效轉(zhuǎn)發(fā),因此直到近四、五年CPU技術(shù)的最新進(jìn)展才使得NFV 技術(shù)成為可能。這些技術(shù)包括CPU多核技術(shù)帶來的并行處理能力增長(zhǎng),CPU高速緩存的不斷增加和CPU外圍芯片增加了整體帶寬等。多核技術(shù)引發(fā)了虛擬化技術(shù)的快速發(fā)展,虛擬機(jī)在管理器的監(jiān)控之下成為資源池。借助于云計(jì)算的編排技術(shù),人們可以自動(dòng)化創(chuàng)建、動(dòng)態(tài)遷移虛擬機(jī),實(shí)現(xiàn)計(jì)算資源的最佳調(diào)配。這種運(yùn)維成本的節(jié)省將是NFV所帶來的最大優(yōu)勢(shì)。
NFV是運(yùn)營(yíng)商主導(dǎo)的演進(jìn)技術(shù)。長(zhǎng)期以來,設(shè)備商主導(dǎo)的專用硬件加專用軟件的設(shè)計(jì)開發(fā)模式,不僅費(fèi)時(shí)費(fèi)力,而且價(jià)格昂貴。專用硬件設(shè)備的發(fā)貨量遠(yuǎn)低于標(biāo)準(zhǔn)化的X86服務(wù)器,專用硬件的更新?lián)Q代通常需要4到5年,而同期遵循摩爾定律的IT硬件則實(shí)現(xiàn)了2到3代的更新,每一代都可以提供更高的性價(jià)比。封閉的專用硬件開發(fā)模式也意味著電信市場(chǎng)存在很高的進(jìn)入門檻,中小企業(yè)無法參與創(chuàng)新。與此相反,標(biāo)準(zhǔn)化的服務(wù)器硬件由于規(guī)模效應(yīng),發(fā)展出高度競(jìng)爭(zhēng)的市場(chǎng),通過購買廉價(jià)的計(jì)算能力來驅(qū)動(dòng)網(wǎng)絡(luò)業(yè)務(wù)無疑是運(yùn)營(yíng)商降低成本的選擇。
(三)SDN和NFV的關(guān)系
當(dāng)前,SDN技術(shù)普遍部署在數(shù)據(jù)中心網(wǎng)絡(luò),而NFV中的各種VNF 也都建立在數(shù)據(jù)中心基礎(chǔ)設(shè)施之上。比如開源的云計(jì)算管理平臺(tái)Openstack的網(wǎng)絡(luò)管理部分Neutron包含SDN控制器插件,支持Openflow對(duì)下層的網(wǎng)絡(luò)設(shè)施編程,用來創(chuàng)建子網(wǎng)和路由規(guī)則等。SDN的控制平面可以作為NFV的VNF來部署。在小規(guī)模受限網(wǎng)絡(luò)環(huán)境中,所有的控制和數(shù)據(jù)平面功能都可以VNF的方式部署,因此所有的交換和路由都采用軟件實(shí)現(xiàn)。
SDN和NFV有許多相似之處,它們的核心之處都在于在網(wǎng)絡(luò)中實(shí)現(xiàn)軟件和硬件分離,同時(shí)盡量采用標(biāo)準(zhǔn)的硬件和獨(dú)立開發(fā)的軟件。在業(yè)務(wù)提供方面,它們都與數(shù)據(jù)中心和云計(jì)算環(huán)境相關(guān),并實(shí)現(xiàn)網(wǎng)絡(luò)業(yè)務(wù)的自動(dòng)部署和管理。然而,SDN更是革命性的技術(shù),它打破了傳統(tǒng)路由協(xié)議的局限,各種新的路由協(xié)議和路由策略可以更加方便地引入網(wǎng)絡(luò)。
軟件開發(fā)和高資本投入的硬件開發(fā)不同,它的進(jìn)入門檻不高,而且軟件通過不斷累積可以實(shí)現(xiàn)增量開發(fā)。因此可以預(yù)期基于軟件的網(wǎng)絡(luò)功能將形成高度競(jìng)爭(zhēng)的市場(chǎng),并給運(yùn)營(yíng)商帶來更多的選擇。運(yùn)營(yíng)商也將發(fā)現(xiàn)基于軟件的網(wǎng)絡(luò)功能更易于部署,更容易實(shí)現(xiàn)擴(kuò)展性和自動(dòng)化管理。為了實(shí)現(xiàn)網(wǎng)絡(luò)創(chuàng)新,運(yùn)營(yíng)商可以在網(wǎng)絡(luò)中低成本部署各種實(shí)驗(yàn)功能。在虛擬機(jī)上對(duì)各種業(yè)務(wù)進(jìn)行驗(yàn)證的成本很低,對(duì)現(xiàn)有業(yè)務(wù)的干擾也可以通過沙盒技術(shù)顯著降低。不成功的創(chuàng)新業(yè)務(wù)可以馬上下線,而成功的業(yè)務(wù)也可以馬上批量大規(guī)模展開,這種“快速”正是大量OTT 運(yùn)營(yíng)商業(yè)務(wù)創(chuàng)新成功的關(guān)鍵所在。
三、網(wǎng)絡(luò)處理器(NPU)和CPU的比較
當(dāng)前的X86 CPU通常可以支持8~16核,每核可以支持10個(gè)或者更多的并發(fā)執(zhí)行單元。這些并發(fā)單元可以執(zhí)行浮點(diǎn)運(yùn)算、數(shù)據(jù)加密和內(nèi)存管理等功能。然而,CPU大部分功能對(duì)數(shù)據(jù)平面的包轉(zhuǎn)發(fā)是沒有意義的,比如在包轉(zhuǎn)發(fā)期間,浮點(diǎn)運(yùn)算執(zhí)行單元將完全處于空閑狀態(tài)。如果將相應(yīng)不使用的執(zhí)行單元和指令集去除,那么每個(gè)核將占用更小的空間,或者說在每塊芯片上可以集成更多的內(nèi)核,因而芯片每秒鐘指令執(zhí)行數(shù)也將大大提升。比如,阿爾卡特朗訊的FP3網(wǎng)絡(luò)處理器有288核,接近通常X86處理器內(nèi)核數(shù)量的30倍。
為了充分利用處理器的并行計(jì)算能力,各種超標(biāo)量計(jì)算體系架構(gòu)層出不窮。各種并行技術(shù)包括:并行處理、指令亂序和多線程等。通常內(nèi)存訪問,算邏單元和浮點(diǎn)運(yùn)算單元可以并行處理。通過對(duì)指令重新排序,算術(shù)和浮點(diǎn)運(yùn)算單元可以保持高負(fù)荷運(yùn)行,而內(nèi)存訪問單元?jiǎng)t保持不斷把新的數(shù)據(jù)加載到寄存器。多線程技術(shù)則在內(nèi)核實(shí)現(xiàn)了多任務(wù)切換調(diào)度。在網(wǎng)絡(luò)設(shè)備中,通常NPU 只需執(zhí)行更少的指令,因此指令亂序基本上沒有什么優(yōu)勢(shì)。此外,大部分指令與內(nèi)存讀取相關(guān),因此多線程更加重要。由于內(nèi)存數(shù)據(jù)讀取的相關(guān)性非常高,為了實(shí)現(xiàn)擴(kuò)展性,需要更多的線程。
現(xiàn)代的CPU通常都有片上內(nèi)存(L1/L2/L3),它們的讀取速度遠(yuǎn)快于RAM。高檔的CPU有20~30M字節(jié)L3緩沖。如果前后包之間有很強(qiáng)的相關(guān)性,那么緩沖的命中率會(huì)非常高,這也意味著每個(gè)包會(huì)經(jīng)歷相同的處理流程。對(duì)虛擬的網(wǎng)絡(luò)業(yè)務(wù)而言,這個(gè)假設(shè)可以滿足實(shí)時(shí)性需求,因此網(wǎng)絡(luò)業(yè)務(wù)可以通過虛擬機(jī)實(shí)現(xiàn)橫向線性擴(kuò)展。然而,對(duì)于IP 網(wǎng)絡(luò)核心和匯聚層而言,大量的業(yè)務(wù)流毫不相干,它們要經(jīng)歷不同的路由查表、計(jì)數(shù)和指令處理,因此網(wǎng)絡(luò)的處理能力必須能夠?qū)崿F(xiàn)縱向線性擴(kuò)展。為了達(dá)到線速轉(zhuǎn)發(fā)能力,網(wǎng)絡(luò)處理器內(nèi)存管理需要提供大容量緩沖,通常需要2G 字節(jié)L3緩沖。此外,在網(wǎng)絡(luò)處理器中通常會(huì)集成TCAM,它可以在單個(gè)時(shí)鐘周期內(nèi)高速實(shí)現(xiàn)特定的查表功能,這樣NPU可以保證對(duì)各種業(yè)務(wù)的實(shí)時(shí)處理。
在過去的幾十年中,CPU變得越來越強(qiáng)大,各種特殊計(jì)算功能包括浮點(diǎn)運(yùn)算、多媒體處理和IO等層出不窮。CPU可以高效地支持服務(wù)器和PC的需求。同時(shí),NPU的發(fā)展和CPU一樣服從摩爾定律,但是NPU專注于分組處理,因此兩者發(fā)展出完全不同的能力集(表1)。
表1 NPU和CPU的比較
四、結(jié)論
IT技術(shù)在很大程度上驅(qū)動(dòng)著網(wǎng)絡(luò)向SDN和NFV方向演進(jìn)。網(wǎng)絡(luò)的動(dòng)態(tài)需求是SDN產(chǎn)生的背景,采用通用硬件降低成本并提供靈活性是NFV的目標(biāo);诰W(wǎng)絡(luò)處理器和CPU的比較,我們可以發(fā)現(xiàn),NPU和CPU在SDN和NFV演進(jìn)中將發(fā)展出互補(bǔ)關(guān)系。未來,虛擬化的網(wǎng)絡(luò)功能和網(wǎng)絡(luò)的控制平面將基于X86通用處理器。通用CPU可以執(zhí)行網(wǎng)絡(luò)數(shù)據(jù)平面和控制平面的功能。在網(wǎng)絡(luò)的接入和邊緣,各種虛擬的網(wǎng)絡(luò)功能可以實(shí)現(xiàn)橫向線性擴(kuò)展。疊加在物理網(wǎng)絡(luò)之上的虛擬網(wǎng)絡(luò)功能將減輕網(wǎng)絡(luò)的處理負(fù)擔(dān);贜PU的硬件在高端(匯聚和核心)應(yīng)用中將繼續(xù)扮演關(guān)鍵角色。在網(wǎng)絡(luò)的核心,隨著網(wǎng)絡(luò)接口速度從100Gbps向400Gbps和1Tbps邁進(jìn),業(yè)界需要處理能力更強(qiáng)大的網(wǎng)絡(luò)處理器。