由于可將網(wǎng)絡(luò)功能/特征仿真到軟件并部署于通用服務(wù)器來(lái)實(shí)現(xiàn),以NFV(網(wǎng)絡(luò)功能虛擬化)與SDN(軟件定義網(wǎng)絡(luò))為代表的“網(wǎng)絡(luò)虛擬化技術(shù)”成為最近一個(gè)非常熱門的行業(yè)話題。但是,半導(dǎo)體性能的未來(lái)速率演進(jìn)將會(huì)落后于網(wǎng)絡(luò)容量的增長(zhǎng),隨著網(wǎng)絡(luò)數(shù)據(jù)容量正在進(jìn)入太比特時(shí)代,預(yù)計(jì)將難以通過(guò)NFV技術(shù)的靈活性來(lái)獲得所需的數(shù)據(jù)速率與功率效率。為解決此問(wèn)題,業(yè)界有機(jī)構(gòu)正在研究可用于網(wǎng)絡(luò)虛擬化的硬件/軟件聯(lián)合設(shè)計(jì)技術(shù)[1],在技術(shù)理念與具體技術(shù)上都有較大的參考價(jià)值,下文對(duì)其進(jìn)行詳細(xì)介紹。
1、引言
隨著商用型服務(wù)器的性能得到逐步提升,全球通信業(yè)界開(kāi)始大力探索通過(guò)部署網(wǎng)絡(luò)虛擬化技術(shù)來(lái)大幅降低網(wǎng)絡(luò)建設(shè)成本與運(yùn)維成本。
SDN(Software-Defined Networking,軟件定義網(wǎng)絡(luò))即是網(wǎng)絡(luò)虛擬化技術(shù)的代表,其可將電信網(wǎng)絡(luò)設(shè)備的控制功能與數(shù)據(jù)傳送功能分離解耦,從而可以集中處理網(wǎng)絡(luò)配置與設(shè)置(可通過(guò)相關(guān)軟件進(jìn)行自動(dòng)化的流程控制)。
為了能把SDN技術(shù)應(yīng)用到電信運(yùn)營(yíng)商的廣域網(wǎng)絡(luò),業(yè)界已經(jīng)發(fā)布了開(kāi)源的SDN應(yīng)用。該應(yīng)用包括兩大部分:(1)Ryu SDN框架——其為一種SDN控制器,為SDN網(wǎng)絡(luò)的設(shè)置提供便捷的工具與能力庫(kù);(2)Lagopus——其為一種高性能的SDN軟件交換機(jī),具備可廣泛應(yīng)用部署于數(shù)據(jù)中心及廣域網(wǎng)絡(luò)的能力與特性。
2、對(duì)硬件加速器(用于網(wǎng)絡(luò)虛擬化)的研發(fā)
隨著網(wǎng)絡(luò)虛擬化技術(shù)的進(jìn)步,傳統(tǒng)上由專用硬件設(shè)備所提供的網(wǎng)絡(luò)功能,也將有望通過(guò)在標(biāo)準(zhǔn)化的通用服務(wù)器中部署虛擬化成軟件的網(wǎng)絡(luò)功能來(lái)實(shí)現(xiàn)。
可以預(yù)見(jiàn)的是,隨著網(wǎng)絡(luò)虛擬化技術(shù)的實(shí)際應(yīng)用越來(lái)越普遍,部署有很多網(wǎng)絡(luò)功能的通用服務(wù)器的CPU(中央處理單元,用于進(jìn)行與網(wǎng)絡(luò)相關(guān)的處理)將會(huì)承受很大的負(fù)載。
從而,為了使網(wǎng)絡(luò)虛擬化技術(shù)能滿足更高級(jí)網(wǎng)絡(luò)服務(wù)與系統(tǒng)的需求,就需要研發(fā)能減輕通用服務(wù)器CPU負(fù)載的技術(shù),以期提高通用型服務(wù)器處理能力的功率與性能的比值,為更多網(wǎng)絡(luò)功能的正常運(yùn)行提供穩(wěn)定的環(huán)境。
為了使網(wǎng)絡(luò)虛擬化系統(tǒng)中的軟硬件能協(xié)同工作,NTT設(shè)備創(chuàng)新中心正在研發(fā)硬件/軟件聯(lián)合設(shè)計(jì)技術(shù),已設(shè)計(jì)出具有如圖1所示理念的HWA(HardWare Accelerator,硬件加速器)——其具有性能、靈活性及可用性三個(gè)維度,并涉及SDN軟件交換機(jī)、SDN硬件交換機(jī)、硬件加速器。總體而言,硬件加速器可在提升性能、提高可靠性的同時(shí),保證高性能SDN軟件交換機(jī)(Lagopus)的靈活性。
圖1 硬件加速器的設(shè)計(jì)理念
3、硬件加速器的技術(shù)原理與特性
1)技術(shù)原理
在用于網(wǎng)絡(luò)虛擬化的通用型服務(wù)器中,能與硬件加速器HWA協(xié)同工作的SDN軟件交換機(jī)的系統(tǒng)配置如圖2所示。其中:(1)虛線的上半部分為數(shù)據(jù)平面,以SDN軟件交換機(jī)為核心進(jìn)行軟件(網(wǎng)絡(luò)功能虛擬化應(yīng)用)處理(采取x86 CPU);(2)虛線的下半部分執(zhí)行硬件處理功能,其主體為內(nèi)置于通用服務(wù)器NIC(網(wǎng)卡)之中的一個(gè)可重構(gòu)/重配置的FPGA(現(xiàn)場(chǎng)可編程門陣列)電路——硬件加速器HWA。通常地,硬件研發(fā)比軟件研發(fā)要花費(fèi)多得多的時(shí)間。但是,由于此方案中采取了可對(duì)程序中的功能進(jìn)行重寫的FPGA,就不僅可加速硬件研發(fā),還具備在后續(xù)對(duì)網(wǎng)絡(luò)功能進(jìn)行更新、迅速解決故障的能力。
圖2 SDN軟件交換機(jī)的系統(tǒng)配置
(注——API:應(yīng)用編程接口;DPDK:Intel的數(shù)據(jù)平面開(kāi)發(fā)工具包;NFV:網(wǎng)絡(luò)功能虛擬化)
圖2中所示的SDN軟件交換機(jī)通過(guò)網(wǎng)卡中的FPGA硬件加速器HWA向相關(guān)的軟件轉(zhuǎn)發(fā)網(wǎng)絡(luò)分組/數(shù)據(jù)包以待處理。除了網(wǎng)卡通常的數(shù)據(jù)包處理功能,硬件加速器也具備相關(guān)的預(yù)處理能力以減輕Lagopus(SDN軟件交換機(jī))轉(zhuǎn)發(fā)組件(即數(shù)據(jù)平面)的負(fù)載壓力。但是,硬件加速器的預(yù)處理功能與SDN軟件交換機(jī)的數(shù)據(jù)包處理是相互獨(dú)立的,并不直接與之通信。這就使得SDN軟件交換機(jī)能保持其靈活性,同時(shí)減輕軟件處理負(fù)載,并可進(jìn)一步地提高SDN軟件交換機(jī)的性能。
2)技術(shù)特性
(1)高速的流量調(diào)度
要進(jìn)行高速的數(shù)據(jù)包/分組處理,需要SDN軟件交換機(jī)把相關(guān)工作平均地分配給多核處理器之中的各個(gè)處理單元,以對(duì)多個(gè)指令進(jìn)行高效的并行處理。但是,目前尚無(wú)提前分發(fā)數(shù)據(jù)分組負(fù)載的相關(guān)機(jī)制。從而,所有數(shù)據(jù)分組就必須被傳送至某個(gè)指定的CPU核,然后再分割給相應(yīng)的軟件進(jìn)行處理。于是,這樣就容易導(dǎo)致數(shù)據(jù)包堆積在單個(gè)的CPU核之中,從而就成為“瓶頸”,甚至在最壞的情況下造成丟包。
為解決上述問(wèn)題,業(yè)界研發(fā)了高速的流量調(diào)度機(jī)制。其工作原理為:如圖3所示,基于硬件加速器所接收到的分組流數(shù)據(jù),將數(shù)據(jù)包分配給FPGA數(shù)據(jù)結(jié)構(gòu)(以隊(duì)列的形式)。其后,DMA(Direct Memory Access,直接內(nèi)存存取器)將數(shù)據(jù)分組傳送至主內(nèi)存陣列(多核CPU的每個(gè)處理器單元對(duì)應(yīng)一個(gè)主內(nèi)存)。
圖3 高速流量調(diào)度的實(shí)現(xiàn)原理(以六核CPU為例)
以此種方式,所有的處理負(fù)載/任務(wù)就被平均、平滑地分配給多核CPU的每個(gè)處理器單元(如圖4所示),同時(shí)又不會(huì)造成軟件周期的浪費(fèi)。
圖4 高速流量調(diào)度的效果(以六核CPU為例)
(2)可進(jìn)行數(shù)據(jù)流量導(dǎo)向
應(yīng)用于網(wǎng)絡(luò)虛擬化的硬件加速器HWA除了可進(jìn)行高速的流量調(diào)度,還需要研發(fā)一種技術(shù)機(jī)制,以使得軟件能自主確定將數(shù)據(jù)流分配至哪些相應(yīng)的DMA序列,為此研發(fā)了流量導(dǎo)向裝置。
如圖5所示,流量導(dǎo)向裝置使得Lagopus(SDN軟件交換機(jī))可通過(guò)應(yīng)用編程接口API與硬件加速器HWA通信來(lái)確定將數(shù)據(jù)流分配至哪些相應(yīng)的DMA序列??梢?jiàn),流量導(dǎo)向裝置可用于提高系統(tǒng)性能。
圖5 流量導(dǎo)向裝置
總之,流量導(dǎo)向裝置可計(jì)算出數(shù)據(jù)分組應(yīng)如何被分配至多核CPU的某個(gè)/某些處理器單元,從而,數(shù)據(jù)流就無(wú)需被確定兩次,相應(yīng)的處理也就可被跳過(guò)。這就使得Lagopus(SDN軟件交換機(jī))具備足夠多的時(shí)間去更為高效地處理小數(shù)據(jù)包。
(3)數(shù)據(jù)包鏡像
在未來(lái),需要實(shí)現(xiàn)更快地查找出發(fā)生網(wǎng)絡(luò)故障問(wèn)題的原因。這是由于,在將來(lái)實(shí)現(xiàn)了網(wǎng)絡(luò)虛擬化技術(shù)之后,網(wǎng)絡(luò)故障會(huì)變得更為復(fù)雜。
為此,業(yè)界也研發(fā)了可應(yīng)用于硬件加速器HWA之中的數(shù)據(jù)包鏡像技術(shù)。其特點(diǎn)為:可在不對(duì)軟件造成任何負(fù)載的情況之下,隨時(shí)對(duì)虛擬網(wǎng)絡(luò)進(jìn)行監(jiān)測(cè)。
如圖6所示,數(shù)據(jù)包鏡像技術(shù)的實(shí)現(xiàn)原理為:對(duì)輸入FPGA硬件加速器HWA的數(shù)據(jù)分組/包進(jìn)行復(fù)制,并將其原樣(未經(jīng)修改)轉(zhuǎn)發(fā)給相關(guān)的外部設(shè)備進(jìn)行分。從而可及時(shí)判斷、檢測(cè)出網(wǎng)絡(luò)故障問(wèn)題發(fā)生的“苗頭”,而同時(shí)又不會(huì)影響到正常的數(shù)據(jù)分組/包處理功能。
圖6 數(shù)據(jù)包鏡像技術(shù)的實(shí)現(xiàn)
4、系統(tǒng)試驗(yàn)與評(píng)估結(jié)果
NTT與Xilinx公司合作進(jìn)行了其裝備有FPGA硬件加速器HWA的SDN軟件交換機(jī)系統(tǒng)原型樣機(jī)的測(cè)試,并驗(yàn)證了硬件/軟件聯(lián)合設(shè)計(jì)所能獲得的系統(tǒng)性能增益。相關(guān)測(cè)試采取了最新的FPGA設(shè)備與工具SDNet(Software Defined Specification Environment for Networking,用于組網(wǎng)的軟件定義規(guī)范環(huán)境。其可進(jìn)行分組數(shù)據(jù)包的處理)。對(duì)于分組數(shù)據(jù)包轉(zhuǎn)發(fā)性能的評(píng)估結(jié)果如圖7所示,所測(cè)得的功率消耗情況如圖8所示。
圖7 測(cè)試原型系統(tǒng)的數(shù)據(jù)包轉(zhuǎn)發(fā)性能(其中“吞吐量”的單位是Gbit/s)
圖8 40 Gbit/s線速下的系統(tǒng)功耗
圖7中的數(shù)據(jù)表明:(1)無(wú)論是長(zhǎng)包(比如1600字節(jié))還是短包(比如50字節(jié)),部署了硬件加速器HWA后,轉(zhuǎn)發(fā)性能均有所增強(qiáng),包的長(zhǎng)度不一,增強(qiáng)的程度也不一;(2)部署了硬件加速器HWA后,多核CPU的處理器單元數(shù)越大,在一定的包長(zhǎng)(1000字節(jié)左右)范圍之內(nèi),轉(zhuǎn)發(fā)性能越好,且其性能改善的程度也與具體的包長(zhǎng)大小相關(guān);(3)部署了硬件加速器HWA后,當(dāng)包長(zhǎng)達(dá)到一定的大小時(shí),系統(tǒng)吞吐量存在一個(gè)極限值,且多核CPU的處理器單元數(shù)不同,開(kāi)始出現(xiàn)吞吐量極限值時(shí)的包長(zhǎng)大小也不同;(4)部署了硬件加速器HWA后,定性看來(lái),系統(tǒng)對(duì)長(zhǎng)包的轉(zhuǎn)發(fā)性能要優(yōu)于短包。
此外還發(fā)現(xiàn),當(dāng)采取8核CPU(處理器單元達(dá)到最大數(shù)值)時(shí),系統(tǒng)在處理長(zhǎng)度大于384字節(jié)的分組數(shù)據(jù)包時(shí),可獲得高達(dá)40 Gbit/s的線速。而且,當(dāng)數(shù)據(jù)包處理速率達(dá)到40 Gbit/s之時(shí),整個(gè)通用型服務(wù)器的功耗為425瓦,但FPGA硬件加速器HWA的功耗于其中的占比還不到5%——僅為19瓦。這就意味著,實(shí)際上是可以以很小的功耗代價(jià)來(lái)獲得理想中的高線速的。
測(cè)試中還發(fā)現(xiàn),采取Lagopus(SDN軟件交換機(jī))對(duì)硬件加速器HWA的輸入數(shù)據(jù)包進(jìn)行復(fù)制(通過(guò)相應(yīng)的應(yīng)用編程接口API),不會(huì)對(duì)原型系統(tǒng)之中的首要數(shù)據(jù)包處理產(chǎn)生任何影響。
5、未來(lái)研發(fā)工作規(guī)劃
如圖7所示,原型系統(tǒng)對(duì)于小于384字節(jié)的短包的轉(zhuǎn)發(fā)性能(吞吐量、線速)較低。為此,業(yè)界對(duì)該SDN軟件交換機(jī)系統(tǒng)(內(nèi)含硬件加速器HWA)的下一步研發(fā)目標(biāo)是將其線速(吞吐量)提高至40 Gbit/s。
另外,為進(jìn)一步提高系統(tǒng)的可靠性,業(yè)界將會(huì)對(duì)數(shù)據(jù)包鏡像技術(shù)的實(shí)際使用進(jìn)行測(cè)試,以進(jìn)行網(wǎng)絡(luò)監(jiān)測(cè)并對(duì)網(wǎng)絡(luò)功能進(jìn)行分析,進(jìn)而提高網(wǎng)絡(luò)虛擬化的運(yùn)營(yíng)效率。
此外,業(yè)界還規(guī)劃采取SDN軟件交換機(jī)系統(tǒng)(內(nèi)含硬件加速器HWA)原型系統(tǒng)的三大特性來(lái)實(shí)際部署NFV(網(wǎng)絡(luò)功能虛擬化)應(yīng)用,并研制可用于試用的相關(guān)系統(tǒng)。
以此方式,電信網(wǎng)絡(luò)虛擬化技術(shù)的性能與可靠性將得到進(jìn)一步的提高,并有望將硬件/軟件聯(lián)合設(shè)計(jì)作為網(wǎng)絡(luò)虛擬化的基礎(chǔ)技術(shù),從而助力推動(dòng)網(wǎng)絡(luò)虛擬化技術(shù)在電信運(yùn)營(yíng)商基礎(chǔ)網(wǎng)絡(luò)之中的實(shí)際商用部署進(jìn)程。
參考文獻(xiàn):
[1] Takahiro Hatano, Koji Yamazaki, Akihiko Miyazaki. Hardware/Software Co-design
Technology for Network Virtualization [EB/OL]. https://www.ntt-review.jp/archive/ntttechnical.php?contents=ntr201601fa7... , 2016-01-30 .
原文鏈接: ?id=9897
評(píng)論
查看更多