使用SDNet開發(fā)創(chuàng)新型可編程網(wǎng)絡(luò)
Lagopus FPGA 可最大化電信和云服務(wù)的SDN/NFV 功能。
日本電報電話公司 (NTT) 是一家全球電信集團(tuán)控股公司,負(fù)責(zé)制定管理策略和推動研發(fā)工作發(fā)展。 我們是 NTT 研發(fā)部的研究人員,正領(lǐng)導(dǎo)兩個針對軟件定義網(wǎng)絡(luò) (SDN) 和網(wǎng)絡(luò)功能虛擬化 (NFV) 的創(chuàng)新型項目。針對其中的一個項目,我們已經(jīng)開發(fā)出一個名為 Lagopus 的高性能軟件 SDN/OpenFlow交換機(jī)[1],我們認(rèn)為這是迄今為止作為開源軟件發(fā)布的 OpenFlow 1.3 兼容交換機(jī)中的佼佼者。針對第二個項目,我們開發(fā)出一個具有軟件包處理感知功能的 40 Gbps FPGA 網(wǎng)絡(luò)接口卡 (NIC) ——Lagopus FPGA。
本文引用地址:http://m.butianyuan.cn/article/201808/385497.htm早期階段采用賽靈思面向網(wǎng)絡(luò)的 SDNet 軟件定義規(guī)范環(huán)境,是我們能夠成功開發(fā)這些技術(shù)的關(guān)鍵所在。在本文中我們將介紹如何使用SDNet滿足我們的項目目標(biāo)。
實現(xiàn) SDN/NFV 卓越性能的 LAGOPUS FPGA
云服務(wù)供應(yīng)商和網(wǎng)絡(luò)服務(wù)運(yùn)營商正在轉(zhuǎn)向采用SDN,將其作為自動配置系統(tǒng)的關(guān)鍵支持技術(shù)。NFV 通過將網(wǎng)絡(luò)系統(tǒng)從專有硬件設(shè)備轉(zhuǎn)變?yōu)樯逃糜布到y(tǒng),充分運(yùn)用 PC 服務(wù)器、基于商用芯片的交換機(jī)和軟件工具,在幫助電信運(yùn)營商降低資本支出和運(yùn)營支出方面起著至關(guān)重要的作用。許多云服務(wù)提供商和電信運(yùn)營商將為其新一代商用網(wǎng)絡(luò)部署 SDN 和 NFV。
NTT 集團(tuán)是商業(yè)服務(wù)和研發(fā)領(lǐng)域的 SDN 和NFV 領(lǐng)跑者。在日本總務(wù)省的自助下,NTT 已經(jīng)啟動一項與先進(jìn) SDN/NFV 相關(guān)的研究工作——O3 項目。Lagopus 是 O3 項目的主要可交付成果,其結(jié)合使用開放網(wǎng)絡(luò)基金會 (Open Networking FoundaTIon)的 OpenFlow 1.3 協(xié)議、商用英特爾 x86 服務(wù)器和商用 NIC, 可實現(xiàn)高性能軟件包處理和靈活的流程控制。 Lagopus 的主要優(yōu)勢有: 能在商用服務(wù)器上實現(xiàn)超過 10Gbps 的高性能軟件包處理、高達(dá)百萬流量輸入的彈性網(wǎng)絡(luò)流控制、針對虛擬提供商邊緣 (vPE)/ 虛擬客戶端設(shè)備 (vCPE) / 虛擬演進(jìn)分組核心網(wǎng) (vEPC) 框架的可擴(kuò)展流程分配器。
Lagopus FPGA 項目旨在通過在運(yùn)行于商用服務(wù)器上的 FPGA 上靈活地對軟件加速和硬件加速功能進(jìn)行分區(qū),實現(xiàn) 40/100Gbps 的高性能包處理。圖 1顯示了 Lagopus FPGA 的概念和架構(gòu)。這種靈活的架構(gòu)能借助 FPGA 加速并以純軟件實現(xiàn)方式將 Lagopus交換機(jī)的 10Gpbs 線速提高到 40Gbps 線速。這一性能提升的代價僅僅是 x86 CPU 的功耗增大不到 10%。該架構(gòu)還能極大地增強(qiáng)我們的網(wǎng)絡(luò)故障排除能力,這對真正虛擬化的網(wǎng)絡(luò)有實質(zhì)性意義。
圖 1 — Lagopus FPGA 的概念和架構(gòu)
目前, 我們正在使用先進(jìn)的 FPGA 和設(shè)計工具聯(lián)合為 Lagopus 和網(wǎng)絡(luò)運(yùn)營商的原始硬件知識產(chǎn)權(quán)(IP) 設(shè)計一種先進(jìn)的軟件可編程數(shù)據(jù)層面,其目的不僅是獲得更高的系統(tǒng)性能,也是為降低功耗和成本。通過與賽靈思團(tuán)隊合作,我們已經(jīng)在基于賽靈思 Virtex?-7 All Programmable FPGA 的 80Gbps NIC演示板上成功集成了 Lagopus 和我們的 IP。2015 年2 月,我們在東京舉辦的 NTT2015 年研發(fā)論壇上首次演示了 Lagopus FPGA。同年 8 月,我們還在加州庫比蒂諾舉辦的 Hot Chips 27 大會上展示了我們的卓越成功。
我們使用 SDNet 開發(fā)環(huán)境創(chuàng)建 Lagopus FPGA系統(tǒng)。這種新穎的動態(tài)可重編程數(shù)據(jù)層面包處理工具鏈讓我們能夠在不影響性能的情況下,把數(shù)據(jù)包分類、編輯、搜索、負(fù)載均衡和統(tǒng)計測量等高強(qiáng)度數(shù)據(jù)層面運(yùn)算轉(zhuǎn)交給 FPGA NIC 處理(均在10/40/100GbE 千兆位級以太網(wǎng)線速下實現(xiàn)),為 Lagopus和 NFV 應(yīng)用提速。我們認(rèn)為這是我們項目的最佳解決方案,可增強(qiáng) SDN/NFV 技術(shù)的關(guān)鍵組成部分—— 分類 IP 的功能。該環(huán)境的快速可重配置包流水線功能讓我們能夠迅速方便地更新網(wǎng)絡(luò)協(xié)議和功能。
SDNet 環(huán)境涵蓋云計算數(shù)據(jù)中心和廣域網(wǎng)中豐富多樣的用例,從而擴(kuò)大了 Lagopus FPGA 的使用潛力。對 NTT 而言,這種靈活、軟件定義硬件設(shè)計技術(shù)能實現(xiàn)差異化網(wǎng)絡(luò)業(yè)務(wù)的靈活部署。
SDNet 擴(kuò)大了 Lagopus FPGA 的使用潛力:這種靈活的軟件定義硬件設(shè)計技術(shù)能實現(xiàn)差異化網(wǎng)絡(luò)業(yè)務(wù)的靈活部署。
SDNet 環(huán)境奠定設(shè)計基礎(chǔ)
隨著新興市場上 SDN/NFV 技術(shù)競爭日趨激烈,Lagopus FPGA 項目的一大設(shè)計挑戰(zhàn)是在緊湊的開發(fā)期內(nèi)完成開發(fā),以如期進(jìn)行部署和推廣。我們從 2014 年 10 月開始設(shè)計 Lagopus FPGA 系統(tǒng),三個月后,即在 2015 年 1 月完成首次集成。
鑒于該系統(tǒng)設(shè)計的復(fù)雜性,這是一項了不起的成就。圖 1 所示是 Lagopus FPGA 系統(tǒng)的頂層架構(gòu),它由包含軟件 FPGA IP 包在內(nèi)的四個技術(shù)軟件層組成:(1) NFV 應(yīng)用;(2) Lagopus 軟件交換機(jī);(3)硬件抽象層,例如應(yīng)用編程接口 (API)、英特爾數(shù)據(jù)面開發(fā)套件 (DPDK)、一組用于x86 快速包處理的庫和驅(qū)動程序;以及 (4) FPGA NIC IP 內(nèi)核套件。該多重技術(shù)軟件層會增大追蹤問題根源的難度,如丟包和性能降低,削弱調(diào)試和立即隔離故障的能力。實際上這也是所有 SDN/NFV 架構(gòu)的重大難題。為克服這些難題,我們采用了 SDNet 環(huán)境和賽靈思Vivado? Design Suite。
我們在啟動 Lagopus FPGA 的設(shè)計工作時,先確定我們對包處理功能的要求,并且制定出一個開發(fā)流程。圖 2 是這一開發(fā)流程的一般性介紹和SDNet規(guī)范的示例代碼段。我們決定創(chuàng)建一個完美匹配的濾波器。該過濾器采用來自虛擬 LAN 的關(guān)鍵信息。借助這個過濾器,我們可以把硬件分類功能卸載到FPGA NIC,在 x86 上為 Lagopus 的軟件數(shù)據(jù)層面提速。我們可使用 Lagopus 和 SDN 控制器之間的OpenFlow 協(xié)議注入流程項,進(jìn)而通過 DPDK 流程指示器 API 配置濾波器項。
圖 2 — SDNet 環(huán)境的設(shè)計流程
為實現(xiàn)這一策略,我們創(chuàng)建了相應(yīng)的 SDNet 功能描述,如圖 2 的代碼段所示。我們隨后把該代碼輸入 SDNet 編譯器,設(shè)定總線類型、總線寬度和生成的 RTL 類型等選項。編譯在數(shù)秒鐘內(nèi)完成。SDNet功能描述的實際代碼規(guī)模大約為 250 行代碼。相比之下,等效的 RTL 需要由數(shù)萬行代碼構(gòu)成。考慮到我們的工作日程緊張,我們十分欣賞 SDNet 規(guī)范的簡潔性。受我們開發(fā)時間的約束,要在 RTL 中重新設(shè)計并驗證這一復(fù)雜模塊是無法做到的。
下一步我們使用工具命令語言 (Tcl) 外殼程序,將生成的 RTL 與 Vivado Design Suite 上的其他外設(shè)IP 集成在一起。圖 3 所示為集成式 SDNet 分類器和我們定制的流程分配器。我們的目標(biāo)編程器件是賽靈思 Virtex-7 XC7VX690T FPGA。
圖 3 — FPGA 流程分類與分配
借助 Lagopus FPGA,我們僅以 x86 功耗上升不足10% 為代價,便實現(xiàn)了 40Gbps 線速軟件包處理能力。
由于分類后的包流(指向 32 個接收 [rx]DMA隊列)通過在 x86 多核 CPU 上工作的 Lagopus 的軟件數(shù)據(jù)層面能夠得到有效分配,這種集成 FPGA 設(shè)計讓系統(tǒng)不僅能減少 Lagopus 的 OpenFlow 工作線程占用的 CPU 周期,而且還可平衡每個內(nèi)核的工作負(fù)荷(圖 3)。因此,, 我們使用 Lagopus FPGA 實現(xiàn)了更高性能—— 達(dá)到 40Gpbs 線速軟件包處理能力,而且付出的代價僅僅是 x86 CPU 的功耗增大不到 10%(如圖 4 所示)。
圖 4 — 性能與功耗關(guān)系圖
SDNet 環(huán)境與 Vivado Design Suite 結(jié)合運(yùn)用,有助于我們項目的啟動,讓我們能夠最大程度地豐富Lagopus FPGA 系統(tǒng)的特性集,優(yōu)化性能并降低功耗。NTT 研發(fā)部在 SDN/NFV 領(lǐng)域的領(lǐng)先地位,加上我們對賽靈思 SDNet 開發(fā)環(huán)境的運(yùn)用,讓我們?yōu)殡娦藕驮苹A(chǔ)架構(gòu)將帶來革命性變化。為此,我們將繼續(xù)運(yùn)用軟定義、可重編程的 SDNet 負(fù)載模塊來優(yōu)化我們的設(shè)計方法。包括 API 在內(nèi)的 SDNet 規(guī)范的不斷快速修改在我們設(shè)計未來平臺時能為我們提供更多益處。
『本文轉(zhuǎn)載自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系刪除』
評論