从网络虚拟化,看智能网卡发展史
? ?5G的到來無疑將加速網絡虛擬化的進程,在電信領域,網絡虛擬化不僅在核心網,也在網絡的邊緣。但是,僅僅通過軟件解決方案不能提供足夠的網絡可靠性和服務質量,而具有高級可編程功能智能網卡(Smart NIC),將在虛擬化網絡中扮演非常重要的角色。
網卡的發展史
近年來公有云中虛擬化技術的發展以及SDN技術的興起,對端系統協議棧提出了更高的要求,而傳統的高性能網卡已經難以滿足這些要求。為此,智能網卡技術開始走進大眾的視野。不同于傳統網卡,智能網卡同時具備高性能及可編程的能力,既能處理高速的網絡數據流,又能對網卡進行編程,實現定制化的處理邏輯。
傳統網卡:早期的網卡僅實現數據鏈路層和物理層的功能,而端系統CPU負責處理網絡協議棧中更高層的邏輯。CPU按照網絡協議棧中傳輸層、路由層的邏輯,負責數據包的封裝和解封;網卡則負責更底層的數據鏈路層幀的封裝和解封,以及物理層電氣信號的相應處理。
智能網卡:為適應高速網絡,現代網卡硬件中普遍卸載了部分傳輸層和路由層的處理邏輯(如校驗和計算、傳輸層分片重組等),來減輕CPU的處理負擔。甚至有些網卡如RDMA網卡還將整個傳輸層的處理都卸載到網卡硬件上,以完全解放CPU。得益于這些硬件卸載技術,端系統的網絡協議棧處理才能與現有的高速網絡相匹配。
具體來說,傳統網卡面向的用戶痛點包括:
- 隨著VXLAN等overlay協議以及OpenFlow、Open vSwitch(OVS)等虛擬交換技術的引入,使得基于服務器的網絡數據平面的復雜性急劇增加。
- 網絡接口帶寬的增加意味著在軟件中執行這些功能會給CPU資源造成難以承受的負載,留給運行應用程序的CPU資源很少或根本沒有。
- 傳統網卡固定功能的流量處理功能無法適應SDN和NFV。
在SmartNIC出現之前,解決這些問題的方法大概有:
- 使用英特爾開放網絡平臺,DPDK用作加速手段,但處理過程依賴于未針對數據傳輸進行優化的服務器和標準NIC,這是一個瓶頸,由于吞吐量性能低下,并且需要大量的CPU內核/資源,因此將導致服務器數量增加。
- 使用網卡支持的PCI Express單根IO虛擬化(SR-IOV)技術,允許網卡將物理端口映射為多個虛擬端口或虛擬功能(VF),使得每個虛擬端口都可以綁定到VM,這樣吞吐量性能和CPU使用效率得到改善,但靈活性卻降低了,復雜性也增加了;并且,大多數網卡最多有效支持1GbE端口的8-16個虛擬端口和10GbE端口的40-64個虛擬端口。
目前最有效的硬件方法Smart NIC,將虛擬交換機功能完全從服務器CPU轉移到網卡,釋放昂貴的服務器CPU的計算能力以返回給應用程序,從而更好地擴展網卡功能并提供更高的性能。SmartNIC的存在能夠:
- 實現基于服務器的復雜網絡數據平面功能,例如,包括多匹配操作處理、計量整形、流統計等。
- 通過更新的固件負載或客戶編程來支持可替代的數據平面,對執行的功能幾乎沒有預先設定限制。
- 與現有的開源生態系統無縫協作,以最大程度地提高軟件功能的速度和影響力。
SmartNIC可以執行加密/解密、防火墻、TCP / IP和HTTP處理,非常適合高流量的Web服務器。
智能網卡的N種分類方式
智能網卡之所以“智能”,即是擁有可編程能力,它并沒有固定的分類方式,你可以根據智能網卡設計采用形式,將它分為:
- 多核智能網卡,基于包含多個CPU內核的ASIC
- 基于現場可編程門陣列(FPGA)的智能網卡
- FPGA增強型智能網卡,它將硬件可編程FPGA與ASIC網絡控制器相結合
也可以根據其加速不同的工作負載將它分為:
- 基本連接NIC
- 面向網路加速的智能網卡
- 面向存儲加速的智能網卡
同時,由于不同的供應商的架構不同,因此SmartNIC可以基于ASIC、FPGA和片上系統(SOC)。
不同的實現方式在成本、可編程性和靈活性方面各有優劣。
- ASIC具有價格優勢,但靈活性有限,盡管基于ASIC的NIC相對容易配置,但最終功能將受到基于ASIC中定義的功能的限制,這可能會導致某些工作負載無法得到支持。
- 相比之下,FPGA NIC是高度可編程的,并且可以相對有效地支持幾乎任何功能,不過眾所周知的是,FPGA最大的問題是編程難度大且價格昂貴。
- 針對更復雜的用例,SOC是最佳的SmartNIC選擇,價格與性能兼具、易于編程且高度靈活。
可編程還是性能,二者如何抉擇?
從理論上來說若想兼顧高性能和智能,一個最優的智能網卡架構應將不同場景下各網絡協議棧都需具備的相同處理邏輯固化成專用ASIC芯片,而將其余隨場景變化的處理邏輯通過可編程芯片定制化實現。
然而現實面對的困難是,目前對網絡協議棧各層的功能沒有一個很好的模塊化抽象,各層內的各個處理邏輯之間甚至跨層的部分邏輯之間都依據場景高度耦合,難以提取有意義的共性和特性邏輯分別由ASIC和可編程芯片處理。現有智能網卡要想具備足夠的可編程能力,能應對各種場景,只能將從上到下各層幾乎所有的邏輯都交由可編程芯片實現,犧牲了性能。
若想突破此難題,一種可行的思路是從模塊化的角度出發重構現有網絡協議棧,在其各層協議中清晰地抽象出共性功能模塊以及可依據場景定制的特性模塊。從網卡設計的角度出發,區分各種場景下的網絡協議棧中到底哪些部分可以由ASIC固化、哪些部分需要靈活地定制邏輯。
智能網卡的應用場景
SmartNIC用例包括虛擬化軟件定義存儲、超融合基礎設施以及其他云資源。
在虛擬化爆發之前,大多數服務器只是運行本地存儲,這雖然不是很高效,但是很容易使用。然后是網絡存儲的興起——SAN、NAS,以及NVMe over Fabrics(NVMe-oF)。但是,并非每個應用程序都可識別SAN,并且某些操作系統和虛擬機管理程序(例如Windows和VMware)尚不支持NVMe-oF。SmartNIC可以虛擬化網絡存儲,效率更高、更易于管理,且應用程序更易于使用。 SmartNIC甚至可以虛擬化GPU(或其他神經網絡處理器) ,這樣任何服務器都可以在需要的時候通過網絡訪問任意數量的GPU。
軟件定義存儲和超融合基礎設施都使用管理層(通常作為VM或作為虛擬機管理程序本身的一部分運行)來虛擬化和抽象化本地存儲和網絡,以使其可用到群集中的其他服務器或客戶端,能夠實現快速部署,有利于共享存儲資源,但是管理和虛擬化層占用了本應運行應用程序的CPU周期。與標準服務器一樣,網絡運行的速度越快,存儲設備的速度越快,則必須投入更多的CPU來虛擬化這些資源。
SmartNIC一方面可以卸載并幫助虛擬化網絡(加速私有云和公共云,這就是為什么它們有時被稱為CloudNIC)的原因,另一方面可以卸載網絡和大部分的存儲虛擬化,可以減輕SDS和HCI的功能負擔,例如壓縮、加密、重復數據刪除、RAID、報告等。
超融合架構數據中心中,Smart NIC為SDN和虛擬化應用程序提供硬件加速與網絡接口緊密結合,并可分布在大型服務器網絡中,減小CPU負載,提供額外的邊緣計算能力,加速特定應用和虛擬化功能,并且通過正確的語言和工具鏈支持,為用戶提供應用加速即服務的附加價值。
白盒作為最受歡迎的COTS硬件,可以加入插件實現軟件定義網絡(SDN)和網絡功能虛擬化(NFV)的各種計算和網絡功能。Smart NIC可以將代碼從CPU引入網卡,顯著加速用于安全應用的加密/解密或用于深度包檢測(DPI)應用程序,降低CPU負載,并且支持靈活的網絡可編程性。
各顯神通的廠商
目前業界提供基于FPGA的Smart NIC的廠商包括Accolade、BittWare、Enyx、Ethernity、Napatech、Netcope、Reflex CES、Silicom和Solarflare,通常集成自Intel或Xilinx的FPGA來實現。此外,Broadcom,Cavium,Intel,Kalray,Mellanox,Netronome,Silicom和SolidRun均可提供基于處理器的Smart NIC,使用帶有集成處理器內核或FPGA的處理器或智能I/O處理器;亞馬遜和谷歌已經開發了Smart NIC ASIC。
賽靈思
今年3月,賽靈思發布了其首款“一體化SmartNIC(智能網卡)平臺”——Alveo U25的數據中心加速卡,在單顆器件上實現了網絡、存儲和計算加速功能的融合。
隨著網絡端口速度不斷攀升,2 級和 3 級云服務提供商、電信和私有云數據中心運營商正面臨日益嚴峻的聯網問題和聯網成本挑戰。與此同時,開發和部署 SmartNIC 所需的大量研發投資,也成為其被廣泛采用的障礙。
依托于賽靈思業界領先的 FPGA 技術,Alveo U25 SmartNIC 平臺相比基于 SoC 的 NIC,可以提供更高的吞吐量和更強大的靈活應變引擎,支持云架構師快速為多種類型的功能與應用提速。
Intel
2015年6月,Intel 宣布以 167 億美元的價格收購全球第二大 FPGA 廠商 Altera,成為該公司有史以來最貴的一筆收購,隨后Intel 也在 Altera 的基礎上成立了可編程事業部,且一直在推進 FPGA 與至強處理器的軟硬件結合,但卻并沒有能夠進入大規模商用階段。
三年后,Intel終于踏出了歷史性的一步。2019年4月19日,Intel 宣布旗下的 FGPA 已經被正式應用于主流的數據中心 OEM 廠商中。具體來說,戴爾 EMC PowerEdge R640、R740 和 R740XD 服務器集成了 Intel FPGA ,并且已經可以進行大規模部署;而富士通即將發布的 PRIMERGY RX2540 M4 也采用了 Intel FGPA 的加成,這款產品即將發布,并已經支持重點客戶提前使用。
上述FGPA主要指的是 Intel Arria 10 GX 可編程加速卡(Programmable Acceleration Card,簡稱 PAC),同時Intel 還為 OME 廠商提供一個面向包含 FPGA 的 Intel 至強可擴展處理器的 Intel 加速堆棧。二者結合起來,就形成了一個完整的硬軟件結合 FPGA 解決方案。
邁絡思
Mellanox是面向數據中心服務器和存儲系統的高性能、端到端智能互連解決方案的領先供應商,今年3月,邁絡思宣布,ConnectX-6 Dx 智能網卡全面上市, BlueField-2 IPU(I/O 處理單元) 也將很快上市。這兩款產品都擁有一系列先進的安全加速引擎和平臺安全功能,助力公有云、內部私有云和邊緣計算環境構建大規模、高度安全可靠且高效的數據中心基礎架構。
ConnectX-6 Dx 和 BlueField-2 在分布式的零信任安全體系架構中發揮著重要作用,它們將傳統的邊界防護擴展到每個端點。通過將先進的 IPsec 和 TLS 加密加速技術與領先的開源上游軟件解決方案相結合,使用戶和合作伙伴可以在新建的及現有的數據中心環境中利用創新的硬件加速功能。
博通
博通的Stingray SmartNIC SoC系列具有集成的全功能100G NIC,強大的8核CPU,運行在3 GHz下,支持數據包處理(Truflow?)、加密、RAID和重復數據刪除(FlexSPARX?)等硬件引擎,是用于主機卸載、裸機服務和網絡功能虛擬化的理想SmartNIC解決方案。
今年4月,百度云宣布正在與博通緊密合作,利用Stingray SmartNIC的可編程性,提供高級的云原生應用、網絡功能虛擬化和分布式安全。博通的Stingray適配器提供8個ARM A72 CPU內核,運行在3GHz、300G內存帶寬和100G NetXtreme Ethernet網卡上。
微軟
Azure加速網絡(AccelNet)是使用基于FPGA的自定義Azure SmartNIC將主機網絡卸載到硬件的解決方案。自2015年底以來,微軟已在超過100萬臺主機的新Azure服務器上部署了實施AccelNet的Azure SmartNIC。自2016年以來,AccelNet服務已向Azure客戶提供,提供一致的<15μs VM-VM TCP延遲和32Gbps吞吐量。
2014年,微軟在計算機架構領域的頂會ISCA上發表了一篇名為“A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services”的論文,詳細介紹了微軟Catapult項目團隊如何在其數據中心里的1632臺服務器中部署了英特爾StraTIx V FPGA,并用FPGA對必應(Bing)搜索引擎的文件排名運算進行了硬件加速,得到了高達95%的吞吐量提升。這標志FPGA不再僅僅是硬件公司的專屬產品,而是可以有效的應用于像微軟這樣的互聯網公司,并有機會部署在谷歌、亞馬遜、阿里等其他互聯網巨頭的服務器中。微軟也是第一個在公有云基礎設施中部署FPGA的主要云服務提供商。
總結
據預測,到2024年,SmartNIC市場規模將超過6億美元,占全球以太網適配器市場的23%。云服務提供商的不斷縱向擴容敦促著他們持續增加 SmartNIC 的部署,而電信服務提供商則是另一大潛力的市場,他們正考慮將 SmartNIC 從核心網集成到邊緣網,為 NFV和AI推斷等應用提供服務。未來,SmartNIC市場或超百億。
參考:
http://www.360doc.com/content/19/1119/19/99071_874191772.shtml
https://www.xianjichina.com/special/detail_416035.html
https://www.jianshu.com/p/1dac8f9a58b0
https://cloud.tencent.com/developer/news/429374
https://blog.mellanox.com/2018/08/defining-smartnic/
https://blog.mellanox.com/2018/09/why-you-need-smart-nic-use-cases/
注:本文圖片源自網絡,如有侵權請聯系刪除
總結
以上是生活随笔為你收集整理的从网络虚拟化,看智能网卡发展史的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 辽宁自考计算机及应用,辽宁2010年自考
- 下一篇: What?外星人电脑大放价?双十一来杭州