随着信息技术的高速发展,“云计算”成为了关注的热点。通过“云计算”,数以万计的数据将在极短时间内得到运算,从而实现相应的网络服务。基于这样的高数据流量的需求,智能网卡(Smart NIC)得以面世,有效疏解了“云计算”技术发展时所面临的问题。
智能网卡的诞生
越来越多的云数据中心的建立使得云上业务愈发地普及、云数据量也在呈井喷式增长,巨大的数据量使得用内核转发的虚拟交换机的收发分组问题日益凸显,尽管通过有效的软件加速方案可以在一定程度上提高转发性能,但是问题仍然没有得到彻底的解决。
首先,虚拟交换机大量地占用着宿主机的资源,比如CPU核。当数据量大时,虚拟交换机为了保证转发质量会绑定多个CPU核,使得原本可以被合理利用于其它任务的宿主机资源被过度占用,造成了企业成本的浪费。
而且,虽然CPU Affinity和IRQ Affinity等手段在一定程度上可以优化转发性能,但是高网络宽带应用需求的快速增长致使虚拟交换机难以依靠纯软件解决方案来实现有效的转发性能的提升,虚拟交换机需要进一步提速。
基于以上的问题和需求,智能网卡(Smart NIC)得以产生。
相比普通CPU,智能网卡在实现对网络虚拟化功能的支持时可以节约大量成本,如在进行SR-IOV、Overlay Encap/Decap以及部分虚拟交换机处理逻辑的卸载时。而且智能网卡作为硬件,具有处理速度快、性能稳定的优点。
此外,智能网卡是数据流进出的首个关口,可以实现监控、嗅探、避免网络攻击和安全隔离的作用。特别的,智能网卡的存在使计算与网络资源得以解耦,利于云服务商拓展自身能力和覆盖领域、满足各方个性化的需求。
智能网卡与普通网卡的区别与改进
不同于普通网卡只负责L2转发,增加一定逻辑后的智能网卡还可实现部分虚拟交换机的功能。此外,智能网卡可以实现对部分网络流量的卸载,比如智能网卡可以对网络数据进行分组头的解析,从而达到提高网络吞吐量、减少虚拟交换机负载的目的。并且,为实现高性能网络转发,智能网卡可以与虚拟交换机配合以实现虚拟交换机的逻辑,从而减少宿主机服务器资源的占用。
智能网卡的技术路线
目前主流的智能网卡按照架构大致可以分为ASIC Based、FPGA Based和SoC Based三种类型。ASIC Based智能网卡是基于专用芯片进行网络加速核心的智能网卡,拥有专用电路,在布局布线和时钟树综合等方面有优势,但是开发周期长,且成品后逻辑不可改。FPGA Based智能网卡是基于FPGA卡来实现智能网卡的功能,可以通过FPGA编程以修改智能卡的逻辑,灵活性好但成本较高。SoC Based智能网卡是基于前两种智能网卡集成的CPU处理器,该种智能网卡成本最高,但是可实现虚拟层零消耗,有重要的实用价值。故可得,ASIC Based智能网卡成本低、性能优,FPGA Based智能网卡灵活性高、但成本高且编程难度大,SoC Based智能网卡则较二者提供了性能和可操控性兼具的可能。
结语
云计算的普及带来了数据流量的迅速增大,这使得对虚拟网络性能提高的需求变得日益迫切。服务器的内核是传统虚拟网络技术的转发能力所主要依赖的,通过一些软件加速技术可以在一定程度上改善虚拟网络的转发技能,但是仍然会在CPU上造成许多成本和资源上的浪费,纯依赖软件来解决困局的方案并不能满足日益增长的高网络宽带应用的需求。智能网卡的出现使得解决问题的方式上升到了硬件层面,凭借智能网卡的硬件卸载功能,可以达到为CPU减少负荷的作用,从而清腾出更多的CPU资源,并且智能网卡可以实现计算资源和网络资源的分离,显著提升了应用性能,并使得云服务商可以更好地拓展业务、满足不同需求。
目前市面上三种主流的智能网卡各有利弊,随着信息技术的进步,智能网卡将得到进一步的提升,而这种基于硬件的创新也将是未来云计算网络架构筑成的重点研究方向。