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