传统网卡实现的是L1-L2(物理层和数据链路层)的逻辑,其他的操作需要CPU介入。在这种模式下,大约有30%的算力用于处理网络数据包。为了满足网络的高速处理,现代网卡实现了部分L3-L4的功能,进一步卸载CPU的压力。随着SDN/NFV等新兴技术的兴起,传统的网卡已经不能高效的处理网络包,尤其是在服务器领域。
缺点如下:
- 随着Open vSwitch等虚拟化技术的引入,网络数据平面的复杂度急剧增加
- 需要耗费大量的计算资源来处理网络包
DPDK作为网络加速方法,被大量的应用,但是其还是需要大量的算力。在虚拟化环境中,将网卡passthru给VM,可以达到高性能,但是这也丧失了灵活性,如vmotion。
smartnic的出现就是为了解决以上痛点,卸载workload到smartnic,不仅仅是networking,还可以包括storage和security