一、前言

根据文章《DPDK系列之十一:容器云的数据通道加速方案概览》和文章《DPDK系列之十二:基于virtio、vhost和OVS-DPDK的容器数据通道》的分析,部署在物理机或者虚拟机上的容器可以有多种方案来进行数据通道的加速。而类似SR-IOV的方案需要特定NIC硬件的支持并且在容器迁移灾备方面没有太大的灵活性,所以本文主要对于基于virtio-user(virtio PMD)和vhost-user的方案进行分析:对于不同平台部署的不同目的的容器应用,应该如何选择基于virtio和vhost加速通道,以及中间的数据通道开销。

转载自https://blog.csdn.net/cloudvtech

二、基于物理机部署的容器

2.1 基于内核TCP/IP的应用容器

这种容器内部没有virtio PMD程序运行,所以只能连接传统的OVS端口,但是可以通过设置OVS流表,将这些数据传输到基于DPDK PMD的type=dpdk的端口,这样可以在数据传输出去的后半程使用DPDK加速。这种情况下,前半程还是需要经由容器宿主机的内核协议栈进行容器内数据路由处理,进入OVS端口并进行转发到OVS DPDK PMD绑定的NIC端口之后,就进入了DPDK高速通道。

2.2 基于virtio PMD的应用容器

这种容器可以直接通过virtio PMD连接OVS-DPDK建立的dpdkvhostuser端口,再经过OVS流表配置,可以进行东西向和南北向的数据通道加速,整个过程by-pass宿主机的内核。

转载自https://blog.csdn.net/cloudvtech

三、基于虚拟机部署的容器

这种情况下下,所有容器被部署在一个master虚拟机里面,这个虚拟机不同于一起部署在同一个宿主机上的其它虚拟机的是它被连接到一个或者多个dpdkvhostuser端口,这个端口经过OVS流表配置,可以和其它virtio网络设备进行用户空间数据直接交互。

3.1 基于内核TCP/IP的应用容器

这种容器可以直接借助内核协议栈进行应用层数据的收发,数据经过虚拟机到达dpdkvhostuser端口的时候,后面根据流表配置,可以在用户空间直接转发到其它virtio/vhost设备,或者经由OVS PMD绑定的NIC端口流出主机。

3.2 基于virtio PMD的应用容器

这种容器直接使用虚拟机绑定的dpdkvhostuser端口,virtio PMD可以直接和这个虚拟网卡交互控制信息和数据,实现全程的DPDK高速通道。

转载自https://blog.csdn.net/cloudvtech



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐