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