DPDK的虚拟交换机框架OvS

DPDK简介

DPDK是X86平台报文快速处理的库和驱动的集合,不是 网络协议栈,不提供二层,三层转发功能,不具备防火墙ACL功能,但通过DPDK可以轻松的开发出上述功能。

DPDK的优势在于,可以将用户态的数据,不经过内核直接转发到网卡,实现加速目的。主要架构如图所示:.

传统的socket方式与DPDK对比:

DPDK关键技术点:

  1. 使用大页缓存支持来提高内存访问效率。

  2. 利用UIO支持,提供应用空间下驱动程序的支持,也就是说网卡驱动是运行在用户空间 的,减小了报文在用户空间和应用空间的多次拷贝。

  3. 利用LINUX亲和性支持,把控制面线程及各个数据面线程绑定到不同的CPU核,节省了线程在各个CPU核来回调度。

  4. LOCKLESS, 提供无锁环形缓存管理,加快内存访问效率。

  5. 收发包批处理 ,多个收发包集中到一个cache line,在内存池中实现,无需反复申请和释放。

  6. PMD驱动,用户态轮询驱动,可以减小上下文切换开销,方便实现虚拟机和主机零拷贝。

OVS+DPDK

OpenvSwitch 以其丰富的功能,作为多层虚拟交换机,已经广泛应用于云环境中。Open vSwitch的主要功能是为物理机上的VM提供二层网络接入,和云环境中的其它物理交换机并行工作在Layer 2。

传统host ovs工作在内核态,与guest virtio的数据传输需要多次内核态和用户态的数据切换, 带来性能瓶颈.

Ovs+Dpdk和Ovs本身之间的区别可以由下图简单来表示:

在早期OVS的版本中,为缓解多级流表查表慢的问题,OVS在内核态采用Microflow Cache方法。Microflow Cache是基于Hash的精确匹配查表(O(1)),表项缓存了多级查表的结果,维护的是每条链接粒度的状态。Microflow Cache减少了报文进用户态查多级表的次数。一条流的首报文进入用户态查表后,后续的报文都会命中内核中的Microflow Cache,加快了查表速度。但是对于大量短流的网络环境来说,Microflow Cache命中率很低,导致大部分报文仍然需要到用户态进行多级流表查找,因此转发性能提升有限。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值