業界最近在云數據中心服務器中開始使用智能網卡(SmartNIC),通過執行網絡數據通路處理來卸載服務器中的CPU來提高性能,引起了業界的熱議。在網卡上執行網絡卸載并不新鮮,很多傳統網卡支持卸載校驗和分段等功能。而隨著軟件定義網絡(SDN)和網絡功能虛擬化(NFV)的發展,由此驅動的云數據中心網絡架構的轉變,對Smart NIC提出了需求。
為什么需要Smart NIC對Smart NIC的需求主要有以下三個方面:
隨著VxLan等隧道協議的引入和虛擬交換的復雜行為,基于服務器的網絡數據平面的復雜性大大提高增加網絡接口帶寬意味著在軟件中執行這些功能會在CPU資源上產生不能承受的負載,造成剩余CPU資源過少甚至不能運行應用程序SDN的關鍵需求是網絡數據平面必須互換,固定功能卸載技術不適用。Smart NIC到底是什么?標準網卡(NIC)和智能網卡(Smart NIC)的根本區別在于Smart NIC從主機CPU卸載的處理量,Smart NIC是圍繞FPGA平臺設計的,FPGA被設計為接受本地化編程,一旦安裝就可以輕松更新。Smart NIC需要滿足以下特征:
能夠實現復雜的基于服務器的網絡數據平面功能,包括多個匹配動作處理,隧道終止和發起,計量和整形以及流量統計。通過固件加載或客戶編程來支持可替換的數據平面,對可執行的功能幾乎沒有預定的限制與現有的開源生態系統無縫集成,最大限度地提高軟件功能Smart NIC加速SDN的實踐落地具有高級編程功能Smart NIC能夠提升應用程序和虛擬化性能,實現軟件定義網絡(SDN)的諸多優勢。通過在每臺服務器上使用Smart NIC,運營商可以確保網絡虛擬化、負載均衡和其他低級功能從服務器CPU中卸載,確保為應用提供最大的處理能力。此外,Smart NIC還能夠提供分布式硬件資源,可用于卸載或加速特定應用程序。運營商可以使用Smart NIC廠商或合作伙伴提供的軟件,開發自己的軟件或提供接入服務,以便用戶使用定制化的軟件。
過去30年來,網卡已經從具有單一MAC,PHY和系統接口的簡單網卡發展到具有一個,兩個或更多網絡接口和用于TCP/IP的硬件卸載引擎的高性能適配器、虛擬化等功能。最新的NIC基于支持10Gbit/s,25Gbit/s,50Gbit/s或100Gbit/s網絡接口的輸入/輸出(I/O)控制器。Smart NIC將FPGA、處理器或基于處理器的智能I/O控制器與分組處理和虛擬化加速集成在一起。大多數Smart NIC可以使用標準的FPGA或處理器開發工具進行編程,越來越多的廠商也開始增加了對分組處理語言P4的支持。
Heavy Reading近期發布的一個針對18家廠商進行分析的報告,分析了基于FPGA和處理器的Smart NIC,確定了其關鍵特性,并指出了為服務提供商和電信解決方案提供商帶來的優勢。
目前業界提供Smart NIC的廠商包括Accolade、BittWare、Enyx、Ethernity、Napatech、Netcope、Reflex CES、Silicom和Solarflare。這些適配器集成了來自Intel或Xilinx的FPGA,其中一些采用了最新的Stratix 10和UltraScale + FPGA的FPGA。基本的I/O控制器功能是使用FPGA實現的,或者由單獨的I/O控制器進行處理。Broadcom,Cavium,Intel,Kalray,Mellanox,Netronome,Silicom和SolidRun均可提供基于處理器的Smart NIC。Smart NIC使用帶有集成處理器內核或可編程交換的處理器或智能I/O處理器,亞馬遜和谷歌已經開發了自己的Smart NIC ASIC。
從虛擬化應用程序中遷移到SDN可能會導致性能下降,并延長使用專有系統的延遲時間。Smart NIC為SDN和虛擬化應用程序提供硬件加速與網絡接口緊密結合,并可分布在大型服務器網絡咋紅。Smart NIC正在成為很多大型超大規模數據中心的標準服務器,業界正在努力覆蓋從基本的Smart NIC到將從服務器CPU卸載重要應用功能并處理多個100 Gbit/s連接的網卡的所有不同的需求,運營商可以使用Smart NIC來加速特定應用和虛擬化功能,并且通過正確的語言和公積金支持,為用戶提供應用加速即服務的附加價值。