一种基于OVS的实时虚拟网络的实现方法技术

技术编号:24333894 阅读:42 留言:0更新日期:2020-05-29 21:13
一种基于OVS的实时虚拟网络的实现方法,针对虚拟网络带宽与实际物理网络相同但转发效率低问题,通过DPDK插件快速处理数据包,解决了虚拟网络交换机工作时内存需要受操作系统的管理、容易受到操作系统中断及永和空间切换影响的问题,节省了CPU中断时间又省去了内存拷贝时间,极大提高了网络IO的吞吐量。

A real-time virtual network implementation method based on OVS

【技术实现步骤摘要】
一种基于OVS的实时虚拟网络的实现方法
本专利技术涉及一种基于OVS的实时虚拟网络的实现方法,属于虚拟化

技术介绍
经过多年的发展,云计算已经逐步成熟,在整个云数据中心中,网络是所有设备互联互通的关键所在,网络的性能可以影响整个数据中心的运行效率。在云计算中虚拟机通过OVS虚拟机交换机与外部通信,由于虚拟化本身有性能损耗,虽然虚拟机网络带宽与实际物理硬件相同,但是网络延时还是比物理硬件高,网络的实时性相对较差。在工业控制或军用领域,网络的实时性要求非常高,如何提高虚拟网络的实时性,已成为当前云计算推广的关键所在。硬件交换机因为有专门的转发硬件,可以保证任意时间都有一定的资源用于转发。但是OVS在操作系统内核空间实现转发,本质上是通过操作系统内的几个进程来完成工作。操作系统会像对待其他进程一样,将CPU的部分时间片,而不是整个CPU分配给虚拟交换机,内存也需要受操作系统的管理,这就存在资源抢占的可能。所以,虚拟交换机并不能保证在需要转发网络数据的时候一定占有资源。另一方面,因为操作系统本身的设计,需要经过硬中断,软中断,内核空间和用户空间的切换来完成网络数据的传输,通过内核进行转发使得网络数据在操作系统内的路径也很长。所以基于内核实现的虚拟交换机OVS,会对网络性能带来额外的损耗。
技术实现思路
本专利技术解决的技术问题是:针对目前现有技术中,虚拟网络交换机工作时内存需要受操作系统的管理、容易受到操作系统中断及永和空间切换影响的问题,提出了一种基于OVS的实时虚拟网络的实现方法。<br>本专利技术解决上述技术问题是通过如下技术方案予以实现的:一种基于OVS的实时虚拟网络的实现方法,步骤如下:(1)安装部署OVS虚拟交换机,于OVS虚拟交换机上安装DPDK插件,进行DPDK的优化配置;(2)于物理网卡接收数据包,于Datapath中判断是否可以直接转发该数据包,若于Datapath缓存记录中找到接收记录,则将该数据包向外转发;若未找到接收记录,则对数据包目的端口进行确认,根据配置的流表策略获取目的端口的转发规则,并根据所得转发规则进行转发;(3)于Linux系统中配置用于提高内存访问率的大页缓存,同时于系统中配置UIO,安装应用空间下所需驱动程序;(4)将不同控制面线程、数据面线程绑定至不同CPU核,同时配置无锁环形缓存管理,同时使用收发包批处理功能处理数据;(5)利用用户态轮询驱动实现虚拟机和主机零拷贝。所述驱动程序为网卡驱动,于用户空间运行以减小报文在用户空间与应用空间的拷贝次数。所述步骤(2)中,对数据包目的端口进行确认的具体步骤为:若于Datapath缓存记录中未找到接收记录,直接通过DPDKlib将数据发送到用户空间的vswitchd,同时操作openflow流表,实现与ovsdb以及ovs-ofctl交互,并通过vswitchd检查ovsdb数据库以查看数据包的目的端口。所述步骤(2)中,根据数据包的目的端口获取数据转发规则的具体方法为:通过OpenFlow协议向OVS交换机下发FlowTable流表,控制交换机的根据FlowTable进行转发,其中:FlowTable流表不同流表项组成,每个流表项均为一个转发规则。进入交换机的数据包通过查询流表来获得转发的目的端口。流表项由头域、计数器和指令集组成;其中头域为十元组,即流表项的标识;计数器用于计算流表项的统计数据;指令集标明了与该流表项匹配的数据包应该执行的操作。所述虚拟机与主机间数据传输通过用户态vhost-backend程序实现零拷贝。所述OVS虚拟交换机采用virtio虚拟网卡,并通过DPDK插件进行虚拟机的网络优化,使虚拟机网络直接连通外部网络。本专利技术与现有技术相比的优点在于:本专利技术提供的一种基于OVS的实时虚拟网络的实现方法,通过DPDK的实现原理,改造OVS虚拟交换机,让OVS虚拟交换机可以使用DPDK的加速手段,用户态进程直接接管网卡收发数据,采用每个端口分配一个核专门用于数据收发,轮询式处理方式代替中断式处理的“IO独占核”技术,显著提高IO性能,同时采用virtio网卡,并采用DPDK优化,将原本需要在内核中处理的内容,全部提到用户空间,减少中断及数据拷贝的时间损耗,提高网络的实时性,保证了虚拟机中网络的实时性。附图说明图1为专利技术提供的OVS虚拟实时网络实现方法流程图;具体实施方式一种基于OVS的实时虚拟网络的实现方法,通过DPDK的实现原理,改造OVS虚拟交换机,让OVS虚拟交换机可以使用DPDK的加速手段,用户态进程直接接管网卡收发数据,具体步骤包括:(1)安装部署OVS虚拟交换机,于OVS虚拟交换机上安装DPDK插件,进行DPDK的优化配置;(2)于物理网卡接收数据包,于Datapath中判断是否可以直接转发该数据包,若于Datapath缓存记录中找到接收记录,则将该数据包转发给XXX;若未找到接收记录,则对数据包目的端口进行确认,根据配置的流表策略获取目的端口的转发规则,并根据所得转发规则进行转发;(3)于Linux系统中配置用于提高内存访问率的大页缓存,使用大页缓存支持来提高内存访问效率,同时于系统中配置UIO,安装应用空间下所需驱动程序,即网卡驱动是运行在用户空间,减小了报文在用户空间和应用空间的多次拷贝;(4)将不同控制面线程、数据面线程绑定至不同CPU核,节省了线程在各个CPU核来回调度,同时配置无锁环形缓存管理,同时使用收发包批处理功能处理数据,多个收发包集中到一个cacheline,在内存池中实现,无需反复申请和释放;(5)利用用户态轮询驱动实现虚拟机和主机零拷贝,可以减小上下文切换开销,方便实现虚拟机和主机零拷贝。在上述流程中,使用DPDK优化后,OVS所有的工作全部在用户态完成,使虚拟机到虚拟机和物理网卡到虚拟机的整个数据传输都工作在用户态,极大的提升了OVS的性能;同时,当接收数据包到达网卡后,上传给Datapath,Datapath会检查缓存中的精确流表是否可以直接转发这个包,如果在缓存中没有找到记录,直接通过DPDKlib将数据发送到用户空间的vswitchd,vswitchd检查数据库以查看数据包的目的端口,需要操作openflow流表,实现与ovsdb以及ovs-ofctl交互,获取数据包精确转发规则后,按规则进行数据包转发,根据上述转发规则进行转发后,OVS虚拟交换机的实时性将得到大幅度提升。为了更好的提升虚拟机的网络实时性,不仅要提升OVS虚拟交换机的实时性,还要提升虚拟网卡的实时性,结合vhost-user技术的优势,利用用户态vhost-backend程序,从虚拟机到物理机上实现数据零拷贝,即zerocopy,显著降低了虚拟机与物理机的数据交换时间,提高虚拟网卡的实时性。下面结合具体实施例进行进一步说明:如图1所示,安装部署OVS虚拟交换机,并于OVS虚本文档来自技高网...

【技术保护点】
1.一种基于OVS的实时虚拟网络的实现方法,其特征在于步骤如下:/n(1)安装部署OVS虚拟交换机,于OVS虚拟交换机上安装DPDK插件,进行DPDK的优化配置;/n(2)于物理网卡接收数据包,于Datapath中判断是否可以直接转发该数据包,若于Datapath缓存记录中找到接收记录,则将该数据包向外转发;若未找到接收记录,则对数据包目的端口进行确认,根据配置的流表策略获取目的端口的转发规则,并根据所得转发规则进行转发;/n(3)于Linux系统中配置用于提高内存访问率的大页缓存,同时于系统中配置UIO,安装应用空间下所需驱动程序;/n(4)将不同控制面线程、数据面线程绑定至不同CPU核,同时配置无锁环形缓存管理,同时使用收发包批处理功能处理数据;/n(5)利用用户态轮询驱动实现虚拟机和主机零拷贝。/n

【技术特征摘要】
1.一种基于OVS的实时虚拟网络的实现方法,其特征在于步骤如下:
(1)安装部署OVS虚拟交换机,于OVS虚拟交换机上安装DPDK插件,进行DPDK的优化配置;
(2)于物理网卡接收数据包,于Datapath中判断是否可以直接转发该数据包,若于Datapath缓存记录中找到接收记录,则将该数据包向外转发;若未找到接收记录,则对数据包目的端口进行确认,根据配置的流表策略获取目的端口的转发规则,并根据所得转发规则进行转发;
(3)于Linux系统中配置用于提高内存访问率的大页缓存,同时于系统中配置UIO,安装应用空间下所需驱动程序;
(4)将不同控制面线程、数据面线程绑定至不同CPU核,同时配置无锁环形缓存管理,同时使用收发包批处理功能处理数据;
(5)利用用户态轮询驱动实现虚拟机和主机零拷贝。


2.根据权利要求1所述的一种基于OVS的实时虚拟网络的实现方法,其特征在于:所述驱动程序为网卡驱动,于用户空间运行以减小报文在用户空间与应用空间的拷贝次数。


3.根据权利要求1所述的一种基于OVS的实时虚拟网络的实现方法,其特征在于:所述步骤(2)中,对数据包目的端口进行确认的具体步骤为:
若于Datapath缓存记录中未找到接收记录,直接通过DPDKlib...

【专利技术属性】
技术研发人员:李国兵张哲卫宁周江福陈卓王晔李琦刘毅枫
申请(专利权)人:中国船舶工业系统工程研究院
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1