為加速 NFV 性能,NFV 解決方案提供商增加了 VM 的數(shù)量,目的是在多個(gè) VM 上分配 VNF。在操作多個(gè)VM 時(shí),出現(xiàn)了新的挑戰(zhàn),這與均衡虛擬機(jī)間的流量負(fù)載同時(shí)還要支持 IP分片有關(guān)。此外,在支持 VM 之間的交換以及 VM 與 NIC 之間的交換方面也存在挑戰(zhàn)。純軟件 vSwitch 元件根本不具備足以解決這些挑戰(zhàn)的性能。另外,還必須要保持VM 的完整性,以便VM 能夠適當(dāng)存儲(chǔ)特定的突發(fā)數(shù)據(jù)包并且不會(huì)無序交付數(shù)據(jù)包。
Ethernity 的 ENET FPGA 專用于解決 NFV 的性能問題,其配備了虛擬交換機(jī)/ 路由器實(shí)現(xiàn)方案,使系統(tǒng)能夠根據(jù) L2、L3 和 L4 標(biāo)簽來加速vSwitch 交換數(shù)據(jù)的功能,同時(shí)保持為每個(gè) VM 分配一個(gè)專用虛擬端口。如果某個(gè)特定 VM 不可用,ENET 則可以將流量保存 100ms 之久;而一旦可用,ENET 將通過 DMA 將數(shù)據(jù)傳輸給 VM。我們的ENET 安裝了標(biāo)準(zhǔn)CFM 數(shù)據(jù)包生成器和數(shù)據(jù)包分析器,可提供延遲測(cè)量功能,從而可以測(cè)量 VM 的可用性和運(yùn)行健康狀況,并且指示 ENET 的狀態(tài)負(fù)載均衡器(關(guān)于每個(gè) VM 在負(fù)載分配方面的可用性)。數(shù)據(jù)包重新排序引擎可以在某些情況下保持幀的順序,例如,如果某個(gè)數(shù)據(jù)包出現(xiàn)無序移動(dòng),這可能導(dǎo)致對(duì)一項(xiàng)功能使用多個(gè) VM。
圖 2 描述了 VM 負(fù)載均衡ENET解決方案的方框圖。
圖 2 - 這一高級(jí)方框圖顯示了虛擬機(jī)的負(fù)載均衡和交換機(jī)。
在圖 2 中,分類模塊執(zhí)行 L2、L3 和 L4 字段的層級(jí)分類,以保持支持長時(shí)間活動(dòng) TCP(telnet、FTP 等不會(huì)立即關(guān)閉)的連接和流的路由。負(fù)載均衡器必須確保該連接上攜帶的多個(gè)數(shù)據(jù)包不會(huì)將負(fù)載均衡到其他可用的服務(wù)主機(jī)。ENET 包括老化機(jī)制功能,以刪除不活動(dòng)的流。
在分類模塊中,我們根據(jù) L2、L3和 L4 字段配置了均衡哈希算法。此算法包含分段,以便負(fù)載均衡器能夠根據(jù)內(nèi)部隧道 (inner tunnel) 信息(如VXLAN 或 NVGRE)來執(zhí)行均衡,而IP 分片連接則可以由特定連接/CPU來進(jìn)行處理。對(duì)于 VM 到 VM 連接而言,分類器和搜索引擎會(huì)將會(huì)話轉(zhuǎn)發(fā)到目標(biāo) VM,而不是 vSwitch 軟件。同時(shí),分類器功能根據(jù)其路由器輸出來為每個(gè)輸入流分配報(bào)頭操控規(guī)則,同時(shí)監(jiān)控修改 IP 地址或卸載協(xié)議。
對(duì)于每個(gè)新流,目標(biāo)選擇模塊的負(fù)載均衡器根據(jù)加權(quán)循環(huán)調(diào)度算法(WRR) 技術(shù)從可用的 VM 中分配目標(biāo)地址。將根據(jù)從 VM 負(fù)載監(jiān)控模塊派生的信息來配置 WRR。
分層流量管理器模塊在可用的VM 之間實(shí)現(xiàn)分層 WRR,并為每個(gè)VM 保持一個(gè)輸出虛擬端口,以根據(jù)優(yōu)先級(jí)、VM 和物理端口分成三個(gè)調(diào)度層級(jí)。CPU 層級(jí)表示特定 VM,同時(shí)優(yōu)先級(jí)層級(jí)可能在服務(wù)于特定VM 的不同服務(wù)/ 流之間分配加權(quán)。ENET 通過操作外部 DDR3,可以支持100ms 的緩存以克服特定 VM 的瞬時(shí)負(fù)載。
VM 負(fù)載監(jiān)控使用 ENET 可編程數(shù)據(jù)包生成器和數(shù)據(jù)包分析器對(duì)電信級(jí)以太網(wǎng)服務(wù)進(jìn)行監(jiān)控,這符合Y.1731 和 802.1ag 標(biāo)準(zhǔn)。VM 負(fù)載監(jiān)控模塊維護(hù)有關(guān)每個(gè) CPU/VM 可用性的信息,對(duì) VM 使用以太網(wǎng) CFM 延遲測(cè)量報(bào)文 (DMM) 協(xié)議生成之類的指標(biāo)。通過對(duì)每個(gè)數(shù)據(jù)包加蓋時(shí)間戳并測(cè)量發(fā)送與接收之間的時(shí)間差,此模塊可以確定每個(gè) VM 的可用性,并據(jù)此指示可用VM 上的目標(biāo)選擇模塊。
資源選擇模塊所確定的是從主機(jī)發(fā)送至用戶的哪些傳出流量將被分類并確定數(shù)據(jù)包的資源。ENET 中的報(bào)頭操控模塊將執(zhí)行網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 以將輸入地址替換為正確的VM IP 地址,從而使NIC 能夠?qū)⒘鳌?shù)據(jù)包或服務(wù)轉(zhuǎn)發(fā)至正確的VM。對(duì)于輸出流量,NAT 將執(zhí)行相反操作并將數(shù)據(jù)包連同其原始IP 地址一并發(fā)送給用戶。此外,報(bào)頭操控模塊還將執(zhí)行隧道封裝。此時(shí),報(bào)頭操縱模塊將執(zhí)行分類器通過分類所分配的操作規(guī)則,并將在 CPU 操作之間剝離隧道報(bào)頭或其他報(bào)頭。在相反方向,其將原始隧道附加到輸出用戶端口。
隨著運(yùn)營商網(wǎng)絡(luò)用戶數(shù)量的增加,流表(flow table)的大小可能快速增加從而超過標(biāo)準(zhǔn)服務(wù)器的緩存容量。對(duì)于當(dāng)前OpenFlow 系統(tǒng)尤為如此,因?yàn)楫?dāng)前OpenFlow 系統(tǒng)需要40 個(gè)不同字段、IPv6 地址、多協(xié)議標(biāo)簽交換(MPLS) 和提供商骨干網(wǎng)橋(PBB)。ENET 搜索引擎和包解析器可以支持對(duì)多個(gè)字段進(jìn)行分類并提供數(shù)百萬個(gè)流,因而可以從軟件設(shè)備中卸載分類和搜索功能。
最后,通過ENET 數(shù)據(jù)包報(bào)頭操控引擎,ENET 可將卸載任何協(xié)議處理并為 VM 以及 TCP 分段或者各種協(xié)議之間的聯(lián)網(wǎng)(包括用于虛擬EPC(vEPC) 實(shí)現(xiàn)的 3GPP、XVLAN、MPLS、PBB、NAT/PAT 等)提供原始數(shù)據(jù)信息。
除了固件之外,Ethernity 還開發(fā)了我們稱之為 ACE-NIC 的NFV NIC(圖 3)。要?jiǎng)?chuàng)建 NIC,我們將 ENETSoC 固件(已部署到電信級(jí)以太網(wǎng)網(wǎng)絡(luò)中的數(shù)十萬個(gè)系統(tǒng)中)部署到單個(gè)Xilinx Kintex?-7 FPGA 中。我們還將五個(gè)分立組件的功能集成到同一個(gè) FPGA 中。NIC 和 SR-IOV 支持;網(wǎng)絡(luò)處理(包括分類、負(fù)載均衡、數(shù)據(jù)包修改、交換、路由以及 OAM);100ms 緩沖;幀分段;加密。
圖 3 – Xilinx Kintex FPGA 位于 Ethernity NFV 網(wǎng)卡的中心。
ACE-NIC 是一款支持 OpenFlow的硬件加速 NIC,并在 COTS 服務(wù)器中運(yùn)行。ACE-NIC 將 vEPC 和 vCPE NFV 平臺(tái)的性能提升 50 倍,極大降低了與 NFV 平臺(tái)相關(guān)的端對(duì)端時(shí)延。新的 ACE-NIC 配備了四個(gè) 10GE端口以及專為基于 Ethernity ENET 流處理器的 FPGA SoC 設(shè)計(jì)的軟件和硬件,支持 PCIe? Gen3。ACE-NIC還配備了與 FPGA SoC 連接的板載DDR3,支持 100ms 緩沖并可搜索一百萬條目。
Ethernity ENET 流處理器 SoC平臺(tái)使用具有專利、獨(dú)有的基于流的處理引擎來處理大小可變的任何數(shù)據(jù)單元,提供多協(xié)議聯(lián)網(wǎng)、流量管理、交換、路由、分段、時(shí)間戳和網(wǎng)絡(luò)處理。此平臺(tái)在Xilinx 28nm Kintex-7XC7K325T FPGA 上支持高達(dá)80Gbps 的速率,或在更大型 FPGA 上支持更高速率。
ACE-NIC 附帶基本功能,比如納秒精度以內(nèi)的按幀時(shí)間戳、數(shù)據(jù)包生成器、數(shù)據(jù)包分析器、100ms 緩沖、幀過濾以及 VM 之間的負(fù)載平衡。為提供多個(gè)云設(shè)備,其還能夠按虛擬機(jī)分配虛擬端口。
此外,ACE-NIC 還帶有 NFVvEPC 的專用加速功能。這些功能包括幀報(bào)頭操縱和卸載、16K 虛擬端口交換實(shí)現(xiàn)、可編程幀分段、QoS、計(jì)數(shù)器和計(jì)費(fèi)信息,這些功能可以由面向 vEPC 的 OpenFlow 進(jìn)行控制。通過其獨(dú)特的軟件及硬件設(shè)計(jì),ACENIC將軟件性能提高了 50 倍。
ALL PROGRAMMABLE ETHERNITY SDN 交換機(jī)
同樣,Ethernity 在 FPGA 中集成 ENET SoC 固件以創(chuàng)建全 ALL PROGRAMMABLE SDN 交換機(jī),并支持 OpenFlow 的 1.4 版本和全套電信級(jí)以太網(wǎng)交換機(jī)功能,從而加速白盒 SDN 交換機(jī)部署的上市進(jìn)程。
ENET SoC 電信級(jí)以太網(wǎng)交換機(jī)是符合 MEF 標(biāo)準(zhǔn)的 L2、L3 和L4 交換機(jī)/ 路由器,可以在分布于超過 128 個(gè)物理通道的 16,000 個(gè)內(nèi)部虛擬端口之間交換和路由五個(gè)級(jí)別數(shù)據(jù)包報(bào)頭的幀。其支持 FE、GbE 和10GbE 以太網(wǎng)端口以及四種級(jí)別的流量管理調(diào)度層級(jí)。由于 ENET 的內(nèi)在架構(gòu)支持分段幀,因此 ENET 可以通過零拷貝技術(shù)執(zhí)行 IP 分片和功能重新排序,這樣一來,分段與重組便不再需要專用的存儲(chǔ)和轉(zhuǎn)發(fā)。此外,ENET 還具有集成的可編程數(shù)據(jù)包生成器和數(shù)據(jù)包分析器,可簡化 CFM/OAM 操作。最終,ENET 可以在3GPP、LTE、移動(dòng)回程和寬帶接入中運(yùn)行。其支持多個(gè)協(xié)議之間的互通,這些只需要通過零拷貝操作,并且不需要重新路由幀來進(jìn)行報(bào)頭操控。
顯然,通信行業(yè)正處在新時(shí)代的開端。我們確信可以看到 NFV 和SDN 領(lǐng)域會(huì)有很多創(chuàng)新。NFV 性能提升或 SDN 交換機(jī)的任何新興解決方案必須能夠支持新版 SDN。隨著 Intel收購 Altera 以及尋求更高可編程性的硬件架構(gòu)不斷增多,我們確信處理器與 FPGA 的組合架構(gòu)也會(huì)越來越多,同時(shí)還會(huì)有新的創(chuàng)新方式來實(shí)現(xiàn) NFV性能提升。
基于 FPGA 的 NFV NIC 加速可以基于通用處理器來提供 NFV 的靈活性,同時(shí)提供GPP 無法維持的必要吞吐量,并且還要執(zhí)行 GPP 無法支持的特定網(wǎng)絡(luò)功能加速。通過在 FPGA平臺(tái)上有效組合 SDN 與 NFV,我們可以設(shè)計(jì)出 All Programmable 網(wǎng)絡(luò)設(shè)備,從而推動(dòng)網(wǎng)絡(luò)應(yīng)用領(lǐng)域中全新的IP 廠商生態(tài)系統(tǒng)創(chuàng)新。
評(píng)論