當前位置:
首頁 > 科技 > FPGA在下一代網路架構中的重要意義

FPGA在下一代網路架構中的重要意義

不久前,英特爾聯手HPE(中文名:慧與)以及中國電信北京研究院一起發布了技術白皮書:《為下一代電信基礎設施尋找有效的虛擬網路體系架構》,英文全名為:Finding an efficient virtual network function architecture for next-generation telecommunications infrastructure(見下圖),在系統層面詳細闡述了三家公司在推進網路功能虛擬化(NFV)領域所作的最新的工作和取得的成果。此外,今年在上海舉辦的世界移動大會(Mobile World Congress)上,這個項目的原型驗證也在HPE的展台進行了公開演示。同時,項目的下一階段也將順利開展。

FPGA在下一代網路架構中的重要意義

作為這個項目的主要參與者之一,看到這些階段性的成果不斷湧現時,本人自然感到成就感十足,同時也在參與項目的過程中學到了很多知識,結交了很多來自英特爾其他業務部門、以及HPE和中國電信的同事、同行和朋友們。今天的這篇文章,本人將對這部白皮書進行技術層面的解讀,將著重討論FPGA在諸如NFV等虛擬網路架構中的作用和意義。

附上一張五月份去中國電信北京研究院的照片。

FPGA在下一代網路架構中的重要意義

網路功能虛擬化(NFV)的意義

NFV和虛擬化技術是近幾年很火爆的話題,深入探討NFV的意義大概需要幾十篇博客,市面上近幾年也慢慢出現了不少書籍單獨介紹NFV的相關內容。或許之後我會單獨寫幾篇文章討論廣義上什麼是NFV、NFV出現的背景和存在的意義。但本文以及白皮書中針對的是NFV在電信網路中的應用。

電信網路是NFV的一個主要應用場景,它出現的最直接的動因之一就是為了支持指數級的帶寬增長。據預測,五年後全球的IP流量將較今日增長超過3倍。在萬物互聯的今天,尤其是5G、物聯網、自動駕駛等技術已經成為各大公司爭奪的焦點之時,各種設備和服務都需要電信網路及其數據中心進行處理和支持。然而,傳統的電信基礎架構和數據中心很難進行有效的擴展,其主要原因有以下兩點:

  1. 硬體層面:傳統電信網路基礎架構使用的是各類專用硬體設備,如各類接入設備、各層交換機、路由器、防火牆、QoS等。這樣做的問題有很多,例如,不同設備之間的兼容性差、維護升級困難、容易造成供應商壟斷從而大幅提高成本、若需要加入新功能則要開發新硬體設備等等。

  2. 軟體層面:不同設備都需要各自對應的軟體進行配置和控制,從而難以在管理員層面進行大範圍統一部署和配置,且需要學習來自不同供應商和規格的設備的軟體配置方法。若某些網路功能通過軟體實現,傳統的實現方法中對伺服器的有效利用率很低,且無法進行服務的動態遷移,等等。

因此,虛擬化技術 - 更具體而言,網路功能虛擬化NFV技術,逐漸成為各大運營商解決上述問題的有效途徑。歐洲電信標準協會(ETSI)關於NFV比較有名的示意圖如下所示。

FPGA在下一代網路架構中的重要意義

總體而言,和傳統方法相比,NFV利用通用的伺服器(大多是基於英特爾x86處理器)、通用的存儲設備、以及通用的高速乙太網交換機,實現傳統電信網路基礎架構的各種網路功能。具體而言,就是將網路功能在通用伺服器中用軟體實現,數據使用通用的存儲設備存儲,網路流量通過通用的網卡和高速交換機進行轉發。這樣理論上能很好的解決上述硬體層面的問題:使用通用設備而非專用設備,提高了數據中心的可擴展能力,不會被某個供應商制約,反而會通過開放競爭減少硬體採購和部署的成本。

另外,藉助虛擬化技術,將網路功能在不同虛擬機中實現,這樣理論上能解決軟體層面的問題:即某個特定應用不會佔用伺服器的全部資源,反之,一個伺服器可以同時運行多個虛擬機或網路服務。同時,虛擬機在數據中心的擴展和遷移也更加方便,不會造成服務下線或中斷。

NFV和另外一項技術:軟體定義網路(Software Defined Network - SDN)經常一起出現。它們的一個主要的核心思想就是將網路的控制面和轉發麵進行分離。這樣,所有的數據轉發麵設備都可以同時被控制、配置、管理,從而避免了管理員需要分別配置每個網路設備的低效情形。

引用一下《中國電信CTNet2025網路架構白皮書》的話:

「從更好的適應互聯網應用的角度出發,未來網路架構必須要求網路能力介面的開放和標準化,通過軟體定義網路技術,能夠實現面向業務提供網路資源和能力的調度和定製化,同時為進一步加速網路能力的平台化,還需要提供網路可編程的能力,真正實現網路業務的深度開放。」

請注意,在之前的表述中我使用了很多「理論上」怎樣怎樣,這是由於上面關於NFV的優點很多都是人們美好的想像和願景。在實際的工程實踐中,設計實現有效的NFV架構面臨著很多問題。例如,不同的應用場景中,網路負載的種類五花八門,而很多應用都需要進行線速的處理,如QoS和流量整形(之前的博文介紹過)、VPN、防火牆、網路地址轉換、加密解密、實時監控、深度包檢測(DPI)等等。即使有DPDK等專用的軟體開發庫,目前單純使用軟體實現這些網路服務的線速處理,在技術上存在很大困難,且用軟體實現的網路功能在性能上很難和專有硬體相比。這樣一來,人們會反過來質疑使用NFV的出發點和動機。同時,鑒於NFV仍處於方案探討和摸索階段,很多相關的協議和標準還沒有確定,這也在一定程度上使很多企業猶豫是否要投入大量資源去進行前期的探究工作。

因此,如何有效的實現這些虛擬化的網路功能(Virtualized Network Function - VNF),是我們前階段的主要工作和這篇白皮書主要探討的問題。


虛擬網路功能(VNF)的有效實現

在這裡,實現虛擬網路功能的「有效性」主要體現在以下幾個方面:

1.VNF必須非常靈活、便於使用;

2.容易大規模擴展,不局限於某種應用場景或網路;

3.性能方面應該不低於,甚至高於專用硬體。

介於此,白皮書中給出了幾個有潛力的發展方向以供參考:

1.控制面和轉發麵的分離和獨立擴展。

2.設計並優化、標準化擁有可編程能力的轉發麵。

在電信網路的應用場景中,NFV的一個典型應用就是虛擬化的寬頻遠程接入服務vBRAS,即virtual broadband remote access server,又被稱為vBNG,即virtual broadband network gateway。在vBRAS中可能包含很多虛擬網路功能,例如遠程用戶撥入驗證服務(Remote Authentication Dial-In User Service, RADIUS)、動態主機設置協議(Dynamic Host Configuration Protocol,DHCP),以及之前提過的DPI、防火牆、QoS等。

一個重要的發現是,這些網路應用從計算資源的需求上可以分成兩類。一類不需要大量的計算資源,如RADIUS和DHCP。同時這類應用很多屬於控制平面。因此這類應用很適合直接放在控制平面,並且有很好的縱向和橫向的擴展性,也很適合用通用的計算和存儲設備進行實現。

另一類應用往往需要很大的計算能力,如流量管理、路由轉發、數據包處理等,且通常需要在線速下(如40Gbps、100Gbps或更高)進行處理。這類應用往往屬於數據平面。對於數據平面而言,它還需要支持很多種計算量很大的網路功能,這樣才能區別於使用專有硬體,符合NFV技術的初衷。綜上而言,數據平面應該具備以下兩點主要能力「

1.能線速進行高吞吐量的複雜數據包處理;

2.同時支持多種網路功能,具有很強的可編程能力。

然而,如果直接使用軟體方法實現,這兩點功能很難同時滿足。因此我們採用了FPGA作為智能硬體加速平台,很好的同時解決了處理速度和可編程性兩個問題。首先,FPGA相比純軟體方法,在數據包處理上擁有著絕對優勢的硬體並行性能,因此被用作硬體加速器使用。其次,相比於傳統的專有硬體設備,FPGA擁有靈活的可編程能力,可以支持各種應用的實現。


虛擬寬頻遠程接入服務:從BRAS到vBRAS的演進

FPGA在下一代網路架構中的重要意義

圖1:vBRAS的演化

上圖為我們展示了傳統BRAS逐步演進到vBRAS的三個主要過程:

1.第一階段,傳統的BRAS使用專用設備,且控制面和轉發麵緊耦合。圖中可以看到控制路徑和數據路徑是相互重合的。

2.第二階段,採用了虛擬化技術,且採用了伺服器取代了專用BRAS設備,使用軟體和虛擬機實現多個vBRAS。但同時也可以看到,此時控制面和轉發麵還是相互耦合實現。由於兩者性能差別很大,這種實現方式很容易造成數據通路的性能瓶頸,或因數據通路流量過大而佔用了控制面的帶寬。反之,控制面的流量會影響數據面的線速包處理的能力。

3.第三階段,採用虛擬化技術,且控制面和轉發麵相互分離。從圖中可以看到,控制面和轉發麵由兩個伺服器分開實現,控制流量和轉發流量相互不影響。此外,控制流量能在數據/轉發伺服器和控制伺服器之間雙向流動,實現控制面對轉發麵的控制。

這第三個階段就是目前英特爾、HPE和中國電信北研院聯合研發的最新成果。接下來就詳細講解其技術細節。


高性能vBRAS的設計方法

設計實現上述第三階段中高性能的vBRAS方案,需要分別實現vBRAS-c (control) 和vBRAS-d (data),即vBRAS控制設備和vBRAS數據設備。這兩類設備都應該使用標準化的通用伺服器實現。此外,對於vBRAS數據設備而言,需要針對計算量龐大的應用進行專門的優化和加速,使其能進行高吞吐量、低延時的數據包處理。

下圖展示了本應用實例中,vBRAS-c和vBRAS-d的設計方法。

FPGA在下一代網路架構中的重要意義

圖2:vBRAS的轉控分離架構

對於vBRAS-c節點,其重要的設計思想就是輕量化和虛擬化,使其方便在數據中心或雲端進行擴展和移植,同時可以分散式實現,以控制多個數據平面節點。因此在本例中,vBRAS-c由一個獨立的HPE DL380伺服器實現。DL380伺服器中包含兩個CPU插槽(socket),每個插槽中均有一塊14核的Xeon處理器。伺服器的總內存為128GB。網路介面方面,vBRAS-c可以使用標準的網卡進行網路通信,比如一塊或多塊英特爾X710 10GbE網卡即可滿足控制平面的流量要求。具體的vBRAS控制應用則在虛擬機中實現,多個虛擬機由SDN控制器統一控制。

對於vBRAS-d節點,總體也通過獨立的DL380實現。針對上文提到的優化加速的部分,本實例中使用了基於Arria10 FPGA的智能網卡加速網路功能,如線速處理QoS和多級流量整形。在一個DL380中,可以插入多塊FPGA智能網卡,實現並行數據處理,成倍提高數據吞吐量。同時,vBRAS-d節點通過OpenFlow與SDN控制器交互,且一台vBRAS-c設備可以控制多個vBRAS-d設備。


基於Arria10 FPGA的智能網卡解析

使用FPGA智能網卡進行網路加速的好處有以下幾點:

1.解放了寶貴的CPU內核,將原本在CPU中實現的數據處理卸載到FPGA上進行加速實現。這樣CPU可以用來做其他的工作,在虛擬化的基礎上進一步實現了資源的有效利用。

2.FPGA擁有低功耗、靈活可編程的特點。在白皮書中提到,在選用的Arria10 GT1150 器件上實現了硬體QoS和多級流量整形後,只佔用了FPGA的40%的邏輯資源。換言之,還有60%的資源可以被用來進行其他的網路功能處理和加速。同時,可以隨時對FPGA進行編程,因此多種網路功能的加速都可以用一套硬體設備完成,不需要更換加速卡或其他硬體設備。即使是用戶自己定義的功能,也可以實現,不需要專有設備完成。這樣很好的平衡了高性能和高通用性兩者間的矛盾。

3.FPGA能進行高速並行的數據包處理,且本身就廣泛應用於網路通信領域,解決方案豐富且成熟。

下圖概括介紹了本實例中在FPGA中實現的數據包轉發的數據通路設計。

FPGA在下一代網路架構中的重要意義

圖3:FPGA數據包處理的數據通路

由圖中可見,本設計包含多個模塊,如Parser、Look-Up、Buffer Manager、Packet Processor,以及內存控制器和DMA等。數據包進入FPGA後,依次通過各個模塊進行特徵提取、分類、查找,如果需要就通過PCIe和DMA與CPU進行交互。同時,Buffer Manager會對不同來源的數據包進行流量控制、QoS和流量整形等操作。

此外,這款FPGA智能網卡支持多種包處理模式,即可以將數據包完全在FPGA內部處理後轉發,不經過CPU;也可以將數據包通過PCIe傳送到CPU,使用DPDK進行包處理,再通過FPGA轉發;或者二者結合,一部分功能在CPU中實現,另外一部分卸載到FPGA上完成。可見靈活度很高。


性能測試

下圖展示了進行性能測試時的硬體搭建情況。

FPGA在下一代網路架構中的重要意義

圖4:數據平面的伺服器和FPGA架構

圖中可見,一個DL380伺服器上插了3塊相互獨立的FPGA智能網卡,每塊網卡支持40Gbps數據吞吐量,因此一個vBRAS-d伺服器支持的總吞吐量為120Gbps。每塊網卡通過PCIex16介面與CPU相連,在CPU中運行DPDK L2/L3 FWD應用,將數據轉發回FPGA,然後在FPGA中進行QoS和數據整形。在測試中,流量的產生和接收都通過Spirent測試儀實現。

對於QoS,每個智能網卡可以支持4000用戶,故單伺服器支持12000個用戶。每個用戶支持2個優先順序,且分配給每個用戶的帶寬可以編程式控制制。例如,每個用戶分配8.5Mbps帶寬,則開啟流量整形後單伺服器總流量應為12000x8.5=102Gbps,如下圖所示。

FPGA在下一代網路架構中的重要意義

數據平面的性能測試結果

我們看到,當數據包為定長512位元組時,關閉流量整形功能後,高優先順序流量和低優先順序流量都沒有損失,各為60Gbps(對應每個用戶的實際流量為5Mbps高優先順序+5Mbps低優先順序),因此總流量為120Gbps。開啟流量整形功能後,高優先順序流量沒有損失,仍為60Gbps。對於低優先順序,由於每個用戶分配8.5Mbps帶寬且高優先順序已經佔用了其中的5Mbps,因此只剩餘3.5Mbps帶寬供低優先順序流量通過。可見低優先順序流量遭到限流,總流量變成3.5Mx12000=42Gbps,使得總流量變成102Gbps。這在總體上證明了單個vBRAS-d節點可以支持超過100Gbps的流量處理。

此外還進行了一些功耗測試能性能對比,我在此挑選了一張結果圖如下所示。

FPGA在下一代網路架構中的重要意義

圖5:不同帶寬時總能耗性能比的對比

這張圖表示了實現不同帶寬時,總功耗性能比的一系列比較。功耗性能比的定義為,實現1Tbps時所需要的總功耗(千瓦)。圖中將不含FPGA智能網卡的vBRAS實現50Gbps時的功耗性能比作為基準值(100%)。由圖中可以看到,vBRAS+FPGA智能網卡的方案總能降低超過40%的總功耗,最多可達到60%。這進一步印證了上文中闡述過的使用FPGA進行網路功能加速的好處所在。

其他性能測試和對比不再贅述,詳細內容在白皮書中可以看到。總體而言,相比於傳統的vBRAS伺服器+標準網卡的方案,使用vBRAS+FPGA智能網卡的解決方案可以減少約50%的功耗,以及帶來超過3倍的性能提升。


結語

這篇白皮書為我們展示了業界領先的企業當前在NFV和SDN領域所做的最新工作,特別是使用FPGA作為硬體加速平台,對網路功能進行卸載和加速。這樣能大幅提高硬體資源的利用率,同時能帶來性能的提升和能耗的下降,降低了部署和運行成本。同時結合業界其他公司的動態,各大互聯網公司、雲服務提供商、電信網路提供商都開始嘗試在他們的數據中心中部署FPGA,其中微軟的Azure雲服務更是已經大規模採用了Intel FPGA進行硬體加速。因此,如何有效的設計CPU+FPGA這樣的異構計算微結構、如何實現狹義和廣義上的計算、控制和存儲資源的有效管理和分配、上述設計如何在數據中心進行高效部署,以及如何設計商業模型以明確FPGA在整個體系中的位置和作用,將會是未來一段時間內的研究熱點。

作者簡介

FPGA在下一代網路架構中的重要意義

石侃博士,於倫敦帝國理工大學電子系取得博士學位,後加入英特爾公司可編程解決方案事業部任高級FPGA研發工程師至今。石侃在半導體行業有多年的學術研究和工業界開發經驗,尤其深耕於FPGA、高性能與可重構計算、計算機網路和虛擬化等領域。他曾在多個學術界頂級會議和期刊如DAC、FCCM、TVLSI等發表過論文。在工業界,他主要從事使用FPGA進行數據中心網路加速器、網路功能虛擬化、高速有線網路通信等相關技術的研發和創新工作。

今天是《半導體行業觀察》為您分享的第1440期內容,歡迎關注

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 半導體行業觀察 的精彩文章:

兆易創新入局19nm DRAM,國產存儲如虎添翼
重新定義MCU
為簡便工程師設計,Maxim祭出了幾道板斧
晶圓廠這道工序曾讓IBM年入數十億,創新是半導體第一生產力!
正在改變的MEMS市場

TAG:半導體行業觀察 |