专访UCloud徐亮:UCloud虚拟网络的演进之路
1、 与DPDK相比,有更高的转发性能。DPDK基本上用网卡的方式,单机10G或者25G的性能。对于可编程交换机来说,起步就是1.8T到6.5T的性能,相对于DPDK在性能上是几十倍甚至接近一百倍的提升。而且交换机的时延更低,它的单根网线支持100G,基本上可以避免单线被拥塞的效果。 2、 交换机的转发性能是很稳定的,并且是可以预期的,而DPDK的转发性能随业务模型可能会发生变化。 3、 与其他硬件交换机相比,可编程P4交换机更开放。可编程能力强,可以定制转发面整个处理包的p4lang。可编程P4交换机可以完美解决Ethernet Over GRE和Flow Based Tunneling的问题。用P4语言写程序,比用DPDK的C语言写程序更简单,开发效率更高。可编程P4交换机基本上采用gRPC的接口进行远程的管理,操作系统采用 Open Network Linux(基于Debian),这使交换机更像一个传统的服务器。另外相对于其他交换机,可编程P4交换机有一个生态圈,有P4 Runtime、Stratum这样的开源社区,更好的促进交换机的发展。 目前UCloud采用P4可编程交换机完成了一个新增的核心Gateway的开发和测试工作,已经开始部署和灰度上线。 智能网卡方案 同期,在计算节点上,UCloud也在探索如何解决25G网络带来的性能挑战。 在VMware主宰虚拟化的早期阶段,通过VLAN实现租户隔离,通过SRIOV的方式将硬件网卡虚拟化成多张虚拟网卡供虚拟机使用,是非常成熟而高效的解决方案。采用SRIOV的方式,虚拟机可以获得物理网卡95%以上的PPS性能。但12位的VLAN只能支持最大4094个租户,并不能满足公有云的需求,而二层的组网方式也不适合公有云的大规模数据中心。几乎所有的公有云都是采用的Overlay的解决方案。而Overlay的方案相对VLAN要复杂很多,大多数新一代非智能网卡的ASIC芯片目前仅可以完成VXLAN的封装和解封装工作,但虚拟机所在的宿主机地址信息需要控制面提供,使得SRIOV技术在Overlay的网络里完全无用武之地。 基于DPDK的vSwitch方案对比基于Linux Kernel的vSwitch,在报文转发性能上提升了几倍。通过DPDK的Vhost Library,VM的网络报文可以通过Virtio虚拟网卡,以Zero Copy的方式到达宿主机上的vSwitch进行处理。宿主机上的vSwitch根据控制面信息了解目的MAC或者IP所在的宿主机信息,然后加上Overlay封装高速转发。但代价是绝大多数网卡只能支持Busy Poll的DPDK工作方式,无论虚拟机当前的PPS是多少,DPDK都会占用固定的CPU Cores,而这部分计算资源原本在闲时是可以出售的。 而智能网卡(SmartNIC)的目标就是将网络转发所占用的宿主机计算资源释放出来,从而达到降低TCO的目标。目前智能网卡的实现百花齐放,例如:AWS采用基于通用ARM的众核方案、AZure采用基于FPGA的方案、华为云采用基于专用网络处理器(NP)的方案、阿里云采用基于可编程ASIC芯片的方案。就目前来看各个方案各有优势,并没有特别突出一统天下的方案。 基于通用ARM、MIPS的众核方案,简单将原来跑在宿主机上的vSwitch移植到网卡上,既可以支持Linux Kernel也可以支持DPDK,从而达到释放宿主机计算资源的目的。其他基于FPGA、NP和可编程ASIC的方案,大多在网卡上维护一个快速转发路径(FastPath),当收到报文后,首先检查是否在FastPath已经缓存了该类报文的处理规则,如果找到,则直接按照规则执行动作,否则就转发到SlowPath去处理。而这个SlowPath可以是DPDK,也可以是Linux Kernel。因此,FastPath最重要的是看是否支持足够多的Action,以及自定义Action的可扩展性。SlowPath和FastPath通信除了各厂商的私有接口外,也有标准的TC Offload接口和DPDK提供的RTE Flows接口。 (编辑:宿州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |