技术积累之OVS DPDK

OVS DPDK

OVS:

OVS
(openvswitch)是开源的虚拟交换机。也是当前市场上云环境中部署份额最大的交换机。支持 openflow协议,ovsdb协议管理。

一个OVS实例包括,ovsdb-server、ovs-vswitchd、datapath快转模块(linux内核中实现,可选的。dpdk模式是在用户态实现快转,并不需要内核态的datapath模块)。

DPDK(Data Plane Development Kit)
是一组快速处理数据包的开发平台及接口。有intel主导开发,主要基于Linux系统,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。

ovs框架:

  • ovsdb-server:作用是对ovsdb操作。
  • ovs-vswitchd:核心模块,作用是实现OpenFlow交换机、和controller通信、和db通信、实现用户态转发、和内核态快转路径通信。
  • datapath:在内核空间实现报文快速转发。

ovs包括ovsdb配置管理方式和openflow流表转发控制方式。

ovsdb配置管理方式:管理者通过OVSDB管理协议管理OVS交换机。OVSDB管理协议的规范文件是RFC 7047(The Open vSwitch Database Management Protocol)。RFC7047主要包括,定义OVSDB的结构、交互协议(JSON-RPC)、DB的操作类型。
openflow流表控制方式:controller控制器通过OpenFlow协议给OVS交换机下发流表,控制交换机的转发行为。controller不通过OVSDB,而是直接向OVS交换机下发流表。

 核心组件及其关联关系

ovsdb-server和ovs-vswitchd之间是通过socket交互信息。

ovs-vswitchd通过netlink和内核态快转模块通信。

比如通过ovs-vsctl命令增加ovs交换机接口,ovs-vsctl会通过ovsdb-server向ovsdb更新数据,ovs-vswitchd监测到ovsdb变化时,会更新交换机配置,比如添加接口。

dpdk方式的ovs除了不使用内核模块外,架构和图中相同。

 内部模块及其关联关系

为了有个整体的了解,下面列几张整体的架构图,不做详细解释,后文会有流程解释。

3:OVS+DPDK

 DPDK加速的OVS与原始OVS的区别在于,从OVS连接的某个网络端口接收到的报文不需要openvswitch.ko内核态的处理,报文通过DPDK PMD驱动直接到达用户态ovs-vswitchd里。

DPDK加速的OVS数据流转发的大致流程如下:
1.OVS的ovs-vswitchd接收到从OVS连接的某个网络端口发来的数据包,从数据包中提取源/目的IP、源/目的MAC、端口等信息。
2.OVS在用户态查看精确流表和模糊流表,如果命中,则直接转发。
3.如果还不命中,在SDN控制器接入的情况下,经过OpenFlow协议,通告给控制器,由控制器处理。
4.控制器下发新的流表,该数据包重新发起选路,匹配;报文转发,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值