向網絡功能虛擬化 (NFV) 和軟件定義網絡 (SDN) 的轉變代表了近 20 年來最具變革性的架構網絡發展趨勢。由于 NFV 和 SDN 承諾系統開放性和網絡中立性,因此有望給未來的通信網絡和業務的成形造成深遠影響。
我們 Ethernity Networks 公司正在利用賽靈思器件,率先向市場推出真正開放的、高度可編程的 SDN 和 NFV 解決方案。讓我們來看一下 Ethernity 公司在首次探索 NFV 和 SDN 的前景和要求之后,是如何打造其解決方案的。
硬件和 NFV/SDN 變革遍地開花
過去幾十年間的網絡基礎架構業務在很大程度上可謂是大型機業務模式的延續,在這種模式下,屈指可數的幾家大型公司提供專有局端基礎設備,而這些設備又運行專有的軟件,這樣構建的全部意圖都是為了不與競爭對手的系統進行通信。在大多數情況下,基礎架構廠商為其客戶的每個網絡節點都創建定制硬件,并將每個節點都構建成最低可編程性和可升級性節點,以確保那些希望對網絡進行擴展或升級的客戶會從同一廠商旗下購買下一代設備;或者讓客戶完全無法選擇從其他公司購買全新網絡,最終只能重蹈覆轍。
在過去五年中,來自運營商、學術機構以及廠商的新貴一直在呼吁,即通過最大化硬件與軟件的可編程性來過渡到無處不在的硬件、網絡中立、開放系統以及軟件兼容性。NFV 和 SDN 是這一發展趨勢的先鋒,為這一不斷成長且一定會成功的革命高舉旗幟。
憑借 NFV,公司可通過軟件在商用的通用硬件平臺上運行各種網絡功能,這與在昂貴的定制專有硬件上運行每項特定網絡任務截然不同。將這些無處不在的開放式平臺的可編程性最大化,使公司能夠在數據中心甚至更小的網絡節點中運行眾多之前由特定硬件設備執行的任務。NFV 允許運營商根據需要只將給定服務的新網絡軟件上傳到商用硬件資源,從而可以進一步減少創建新的網絡服務所需的時間。運營商因此可以輕松擴展網絡并為其公司選擇同類最佳功能,而不用被迫購買和使用軟件靈活性有限的新型專有硬件。
NFV 是有效的,因為網絡中的很多節點都具有一般性的功能要求。具備一般性要求的節點包括交換機和路由器、數百萬流分類、訪問控制列表 (ACL)、狀態流感知、深度數據包檢測 (DPI)、隧道網關、流量分析、性能監控、分段、安全性、虛擬路由器和交換機。但NFV自身也面臨諸多挑戰。預計因特網和數據中心流量在未來幾年內將呈指數級增長,因此網絡局端基礎設備必須能夠應對流量的巨大增長。僅依靠軟件可編程性并不足以使通用硬件能夠隨著帶寬需求的增長而進行輕松擴展。無處不在的硬件需經過重新編程來優化總體系統性能。這允許廠商和運營商以“更智能,而不是更辛苦的工作”方式來利用 NFV 和 SDV,從滿足運營商的最終客戶(即消費者)不斷提高的網絡要求。真正的軟/硬件可編程基礎架構才是真正實現 NFV 和 SDN 的愿景的唯一方式。
SDN 同時在物理與虛擬設備中的網絡控制層與底層數據轉發層之間使用基于標準的軟件抽象,這消除了傳統分布式網絡基礎架構復雜且靜態的本質,是一種現代的聯網方法。在過去五年中,行業制定了一項標準數據層抽象協議 OpenFlow,其提供的新穎實用方法可以借助基于集中軟件的控制器來配置網絡架構。
具有集中軟件配置的開放式 SDN 平臺通過可編程性和自動化顯著提升了網絡敏捷性,同時大幅降低了網絡運營成本。OpenFlow 等業界標準數據層抽象協議使提供商可以自由使用任何類型和品牌的數據層設備,因為所有底層網絡硬件均可通過一種通用抽象協議來進行尋址。重要的是,OpenFlow 便于使用“裸機交換機”,同時避免傳統廠商的套牢,使運營商同樣能夠自由選擇目前可在 IT 基礎設施的其他領域(如服務器)中輕松找到的網絡。
由于 SDN 還處于起步階段,因此標準仍在不斷演進。這意味著設備廠商和運營商需要防范風險,并利用 FPGA 的硬件及軟件的可編程性,以最大的靈活性對 SDN 設備進行設計和操作。目前上市的基于 FPGA 的 SDN 設備即使對于大規模部署也相當實惠?;?FPGA 的 SDN 設備具有高度的高硬件與軟件靈活性并且盡可能符合 OpenFlow 協議要求。
性能加速需求
或許,對 NFV 和 SDN 而言,要超越開放性最關鍵的要求就是高性能。盡管 NFV 硬件看起來比專有系統更便宜,但 NFV 架構需要保持極富競爭力的大數據量,滿足下一代網絡的復雜處理要求并不斷提升能效。
實際上,NFV 基礎設施小組規范 (Infrastructure Group Specification) 包含一個特殊部分,其描述了對加速功能的需求,以提升網絡性能。此規范描述了處理器組件如何將某些功能轉移到網卡 (NIC) 以支持某些加速功能,包括 TCP 分段、互聯網協議 (IP) 分片、DPI、數百萬條目的過濾、加密、性能監控/計數、協議互通與 OAM 以及其他加速功能。
驅動這種加速的主要引擎是 NIC,其配備了物理以太網接口,供服務器連接到網絡。如圖 1 中所示,當某個數據包通過 10GE、40GE 或 100GE 端口到達 NIC 時,根據標簽信息(如 IP、MAC 或 VLAN)將數據包放置在虛擬端口 (VP) 或代表特定虛擬機 (VM) 的隊列中。隨后位于服務器上的合適的虛擬機直接對數據包進行 DMA 訪問以進行處理。每個虛擬網絡功能 (VNF) 都在不同虛擬機上運行,并且某些網絡功能需要使用多個甚至數十個虛擬機。
OpenFlow控制硬件加速功能,比如NIC上的硬件加速功能可以視為是SDN交換機的擴展??稍诙鄠€虛擬機和/或內核上通過部署多個VNF來為眾多功能處理NFV性能。這為NFV帶來了兩大性能挑戰。第一項挑戰在于“vSwitch”,這通常是一個軟件,用來處理以太網NIC與虛擬機之間的網絡流量。第二項性能挑戰在于均衡在多個VM之間輸入的40/100GE數據。添加IP分片、TCP分段、加密或其他專用硬件功能時,NFV軟件需要輔助以滿足性能需求并降低功耗。理想情況下,其外形應該比較緊湊,以減少存放網絡設備所需要的板級空間。
為處理 NFV 挑戰和各種網絡功能,用于 NFV 和 SDN 的 NIC 卡必須性能極高,而且盡可能靈活。多家芯片廠商都試圖成為第一家上市 NFV 硬件的廠家,他們已經提議構建針對 NIC 卡的平臺,它們各自都具有不同程度的可編程性。Intel 目前是主要的 NIC 組件提供商,配有用于加速數據包處理的 DPDK 包。EZchip 提供了運行 Linux 并可用 C 語言編程的 NPS 多線程 CPU。Marvell 為其 Xelerated 處理器提供了兩個完整的數據層軟件套件以用于城域以太網和統一光纖應用接入(Unified Fiber Access Application),這兩個套件由運行在 NPU 上的應用程序包和運行在主機 CPU 上的控制層 API 組成。Cavium 已經為其 Octeon 產品系列選擇了更通用的軟件開發套件。Broadcom、Intel 和 Marvel L2/L3 交換機主要用于搜索和 vSwitch 負載轉移。同時,Netronome 的新款 Flow-NIC 配備了能在該公司的專用網絡處理器硬件上運行的軟件。
盡管所有這些產品都聲稱是開放式 NFV 方法,但實則不然。所有這些方法都涉及到苛刻并且可以說是限制過多的硬件實現方案,這些實現方案僅具備軟件可編程,并且在 SoC 或標準處理器方面再次依賴于苛刻且專有的硬件實現方案。
用于 NFV 性能加速的 ALL PROGRAMMABLE ETHERNITY NIC
要加強可編程性同時還要大幅提高性能,很多公司都在研究一種能將現有 CPU 與 FPGA 結合使用的組合方法。在過去兩年中,很多數據中心運營商(尤其是 Microsoft 公司)發布了論文來闡述他們通過混合架構所實現的性能大幅提升。Microsoft 發布的名為“Catapult Project”的白皮書指出,在功耗僅增加了 10% 的情況下,性能提高了 95%。Intel 指出,在數據中心 NIC 中將 FPGA 與 CPU 組合所產生的效能是其花費 167 億美元收購第二大 FPGA 廠商 Altera 公司的主要原因。
同樣,CPU 與 FPGA 組合方法也適用于在虛擬機上運行虛擬聯網功能的NFV。在這種方法中,FPGA 用作完全可編程 NIC,經擴展可用來加速在服務器的 CPU/VM 上運行的虛擬網絡功能。
但是完全基于 FPGA 的 NIC 卡是 NFV 的理想 COTS 硬件架構。多家 FPGA 固件廠商都可以提供固件,以提高在 FPGA NIC 上運行的 NFV 的性能。并且 FPGA 公司最近開發了 C 語言編譯器技術(如賽靈思的 SDAccel? 和 SDSoC? 開發環境)以實現 OpenCL? 和 C++ 設計輸入和編程加速,從而進一步向更多用戶推廣 NFV 設備設計。
為加速 NFV 性能,NFV 解決方案提供商增加了 VM 的數量,目的是在多個 VM 上分配 VNF。在操作多個 VM 時,出現了新的挑戰,這與均衡虛擬機間的流量負載同時還要支持 IP 分片有關。此外,在支持 VM 之間的交換以及 VM 與 NIC 之間的交換方面也存在挑戰。純軟件 vSwitch 元件根本不具備足以解決這些挑戰的性能。另外,還必須要保持VM的完整性,以便VM能夠適當存儲特定的突發數據包并且不會無序交付數據包。
Ethernity 的 ENET FPGA 專用于解決 NFV 的性能問題,其配備了虛擬交換機/路由器實現方案,使系統能夠根據 L2、L3 和 L4 標簽來加速 vSwitch 交換數據的功能,同時保持為每個 VM 分配一個專用虛擬端口。如果某個特定 VM 不可用,ENET 則可以將流量保存 100ms 之久;而一旦可用,ENET 將通過 DMA 將數據傳輸給 VM。我們的ENET安裝了標準 CFM 數據包生成器和數據包分析器,可提供延遲測量功能,從而可以測量 VM 的可用性和運行健康狀況,并且指示 ENET 的狀態負載均衡器(關于每個 VM 在負載分配方面的可用性)。數據包重新排序引擎可以在某些情況下保持幀的順序,例如,如果某個數據包出現無序移動,這可能導致對一項功能使用多個 VM。
在分類模塊中,我們根據 L2、L3 和 L4 字段配置了均衡哈希算法。此算法包含分段,以便負載均衡器能夠根據內部隧道 (inner tunnel) 信息(如 VXLAN 或 NVGRE)來執行均衡,而 IP 分片連接則可以由特定連接/CPU 來進行處理。對于 VM 到 VM 連接而言,分類器和搜索引擎會將會話轉發到目標 VM,而不是 vSwitch 軟件。同時,分類器功能根據其路由器輸出來為每個輸入流分配報頭操控規則,同時監控修改 IP 地址或卸載協議。
對于每個新流,目標選擇模塊的負載均衡器根據加權循環調度算法 (WRR) 技術從可用的 VM 中分配目標地址。將根據從 VM 負載監控模塊派生的信息來配置 WRR。
分層流量管理器模塊在可用的VM之間實現分層 WRR,并為每個 VM 保持一個輸出虛擬端口,以根據優先級、VM 和物理端口分成三個調度層級。CPU 層級表示特定 VM,同時優先級層級可能在服務于特定 VM 的不同服務/流之間分配加權。ENET 通過操作外部 DDR3,可以支持 100ms 的緩存以克服特定 VM 的瞬時負載。
VM 負載監控使用 ENET 可編程數據包生成器和數據包分析器對電信級以太網服務進行監控,這符合 Y.1731 和 802.1ag 標準。VM 負載監控模塊維護有關每個 CPU/VM 可用性的信息,對 VM 使用以太網 CFM 延遲測量報文 (DMM) 協議生成之類的指標。通過對每個數據包加蓋時間戳并測量發送與接收之間的時間差,此模塊可以確定每個 VM 的可用性,并據此指示可用VM上的目標選擇模塊。
資源選擇模塊所確定的是從主機發送至用戶的哪些傳出流量將被分類并確定數據包的資源。ENET中的報頭操控模塊將執行網絡地址轉換 (NAT) 以將輸入地址替換為正確的 VM IP 地址,從而使NIC 能夠將流、數據包或服務轉發至正確的VM。對于輸出流量,NAT 將執行相反操作并將數據包連同其原始IP地址一并發送給用戶。此外,報頭操控模塊還將執行隧道封裝。此時,報頭操縱模塊將執行分類器通過分類所分配的操作規則,并將在 CPU 操作之間剝離隧道報頭或其他報頭。在相反方向,其將原始隧道附加到輸出用戶端口。
隨著運營商網絡用戶數量的增加,流表(flow table)的大小可能快速增加從而超過標準服務器的緩存容量。對于當前OpenFlow系統尤為如此,因為當前OpenFlow系統需要40個不同字段、IPv6地址、多協議標簽交換(MPLS)和提供商骨干網橋(PBB)。ENET搜索引擎和包解析器可以支持對多個字段進行分類并提供數百萬個流,因而可以從軟件設備中卸載分類和搜索功能。
最后,通過ENET數據包報頭操控引擎,ENET 可將卸載任何協議處理并為 VM 以及 TCP 分段或者各種協議之間的聯網(包括用于虛擬 EPC(vEPC) 實現的 3GPP、XVLAN、MPLS、PBB、NAT/PAT 等)提供原始數據信息。
除了固件之外,Ethernity 還開發了我們稱之為 ACE-NIC的NFV NIC(圖 3)。要創建 NIC,我們將 ENET SoC 固件(已部署到電信級以太網網絡中的數十萬個系統中)部署到單個Xilinx Kintex?-7 FPGA 中。我們還將五個分立組件的功能集成到同一個 FPGA 中。NIC 和 SR-IOV 支持;網絡處理(包括分類、負載均衡、數據包修改、交換、路由以及 OAM);100ms 緩沖;幀分段;加密。
ACE-NIC 是一款支持 OpenFlow 的硬件加速 NIC,并在 COTS 服務器中運行。ACE-NIC 將 vEPC 和 vCPE NFV 平臺的性能提升 50 倍,極大降低了與 NFV 平臺相關的端對端時延。新的 ACE-NIC 配備了四個 10GE 端口以及專為基于 Ethernity ENET 流處理器的 FPGA SoC 設計的軟件和硬件,支持 PCIe? Gen3。ACE-NIC 還配備了與 FPGA SoC 連接的板載 DDR3,支持 100ms 緩沖并可搜索一百萬條目。
Ethernity ENET 流處理器 SoC 平臺使用具有專利、獨有的基于流的處理引擎來處理大小可變的任何數據單元,提供多協議聯網、流量管理、交換、路由、分段、時間戳和網絡處理。此平臺在Xilinx 28nm Kintex-7XC7K325T FPGA 上支持高達 80Gbps 的速率,或在更大型 FPGA 上支持更高速率。
ACE-NIC 附帶基本功能,比如納秒精度以內的按幀時間戳、數據包生成器、數據包分析器、100ms 緩沖、幀過濾以及 VM 之間的負載平衡。為提供多個云設備,其還能夠按虛擬機分配虛擬端口。
此外,ACE-NIC 還帶有 NFV vEPC 的專用加速功能。這些功能包括幀報頭操縱和卸載、16K 虛擬端口交換實現、可編程幀分段、QoS、計數器和計費信息,這些功能可以由面向 vEPC 的 OpenFlow 進行控制。通過其獨特的軟件及硬件設計,ACE-NIC 將軟件性能提高了 50 倍。
ALL PROGRAMMABLE ETHERNITY SDN 交換機
同樣,Ethernity 在 FPGA 中集成 ENET SoC 固件以創建全 ALL PROGRAMMABLE SDN 交換機,并支持 OpenFlow 的 1.4 版本和全套電信級以太網交換機功能,從而加速白盒 SDN 交換機部署的上市進程。
ENET SoC 電信級以太網交換機是符合 MEF 標準的 L2、L3 和 L4 交換機/路由器,可以在分布于超過 128 個物理通道的 16,000 個內部虛擬端口之間交換和路由五個級別數據包報頭的幀。其支持 FE、GbE 和 10GbE 以太網端口以及四種級別的流量管理調度層級。由于 ENET 的內在架構支持分段幀,因此 ENET 可以通過零拷貝技術執行 IP 分片和功能重新排序,這樣一來,分段與重組便不再需要專用的存儲和轉發。此外,ENET 還具有集成的可編程數據包生成器和數據包分析器,可簡化 CFM/OAM 操作。最終,ENET 可以在 3GPP、LTE、移動回程和寬帶接入中運行。其支持多個協議之間的互通,這些只需要通過零拷貝操作,并且不需要重新路由幀來進行報頭操控。
顯然,通信行業正處在新時代的開端。我們確信可以看到 NFV 和 SDN 領域會有很多創新。NFV 性能提升或 SDN 交換機的任何新興解決方案必須能夠支持新版 SDN。隨著 Intel 收購 Altera 以及尋求更高可編程性的硬件架構不斷增多,我們確信處理器與 FPGA 的組合架構也會越來越多,同時還會有新的創新方式來實現 NFV 性能提升。
基于 FPGA 的 NFV NIC 加速可以基于通用處理器來提供 NFV 的靈活性,同時提供GPP 無法維持的必要吞吐量,并且還要執行 GPP 無法支持的特定網絡功能加速。通過在 FPGA 平臺上有效組合 SDN 與 NFV,我們可以設計出 All Programmable 網絡設備,從而推動網絡應用領域中全新的 IP 廠商生態系統創新。
圖 1 – 在數據包到達時,NIC 進入代表特定虛擬機的虛擬端口 (VP)。數據包隨后通過 DMA 發送到服務器上的合適的虛擬機以進行處理。
圖 2 - 這一高級方框圖顯示了虛擬機的負載均衡和交換機。
圖 3 – Xilinx Kintex FPGA 位于 Ethernity NFV 網卡的中心。
評論
查看更多