CN111211999A - 一种基于ovs的实时虚拟网络的实现方法 - Google Patents

一种基于ovs的实时虚拟网络的实现方法 Download PDF

Info

Publication number
CN111211999A
CN111211999A CN201911193584.8A CN201911193584A CN111211999A CN 111211999 A CN111211999 A CN 111211999A CN 201911193584 A CN201911193584 A CN 201911193584A CN 111211999 A CN111211999 A CN 111211999A
Authority
CN
China
Prior art keywords
ovs
flow table
data
data packet
virtual network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911193584.8A
Other languages
English (en)
Inventor
李国兵
张哲�
卫宁
周江福
陈卓
王晔
李琦
刘毅枫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CSSC Systems Engineering Research Institute
Original Assignee
CSSC Systems Engineering Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CSSC Systems Engineering Research Institute filed Critical CSSC Systems Engineering Research Institute
Priority to CN201911193584.8A priority Critical patent/CN111211999A/zh
Publication of CN111211999A publication Critical patent/CN111211999A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种基于OVS的实时虚拟网络的实现方法
技术领域
本发明涉及一种基于OVS的实时虚拟网络的实现方法,属于虚拟化技术领域。
背景技术
经过多年的发展,云计算已经逐步成熟,在整个云数据中心中,网络是所有设备互联互通的关键所在,网络的性能可以影响整个数据中心的运行效率。在云计算中虚拟机通过OVS虚拟机交换机与外部通信,由于虚拟化本身有性能损耗,虽然虚拟机网络带宽与实际物理硬件相同,但是网络延时还是比物理硬件高,网络的实时性相对较差。在工业控制或军用领域,网络的实时性要求非常高,如何提高虚拟网络的实时性,已成为当前云计算推广的关键所在。
硬件交换机因为有专门的转发硬件,可以保证任意时间都有一定的资源用于转发。但是OVS在操作系统内核空间实现转发,本质上是通过操作系统内的几个进程来完成工作。操作系统会像对待其他进程一样,将CPU的部分时间片,而不是整个CPU分配给虚拟交换机,内存也需要受操作系统的管理,这就存在资源抢占的可能。所以,虚拟交换机并不能保证在需要转发网络数据的时候一定占有资源。另一方面,因为操作系统本身的设计,需要经过硬中断,软中断,内核空间和用户空间的切换来完成网络数据的传输,通过内核进行转发使得网络数据在操作系统内的路径也很长。所以基于内核实现的虚拟交换机 OVS,会对网络性能带来额外的损耗。
发明内容
本发明解决的技术问题是:针对目前现有技术中,虚拟网络交换机工作时内存需要受操作系统的管理、容易受到操作系统中断及永和空间切换影响的问题,提出了一种基于OVS的实时虚拟网络的实现方法。
本发明解决上述技术问题是通过如下技术方案予以实现的:
一种基于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核来回调度,同时配置无锁环形缓存管理,同时使用收发包批处理功能处理数据,多个收发包集中到一个cache line,在内存池中实现,无需反复申请和释放;
(5)利用用户态轮询驱动实现虚拟机和主机零拷贝,可以减小上下文切换开销,方便实现虚拟机和主机零拷贝。
在上述流程中,使用DPDK优化后,OVS所有的工作全部在用户态完成,使虚拟机到虚拟机和物理网卡到虚拟机的整个数据传输都工作在用户态,极大的提升了OVS的性能;
同时,当接收数据包到达网卡后,上传给Datapath,Datapath会检查缓存中的精确流表是否可以直接转发这个包,如果在缓存中没有找到记录,直接通过DPDKlib将数据发送到用户空间的vswitchd,vswitchd检查数据库以查看数据包的目的端口,需要操作openflow流表,实现与ovsdb以及ovs-ofctl交互,获取数据包精确转发规则后,按规则进行数据包转发,根据上述转发规则进行转发后,OVS虚拟交换机的实时性将得到大幅度提升。
为了更好的提升虚拟机的网络实时性,不仅要提升OVS虚拟交换机的实时性,还要提升虚拟网卡的实时性,结合vhost-user技术的优势,利用用户态 vhost-backend程序,从虚拟机到物理机上实现数据零拷贝,即zero copy,显著降低了虚拟机与物理机的数据交换时间,提高虚拟网卡的实时性。
下面结合具体实施例进行进一步说明:
如图1所示,安装部署OVS虚拟交换机,并于OVS虚拟交换机中安装 DPDK插件,并进行DPDK的优化配置,令OVS所有的工作全部在用户态完成,使虚拟机到虚拟机和物理网卡到虚拟机的整个数据传输都工作在用户态,同时在外部数据包到达后,通过上传至Datapath以检查缓存中的精确流表是否可以直接转发这个包,如果在缓存中没有找到记录,直接通过DPDKlib将数据发送到用户空间的vswitchd,vswitchd检查数据库以查看数据包的目的端口,通过操作openflow流表实现与ovsdb以及ovs-ofctl交互,获取数据包精确转发规则后,按规则进行数据包转发;
在本实施例中,通过vswitchd检查数据库获取的数据包转发规则。OVSDB 管理协议,定义OVSDB的结构、交互协议即JSON-RPC、DB的操作类型,并使用JSON作为数据格式和通信协议格式。OVSDB用于存储虚拟交换机的配置信息、数据转发规则等,并为vswitchd提供操作接口,供其查询。
在linux系统中配置大页缓存,使用大页缓存支持来提高内存访问效率,同时通过安装运行在用户空间的网卡驱动减小报文在用户空间和应用空间的多次拷贝,并结合vhost-user技术的优势,利用用户态vhost-backend程序,从虚拟机到物理机上实现数据零拷贝,提高虚拟网卡的实时性;
将控制面线程及各个数据面线程绑定到不同的CPU核,通过配置使用无锁环形缓存管理,加快内存访问效率,并配置使用收发包批处理功能,令多个收发包集中到一个cache line,在内存池中实现,无需反复申请和释放;
利用用户态轮询驱动,减小上下文切换开销,现虚拟机和主机零拷贝,同时,利用virtio虚拟网卡,降低内核与用户空间的切换时间。
本发明说明书中未详细描述的内容为本领域技术人员公知技术。

Claims (6)

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将数据发送到用户空间的vswitchd,同时操作openflow流表,实现与ovsdb以及ovs-ofctl交互,并通过vswitchd检查ovsdb数据库以查看数据包的目的端口。
4.根据权利要求3所述的一种基于OVS的实时虚拟网络的实现方法,其特征在于:所述步骤(2)中,根据数据包的目的端口获取数据转发规则的具体方法为:
通过OpenFlow协议向OVS交换机下发FlowTable流表,控制交换机的根据FlowTable进行转发,其中:
FlowTable流表不同流表项组成,每个流表项均为一个转发规则。进入交换机的数据包通过查询流表来获得转发的目的端口。流表项由头域、计数器和指令集组成;其中头域为十元组,即流表项的标识;计数器用于计算流表项的统计数据;指令集标明了与该流表项匹配的数据包应该执行的操作。
5.根据权利要求1所述的一种基于OVS的实时虚拟网络的实现方法,其特征在于:所述虚拟机与主机间数据传输通过用户态vhost-backend程序实现零拷贝。
6.根据权利要求1所述的一种基于OVS的实时虚拟网络的实现方法,其特征在于:所述OVS虚拟交换机采用virtio虚拟网卡,并通过DPDK插件进行虚拟机的网络优化,使虚拟机网络直接连通外部网络。
CN201911193584.8A 2019-11-28 2019-11-28 一种基于ovs的实时虚拟网络的实现方法 Pending CN111211999A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911193584.8A CN111211999A (zh) 2019-11-28 2019-11-28 一种基于ovs的实时虚拟网络的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911193584.8A CN111211999A (zh) 2019-11-28 2019-11-28 一种基于ovs的实时虚拟网络的实现方法

Publications (1)

Publication Number Publication Date
CN111211999A true CN111211999A (zh) 2020-05-29

Family

ID=70787974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911193584.8A Pending CN111211999A (zh) 2019-11-28 2019-11-28 一种基于ovs的实时虚拟网络的实现方法

Country Status (1)

Country Link
CN (1) CN111211999A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543137A (zh) * 2020-11-30 2021-03-23 中国电子科技集团公司第五十四研究所 基于半虚拟化和ovs-dpdk的虚拟机网络加速系统
CN112787857A (zh) * 2020-12-29 2021-05-11 中国航空工业集团公司西安飞机设计研究所 一种远程数据集中器数据监控与故障定位方法
CN113434252A (zh) * 2021-06-28 2021-09-24 电子科技大学 面向5g网络功能虚拟化的自定义vnf部署系统及方法
CN113472624A (zh) * 2021-06-21 2021-10-01 烽火通信科技股份有限公司 一种基于vDPA实现虚拟网络数据包转发的方法及应用
CN116257276A (zh) * 2023-05-09 2023-06-13 珠海星云智联科技有限公司 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法
EP4293978A1 (en) * 2022-06-17 2023-12-20 Juniper Networks, Inc. Hybrid data plane for a containerized router

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150098339A1 (en) * 2011-07-08 2015-04-09 Telefonaktiebolaget L M Ericsson (Publ) Controller Driven OAM For Openflow
CN104821890A (zh) * 2015-03-27 2015-08-05 上海博达数据通信有限公司 一种基于普通交换芯片的OpenFlow多级流表的实现方法
CN109803016A (zh) * 2019-01-24 2019-05-24 山东超越数控电子股份有限公司 一种利用虚拟交换机转发数据包的方法及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150098339A1 (en) * 2011-07-08 2015-04-09 Telefonaktiebolaget L M Ericsson (Publ) Controller Driven OAM For Openflow
CN104821890A (zh) * 2015-03-27 2015-08-05 上海博达数据通信有限公司 一种基于普通交换芯片的OpenFlow多级流表的实现方法
CN109803016A (zh) * 2019-01-24 2019-05-24 山东超越数控电子股份有限公司 一种利用虚拟交换机转发数据包的方法及设备

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543137A (zh) * 2020-11-30 2021-03-23 中国电子科技集团公司第五十四研究所 基于半虚拟化和ovs-dpdk的虚拟机网络加速系统
CN112787857A (zh) * 2020-12-29 2021-05-11 中国航空工业集团公司西安飞机设计研究所 一种远程数据集中器数据监控与故障定位方法
CN113472624A (zh) * 2021-06-21 2021-10-01 烽火通信科技股份有限公司 一种基于vDPA实现虚拟网络数据包转发的方法及应用
CN113434252A (zh) * 2021-06-28 2021-09-24 电子科技大学 面向5g网络功能虚拟化的自定义vnf部署系统及方法
CN113434252B (zh) * 2021-06-28 2023-04-07 电子科技大学 面向5g网络功能虚拟化的自定义vnf部署系统及方法
EP4293978A1 (en) * 2022-06-17 2023-12-20 Juniper Networks, Inc. Hybrid data plane for a containerized router
US11991097B2 (en) 2022-06-17 2024-05-21 Juniper Networks, Inc. Hybrid data plane for a containerized router
CN116257276A (zh) * 2023-05-09 2023-06-13 珠海星云智联科技有限公司 支持虚拟化硬件加速的虚拟宿主机用户后端升级方法

Similar Documents

Publication Publication Date Title
CN111211999A (zh) 一种基于ovs的实时虚拟网络的实现方法
US11677851B2 (en) Accelerated network packet processing
US20220321404A1 (en) Programmable Protocol Parser For NIC Classification And Queue Assignments
CN110535813B (zh) 内核态协议栈与用户态协议栈并存处理方法和装置
CN108270676B (zh) 一种基于Intel DPDK的网络数据处理方法及装置
KR101303718B1 (ko) 가상 머신 네트워킹을 위한 방법 및 시스템
EP1841162A2 (en) Method and system for an OS virtualization-aware network interface card
CN113472624A (zh) 一种基于vDPA实现虚拟网络数据包转发的方法及应用
CN105141603A (zh) 通信数据传输方法及系统
US20120140640A1 (en) Apparatus and method for dynamically processing packets having various characteristics
US9479438B2 (en) Link aggregation based on virtual interfaces of VLANs
WO2018057165A1 (en) Technologies for dynamically transitioning network traffic host buffer queues
CN117240935A (zh) 基于dpu的数据平面转发方法、装置、设备及介质
CN112448924A (zh) 一种兼容多种协议的报文处理方法、系统及交换设备
CN111294316A (zh) 基于用户态协议栈虚拟路由器的网络隔离方法和装置
CN112217772B (zh) 一种协议栈实现方法、装置和存储介质
CN114513383A (zh) 基于原始套接字的实时以太网现场总线数据包处理方法
CN108121587B (zh) 一种数据加速方法及虚拟加速器
WO2024098757A1 (zh) 网络集群系统、报文传输方法及网络设备
CN108701103B (zh) 具有工作存储器的计算单元的存储器直接访问控制装置
CN117545011A (zh) 一种基于dpdk技术的报文传输方法、装置及电子设备
CN114448916A (zh) Tipc报文处理方法、装置、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200529