CN114915602B - 虚拟交换机中流表的处理方法、处理装置及终端 - Google Patents

虚拟交换机中流表的处理方法、处理装置及终端 Download PDF

Info

Publication number
CN114915602B
CN114915602B CN202110129415.9A CN202110129415A CN114915602B CN 114915602 B CN114915602 B CN 114915602B CN 202110129415 A CN202110129415 A CN 202110129415A CN 114915602 B CN114915602 B CN 114915602B
Authority
CN
China
Prior art keywords
flow table
kernel
entry
issued
flow
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.)
Active
Application number
CN202110129415.9A
Other languages
English (en)
Other versions
CN114915602A (zh
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.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
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 China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110129415.9A priority Critical patent/CN114915602B/zh
Publication of CN114915602A publication Critical patent/CN114915602A/zh
Application granted granted Critical
Publication of CN114915602B publication Critical patent/CN114915602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/555Error detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请是关于一种虚拟交换机中流表的处理方法、处理装置、终端及存储介质。该处理方法包括周期性监测虚拟交换机服务状态;若确定虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;通过匹配,确定出用户态流表项中与内核态流表项的预审参数相同的流表项作为下发的流表项;下发上述确定的流表项至内核,来降低故障发生周期内新建连接失败率,提高OVS可用性。同时,通过上述从用户态流表项中筛选下发的流表项下发至内核,相对于下发所有用户态流表项至内核,可减少单次下发的流表项的规模,降低内核缓存表CacheTable的更新频率,降低因为更新频率过高导致的缓存表不稳定现象,提升缓存表的性能。

Description

虚拟交换机中流表的处理方法、处理装置及终端
技术领域
本发明涉及云计算技术领域,尤其涉及一种虚拟交换机中流表的处理方法、处理装置、终端及存储介质。
背景技术
OVS(Open vSwitch,开源虚拟交换机)是一个开源的、高质量的多层虚拟交换机,遵循开源Apache2.0许可协议。OVS旨在通过编程扩展,使庞大的网络自动化扩展(包括配置、管理、维护等)。同时OVS支持标准的管理接口和协议,例如安全隔离类VLAN、监控类NetFlow/SFlow/SPAN、自动化控制类OpenFlow/OVSDB等。在虚拟化平台上具体应用时,OVS可以为动态变化的端点提供两层交换功能,很好的控制虚拟网络中的访问策略、网络隔离、流量监控等等。
鉴于OVS的功能,其在虚拟网络中的应用也愈发普遍。与此同时,随着虚拟网络功能的快速发展,提高OVS的可用性也变得愈发重要。
发明内容
有鉴于此,本申请实施例期望提供一种虚拟交换机中流表的处理方法、处理装置、终端及存储介质。
本申请的技术方案是这样实现的:
一方面,本申请提供一种虚拟交换机中流表的处理方法。
本申请实施例提供的虚拟交换机中流表的处理方法,包括:
周期性监测虚拟交换机服务状态;
若确定所述虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;
通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项;其中,所述第一预先缓存区和所述第二预先缓存区为用户态中的两个不同的缓存区域,所述内核态流表项和所述下发的流表项均为所述用户态流表项中的部分流表项;
下发所述下发的流表项至内核。
在一些实施例中,预审参数包括:
IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口、关键信息中的掩码位mask;
所述通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项,包括:
通过匹配,确定所述用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为所述下发的流表项。
在一些实施例中,所述通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项后,还包括:
存储所述下发的流表项至第三预先缓存区,所述第三预先缓存区为用户态中的不同于所述第一预先缓存区和所述第二预先缓存区的缓存区域;
所述下发所述下发的流表项至内核,包括:
从所述第三预先缓存区中读取所述下发的流表项。
在一些实施例中,所述从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项,还包括:
在用户态中设置所述第一预先缓存区和所述第二预先缓存区,并将所述用户态流表项缓存在所述第一预先缓存区内以及将所述内核态流表项缓存在所述第二预先缓存区内。
在一些实施例中,还包括:
若确定所述虚拟交换机服务状态正常,则向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
在一些实施例中,还包括:
当监测到虚拟交换机服务状态恢复正常时,则向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
另一方面,本申请提供一种虚拟交换机中流表的处理装置。本申请实施例提供的虚拟交换机中流表的处理装置,包括:
第一处理单元,用于周期性监测虚拟交换机服务状态;
第二处理单元,用于若确定所述虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;
第三处理单元,用于通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项;其中,所述第一预先缓存区和所述第二预先缓存区为用户态中的两个不同的缓存区域,所述内核态流表项和所述下发的流表项均为所述用户态流表项中的部分流表项;
第四处理单元,用于下发所述下发的流表项至内核。
在一些实施例中,所述预审参数包括:
IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口、关键信息中的掩码位mask;
所述第三处理单元,用于通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项,具体包括:
所述第三处理单元,用于通过匹配,确定所述用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为所述下发的流表项。
在一些实施例中,所述第三处理单元,还用于存储所述下发的流表项至第三预先缓存区,所述第三预先缓存区为用户态中的不同于所述第一预先缓存区和所述第二预先缓存区的缓存区域;
第四处理单元,还用于从所述第三预先缓存区中读取所述下发的流表项。
在一些实施例中,所述第二处理单元,还用于在用户态中设置所述第一预先缓存区和所述第二预先缓存区,并将所述用户态流表项缓存在所述第一预先缓存区内以及将所述内核态流表项缓存在所述第二预先缓存区内。
又一方面,本申请还提供一种终端。
本申请实施例提供的终端,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行一方面本申请实施例提供的虚拟交换机中流表的处理方法的步骤。
再一方面,本申请还提供一种计算机可读存储介质。
本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现一方面本申请实施例提供的虚拟交换机中流表的处理方法的步骤。
本申请实施例周期性监测虚拟交换机服务状态,当确定虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项,并通过匹配确定出用户态流表项中与内核态流表项的预审参数相同的流表项作为下发的流表项,以及下发确定出的流表项至内核,来降低故障发生周期内新建连接失败率,提高OVS可用性。同时,通过上述从用户态流表项中筛选下发的流表项下发至内核,相对于下发所有用户态流表项至内核,可减少单次下发的流表项的规模,降低内核缓存表CacheTable的更新频率,降低因为更新频率过高导致的缓存表不稳定现象,提升缓存表的性能。
附图说明
图1是根据一示例性实施例示出的虚拟交换机中流表的处理方法流程图;
图2是根据一示例性实施例示出的线程1执行流程图;
图3是根据一示例性实施例示出的线程2执行流程图;
图4是根据一示例性实施例示出的线程3执行流程图;
图5是根据一示例性实施例示出的OVS系统架构图;
图6是根据一示例性实施例示出的虚拟交换机中流表的处理装置结构示意图;
图7是根据一示例性实施例示出的终端结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
OVS在虚拟网络中应用时,会出现ovs-vswitchd服务异常的状态。为了提高OVS的可用性,降低故障发生周期内的新建连接失败率。本申请提供一种虚拟交换机中流表的处理方法。
图1是根据一示例性实施例示出的虚拟交换机中流表的处理方法流程图。如图1所示,该虚拟交换机中流表的处理方法,包括:
步骤10、周期性监测虚拟交换机服务状态;
步骤11、若确定所述虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;
步骤12、通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项;其中,所述第一预先缓存区和所述第二预先缓存区为用户态中的两个不同的缓存区域,所述内核态流表项和所述下发的流表项均为所述用户态流表项中的部分流表项;
步骤13、下发所述下发的流表项至内核。
在本示例性实施例中,用户态流表项为运行在用户态的流表规则。内核态流表项为运行在用户态的部分流表规则。虚拟交换机服务状态包括:正常和异常两种状态。在创建新建连接时,也会出现正常和异常状态,即当新建连接成功时,虚拟交换机服务状态会正常进行;当新建连接失败时,虚拟交换机服务状态会出现异常。
在本示例性实施例中,内核态流表项和下发的流表项均为用户态流表项中的部分流表项。即下发的流表项可以包括:部分内核态流表项。
在本示例性实施例中,周期性监测虚拟交换机服务状态,当确定虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项,并通过匹配确定出用户态流表项中与内核态流表项的预审参数相同的流表项作为下发的流表项。然后下发确定出的流表项至内核,来降低故障发生周期内新建连接失败率,提高OVS可用性。同时,通过上述从用户态流表项中筛选下发的流表项下发至内核,相对于下发所有用户态流表项至内核,可减少单次下发的流表项的规模,降低内核缓存表CacheTable的更新频率,降低因为更新频率过高导致的缓存表不稳定现象,提升缓存表的性能。
在一些实施例中,预审参数包括:
IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口、关键信息中的掩码位mask;
所述通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项,包括:
通过匹配,确定所述用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为所述下发的流表项。
关键信息为内核缓存表CacheTable规则条目内容,包括隧道、物理层、MAC地址等。
在本示例性实施例中,通过匹配预审参数,在用户态流表项中筛选出向内核下发的流表项。即在用户态流表项中找到IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均与内核态流表项中的对应设置相同的流表项。然后将上述设置相同的流表项作为下发的流表项下发到内核。
在一些实施例中,所述通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项后,还包括:
存储所述下发的流表项至第三预先缓存区,所述第三预先缓存区为用户态中的不同于所述第一预先缓存区和所述第二预先缓存区的缓存区域;
所述下发所述下发的流表项至内核,包括:
从所述第三预先缓存区中读取所述下发的流表项。
在本示例性实施例中,可通过多个线程来完成虚拟交换机服务状态监测、下发的流表项确定以及流表项下发。例如,可通过线程1执行虚拟交换机服务状态监测,线程2执行下发的流表项确定、线程3执行流表项下发。线程1、线程2、线程3,多个线程同时进行,可减少各个线程中执行动作彼此的等待过程(相对于单线程而言),提高操作效率。图2是根据一示例性实施例示出的线程1执行流程图。如图2所示,包括:
在线程1中执行周期性监测虚拟交换机服务状态;
当监测到虚拟交换机服务状态变化时,确定该状态变化是否是虚拟交换机服务状态异常,若没有监测到服务状态变化,则继续监测;
若是虚拟交换机服务状态异常,则线程1发送异常信号给线程3;
若是虚拟交换机服务状态正常,则线程1下发流表清理指令至内核,指示内核清理内核中的流表项;
当在线程3中下发流表项至内核后,监测到虚拟交换机服务状态由异常恢复正常,则下发流表清理指令至内核,指示内核清理内核中的流表项。
图3是根据一示例性实施例示出的线程2执行流程图。如图3所示,包括:
刷新并读取刷新后的第一预先缓存区中的用户态流表项;
刷新并读取刷新后的第二预先缓存区中的内核态流表项;
确定下发的流表项并存储在第三预先缓存区,包括:通过匹配确定出用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为下发的流表项,并存储下发的流表项于第三预先缓存区内,供线程3读取。
刷新第一预先缓存区中的用户态流表项,包括周期获取ovsdb中的用户态流表信息,并加载最新获取的用户态流表信息到第一预先缓存区。
刷新第二预先缓存区中的内核态流表项,包括用户态服务backup通过GenericNetlink周期获取内核流表信息,并加载最新获取的内核流表信息到第二预先缓存区。
图4是根据一示例性实施例示出的线程3执行流程图。如图4所示,包括:
在线程3中,接收线程1发送的异常信号;
根据下发的流表项的读取指令,从第三预先缓存区读取向内核下发的流表项;
下发流表项至内核。
在线程1和线程3执行的同时,同步执行线程2。在线程2中,实时刷新第一预先缓存区中的用户态流表项和第二预先缓存区中的内核态流表项,并更新第三预先缓存区内的流表项,供线程3读取。如此,通过实时刷新下发的流表项,并通过线程3直接在第三预先缓存区中读取所需下发的流表项下发至内核,相对于在用户态流表项中查找相应的流表项再进行下发,减少了流表项读取时间,提高了流表项下发效率,从而可增加单位时间内流表项下发的数量,进一步提高OVS可用性。
在本示例性实施例中,还包括:
当下发的流表项下发至内核后,在内核中基于所述下发的流表项生成内核流表,完成内核流表添加。
在一些实施例中,所述从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项,还包括:
在用户态中设置所述第一预先缓存区和所述第二预先缓存区,并将所述用户态流表项缓存在所述第一预先缓存区内以及将所述内核态流表项缓存在所述第二预先缓存区内。
在本示例性实施例中,对用户态中的缓存区进行分区为第一预先缓存区、第二预先缓存区和第三预先缓存区。在第一预先缓存区内存储用户态流表项。在第二预先缓存区存储内核态流表项。
在一些实施例中,还包括:
若确定所述虚拟交换机服务状态正常,则向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
在本示例性实施例中,当确定虚拟交换机服务状态正常,通过线程1可直接向内核下发流表清理指令,指示内核清理内核中的流表项。
在本示例性实施例中,进行新建连接前,内核中存在用于进行新建连接的流表项。当新建连接创建成功后,此时虚拟交换机服务状态正常,内核中用于该新建连接的流表项便可以被清除,以节约内核空间。当新建连接创建失败,此时虚拟交换机服务状态异常,可通过向内核下发流表项的方式,增加内核中的流表项,以增加新建连接创建的成功率。当虚拟交换机服务状态恢复正常,此时新建连接创建成功,清除此时内核中用于该新建连接的流表项,包括原有的流表项和最新下发的流表项。
在一些实施例中,还包括:
当监测到虚拟交换机服务状态恢复正常时,则向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
在本示例性实施例中,当监测到虚拟交换机服务状态恢复正常时,可通过线程1向内核下发流表清理指令,指示内核清理内核中的流表项,包括清理在内核中生成的流表。
本申请还提供一种OVS系统架构。图5是根据一示例性实施例示出的OVS系统架构图。如图5所示,系统包括用户态服务部分和内核态服务部分。
用户态服务部分包括:OVS服务状态监控、用户态流表处理、内核流表接收、三级流表缓存管理、待下发流表计算、流表下发内核等。其中:
ovs-vswitchd服务监测:用户态服务backup启动线程,并记录ovs-vswitchd状态。周期性监测,当监测到ovs-vswitchd服务状态变化时向流表同步线程发送信号(服务异常、服务恢复);
Ovsdb流表规则同步:用户态服务backup启动线程,根据配置中的同步周期将ovsdb中的流表信息加载到第一预先缓存区,并构建流表项内容供计算下发内核流表项使用;
内核流表读取:用户态服务backup通过GenericNetlink周期获取内核流表信息,并加载到第二预先缓存区,供计算下发内核流表项使用,已经统计内核流表信息供调试使用;
待下发内核流表项计算:根据局部性原理结合缓冲区中内核流表项和ovsdb流表项进行计算,得到下发内核流表项内容,并加载到第三预先缓存区;
流表下发:将第三预先缓存区中的流表规则通过GenericNetlink下发至内核模块restoreFT。
内核态服务部分包括:流表内容接收、流表内容转换、流表内容刷新至流表等。其中:
内核流表处理,restoreFT负责将流表项插入到相应流表,并记录插入的流表项,用于业务恢复后流表项的快速清除。
在本示例性实施例中,流表处理过程包括:
1)用户态服务启动并初始化,加载配置项,启动两个周期线程。线程1监测ovs-vswitchd服务状态,线程2周期读取ovsdb中流规则,周期间隔可配置。
2)线程1初始化ovs-vswitchd状态标记位(首次为正常状态标记为恢复),当监测到状态发生变化时(异常),则向线程3发送异常信号。同时刷新本地状态标记位。线程3负责将流规则下发至内核。
3)线程2周期从ovsdb中读取流规则,并做三级共享缓冲区初始化。第一预先缓存区存储ovsdb中的流规则,第二预先缓存区存储内核CacheTable规则条目,第三预先缓存区存储已计算出的待下发流表规则。
4)线程2启动后,周期读取ovsdb流规则动作完成后,则向内核请求查询CachTable规则条目,并根据第一预先缓存区和第二预先缓存区内容。按照缩小流表规模算法计算出第一预先缓存区中用于下发的流表规则,并进行格式转换存储于第三预先缓存区。
5)缩小流表规模方法,内核CacheTable规则条目内容为key(流关键信息,包括隧道、物理层、MAC、IP等)、mask(关键信息掩码,包括key、key匹配范围)、acts(动作列表,对数据流处理的具体操作)。用户态流表采用pipeline多级表关联而内核中采用key->acts形式即一级表,例如用户态有三级pipeline表(P,Q,T),每个表中含有x,y,z条规则,则理论对应内核规则为PQT的笛卡尔积(x*y*z)条。本案中流表内容匹配方法为:
a.IP地址与内核流表同网段或16位掩码相同;
b.下行dmac相同;
c:VLAN信息和收发端口相同;
d:key掩码位mask相同。
此方法为标识同一(VM)地址局部性服务。通过此类筛选,降低下发内核的流表规模。
6)ovs-vswitchd业务恢复后,线程A置位本地标记位恢复,并向内核下发指令,清除本案计算下发的流表规则。内核流表的下发和清理有两个线程完成。因为下发流表需操作缓存区,该缓存区为线程2中实现。清理流表由线程1直接操作,不在经过线程2,如此可提高程序效率,减少线间通信。
本申请实施例中,还提供了通过OVS源码健壮性的提升和优化来提供OVS自身的高可用性的其他方案,主要有以下几种:
一是优化ovs-switchd逻辑(OVS用户态服务,接收SDN OpenFlow协议、用户态流表维护等)提高流查找效率。通过设置流表容量和规则老化时间精简datapath(OVS内核态服务,维护数据快速处理流表)提高内核性能。
二是增加OVS服务守护程序,故障发生后自动恢复OVS服务。
但上述方案存在一些问题:
首先,从OVS软件健壮性方面入手,对提高OVS的高可用性效果并不明显,OVS故障期间并没有减少故障带来的影响。配置规则老化时间和流表容量是经验值,并不通用,无法应对流量陡增的情况。
其次,守护进程自动恢复OVS服务并不能降低故障期间OVS对网络的影响。
针对上述方案存在的问题,本申请提出的虚拟交换机中流表的处理方法,利用DMA内存共享、GenericNetlink通信、信号量、流表自动扩展等处理技术,形成独立于OVS服务之外的软件技术形态。
本申请技术方案包含两大部分:用户态服务(backup)和内核模块(restoreFT)。用户态采用多线程技术实现对ovs-vswitchd服务状态的监测、周期性ovsdb流表信息同步及动态计算目标流表,内核态完成对内核流表的添加、删除统计等动作。用户态采用三级流表缓存机制,将用户态流表、内核流表和动态计算的流表结果(待下发给内核的流表)分离存储。
本申请对OVS完全透明,在首次监测到ovs-vswitchd服务异常时,会将用户态计算的流表内容下发给内核。ovs-vswitchd服务恢复时,用户态向内核下发指令,清理故障期间新增的流表内容,恢复内核态流表至故障前。在一个故障周期内,用户态仅会下发一次流表信息。
本申请技术方案的优点,包括:
灵活性,不改变OVS原生功能,通过旁路方式实现,对OVS透明;
性能提升与空间节省,ovs-vswitchd状态监测、ovsdb流表项同步采用多线程机制,减少等待过程。下发流表项通过局部性原则过滤,大大减少下发表项规模,降低对内核CacheTable的性能损耗;
高可用性,在OVS原有提高可用性的手段上(从OVS自身出发),通过本案降低故障发生周期内的新建连接失败率。
另一方面,本申请提供一种虚拟交换机中流表的处理装置。图6是根据一示例性实施例示出的虚拟交换机中流表的处理装置结构示意图。如图6所示,本申请实施例提供的虚拟交换机中流表的处理装置,包括:
第一处理单元61,用于周期性监测虚拟交换机服务状态;
第二处理单元62,用于若确定所述虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;
第三处理单元63,用于通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项;其中,所述第一预先缓存区和所述第二预先缓存区为用户态中的两个不同的缓存区域,所述内核态流表项和所述下发的流表项均为所述用户态流表项中的部分流表项;
第四处理单元64,用于下发所述下发的流表项至内核。
在本示例性实施例中,用户态流表项为用户态中的流表规则。内核态流表项为用户态中的部分流表规则。虚拟交换机服务状态包括正常和异常两种状态。虚拟交换机服务状态正常,新建连接成功。虚拟交换机服务状态异常,新建连接失败,通过在内核中增加流表项来提高新建连接的成功率。
在本示例性实施例中,内核态流表项和下发的流表项均为用户态流表项中的部分流表项,且内核态流表项和下发的流表项可以是相同的流表项。即下发的流表项可以包括部分内核态流表项。
本申请实施例周期性监测虚拟交换机服务状态,当确定虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项,并通过匹配确定出用户态流表项中与内核态流表项的预审参数相同的流表项作为下发的流表项,以及下发确定出的流表项至内核,来降低故障发生周期内新建连接失败率,提高OVS可用性。同时,通过上述从用户态流表项中筛选下发的流表项下发至内核,相对于下发所有用户态流表项至内核,可减少单次下发的流表项的规模,降低内核缓存表CacheTable的更新频率,降低因为更新频率过高导致的缓存表不稳定现象,提升缓存表的性能。
在一些实施例中,所述预审参数包括:
IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口、关键信息中的掩码位mask;
所述第三处理单元,用于通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项,具体包括:
所述第三处理单元,用于通过匹配,确定所述用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为所述下发的流表项。
在本示例性实施例中,通过匹配预审参数,在用户态流表项中筛选出向内核下发的流表项。筛选方式就是在用户态流表项中找到IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均与内核态流表项中的对应设置相同的流表项作为下发的流表项下发到内核。关键信息为内核缓存表CacheTable规则条目内容,包括隧道、物理层、MAC地址等。
在一些实施例中,所述第三处理单元,还用于存储所述下发的流表项至第三预先缓存区,所述第三预先缓存区为用户态中的不同于所述第一预先缓存区和所述第二预先缓存区的缓存区域;
第四处理单元,还用于从所述第三预先缓存区中读取所述下发的流表项。
在本示例性实施例中,可通过多个线程来完成虚拟交换机服务状态监测、下发的流表项确定以及流行项下发。例如,可通过线程1执行虚拟交换机服务状态监测,线程2执行下发的流表项确定、线程3执行流表项下发,包括:
在线程1中第一处理单元执行周期性监测虚拟交换机服务状态监测,当监测到虚拟交换机服务异常时,发送状态异常信号给线程3;线程3中第四处理单元接收到状态异常信号后,根据下发流表项读取指令,去第三预先缓存区中读取所需下发的流表项;
在线程1和线程3执行的同时,同步执行线程2。线程2中第二处理单元和第三处理单元执行下发的流表项确定,包括第二处理单元实时刷新读取第一预先缓存区中的用户态流表项、第二预先缓存区中的内核态流表项;第三处理单元通过匹配确定出用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为下发的流表项,并存储下发的流表项于第三预先缓存区内,供线程3中的第四处理单元读取。如此,通过实时刷新下发的流表项,并通过线程3直接在第三预先缓存区中读取所需下发的流表项下发至内核,相对于在用户态流表项中查找相应的流表项再进行下发,减少了流表项读取时间,提高了流表项下发效率,从而可增加单位时间内流表项下发的数量,进一步提高OVS可用性。线程1、线程2、线程3,多个线程同时进行,可减少各个线程中执行动作彼此的等待过程(相对于单线程而言),提高操作效率。
在一些实施例中,所述第二处理单元,还用于在用户态中设置所述第一预先缓存区和所述第二预先缓存区,并将所述用户态流表项缓存在所述第一预先缓存区内以及将所述内核态流表项缓存在所述第二预先缓存区内。
在本示例性实施例中,对用户态中的缓存区进行分区为第一预先缓存区、第二预先缓存区和第三预先缓存区。在第一预先缓存区内存储用户态流表项。在第二预先缓存区存储内核态流表项。
在一些实施例中,还包括:
所述第一处理单元当监测到虚拟交换机服务状态正常时,所述第四处理单元,还用于向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
在本示例性实施例中,当第一处理单元确定虚拟交换机服务状态正常,通过线程1中的第四处理单元直接向内核下发流表清理指令,指示内核清理内核中的流表项。
在一些实施例中,所述第一处理单元当监测到虚拟交换机服务状态恢复正常时,所述第四处理单元还用于向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
在本示例性实施例中,当第一处理单元监测到虚拟交换机服务状态恢复正常时,可通过线程1中的第四处理单元向内核下发流表清理指令,指示内核清理内核中的流表项,包括清理在内核中生成的流表。
本申请还提供一种终端。图7是根据一示例性实施例示出的终端结构示意图。如图7所示,本申请实施例提供的终端,包括:处理器730和用于存储能够在处理器上运行的计算机程序的存储器720,其中,所述处理器730用于运行所述计算机程序时,执行上述各实施例提供所述方法的步骤。
本申请还提供一种计算机可读存储介质。本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例提供所述方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的方法技术方案。
在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的设备技术方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种虚拟交换机中流表的处理方法,其特征在于,所述方法包括:
周期性监测虚拟交换机服务状态;
若确定所述虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;
通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项;其中,所述第一预先缓存区和所述第二预先缓存区为用户态中的两个不同的缓存区域,所述内核态流表项和所述下发的流表项均为所述用户态流表项中的部分流表项;
下发所述下发的流表项至内核。
2.根据权利要求1所述的虚拟交换机中流表的处理方法,其特征在于,预审参数包括:
IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口、关键信息中的掩码位mask;
所述通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项,包括:
通过匹配,确定所述用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为所述下发的流表项。
3.根据权利要求1所述的虚拟交换机中流表的处理方法,其特征在于,所述通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项后,还包括:
存储所述下发的流表项至第三预先缓存区,所述第三预先缓存区为用户态中的不同于所述第一预先缓存区和所述第二预先缓存区的缓存区域;
所述下发所述下发的流表项至内核,包括:
从所述第三预先缓存区中读取所述下发的流表项。
4.根据权利要求1所述的虚拟交换机中流表的处理方法,其特征在于,所述从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项,还包括:
在用户态中设置所述第一预先缓存区和所述第二预先缓存区,并将所述用户态流表项缓存在所述第一预先缓存区内以及将所述内核态流表项缓存在所述第二预先缓存区内。
5.根据权利要求1所述的虚拟交换机中流表的处理方法,其特征在于,还包括:
若确定所述虚拟交换机服务状态正常,则向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
6.根据权利要求1所述的虚拟交换机中流表的处理方法,其特征在于,还包括:
当监测到虚拟交换机服务状态恢复正常时,则向内核下发流表清理指令;其中,所述流表清理指令,用于清理内核中的流表项。
7.一种虚拟交换机中流表的处理装置,其特征在于,包括:
第一处理单元,用于周期性监测虚拟交换机服务状态;
第二处理单元,用于若确定所述虚拟交换机服务状态异常,则从第一预先缓存区中读取用户态流表项以及从第二预先缓存区中读取内核态流表项;
第三处理单元,用于通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项;其中,所述第一预先缓存区和所述第二预先缓存区为用户态中的两个不同的缓存区域,所述内核态流表项和所述下发的流表项均为所述用户态流表项中的部分流表项;
第四处理单元,用于下发所述下发的流表项至内核。
8.根据权利要求7所述的虚拟交换机中流表的处理装置,其特征在于,所述预审参数包括:
IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口、关键信息中的掩码位mask;
所述第三处理单元,用于通过匹配,确定出所述用户态流表项中与所述内核态流表项的预审参数相同的流表项作为下发的流表项,具体包括:
所述第三处理单元,用于通过匹配,确定所述用户态流表项中与所述内核态流表项的IP地址、下行控制信息DMAC、虚拟局域网VLAN信息和信息的收发端口以及关键信息中的掩码位mask均相同的流表项作为所述下发的流表项。
9.根据权利要求7所述的虚拟交换机中流表的处理装置,其特征在于,所述第三处理单元,还用于存储所述下发的流表项至第三预先缓存区,所述第三预先缓存区为用户态中的不同于所述第一预先缓存区和所述第二预先缓存区的缓存区域;
第四处理单元,还用于从所述第三预先缓存区中读取所述下发的流表项。
10.根据权利要求7所述的虚拟交换机中流表的处理装置,其特征在于,所述第二处理单元,还用于在用户态中设置所述第一预先缓存区和所述第二预先缓存区,并将所述用户态流表项缓存在所述第一预先缓存区内以及将所述内核态流表项缓存在所述第二预先缓存区内。
11.一种终端,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行权利要求1至6任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。
CN202110129415.9A 2021-01-29 2021-01-29 虚拟交换机中流表的处理方法、处理装置及终端 Active CN114915602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110129415.9A CN114915602B (zh) 2021-01-29 2021-01-29 虚拟交换机中流表的处理方法、处理装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110129415.9A CN114915602B (zh) 2021-01-29 2021-01-29 虚拟交换机中流表的处理方法、处理装置及终端

Publications (2)

Publication Number Publication Date
CN114915602A CN114915602A (zh) 2022-08-16
CN114915602B true CN114915602B (zh) 2024-01-26

Family

ID=82760971

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110129415.9A Active CN114915602B (zh) 2021-01-29 2021-01-29 虚拟交换机中流表的处理方法、处理装置及终端

Country Status (1)

Country Link
CN (1) CN114915602B (zh)

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013180207A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
CN107040472A (zh) * 2017-03-07 2017-08-11 浙江工商大学 一种sdn中控制面表项与流表及各类转发表项转发同步的方法
CN108762886A (zh) * 2018-05-08 2018-11-06 烽火通信科技股份有限公司 虚拟机的故障检测恢复方法及系统
WO2018203108A1 (en) * 2017-05-04 2018-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Efficient troubleshooting in openflow switches
CN108881069A (zh) * 2018-06-26 2018-11-23 新华三云计算技术有限公司 多播流量的转发方法、装置和服务器
CN110380993A (zh) * 2019-07-12 2019-10-25 中国电信集团工会上海市委员会 一种基于ovsdb的流表保护方法
CN110708245A (zh) * 2019-09-29 2020-01-17 华南理工大学 多控制器架构下的sdn数据平面故障监测与恢复方法
WO2020165910A1 (en) * 2019-02-16 2020-08-20 Telefonaktiebolaget Lm Ericsson (Publ) Technique for providing priority-aware caching in the fast-path of a virtual switch
CN111683109A (zh) * 2020-08-17 2020-09-18 烽火通信科技股份有限公司 一种微服务架构
CN111966529A (zh) * 2020-07-14 2020-11-20 上海浩霖汇信息科技有限公司 一种数据库文件实时增量同步备份的方法及系统
CN112003799A (zh) * 2020-08-14 2020-11-27 苏州浪潮智能科技有限公司 一种基于x86架构云平台的vxlan报文的内核解封装方法
CN112134794A (zh) * 2020-10-28 2020-12-25 新华三大数据技术有限公司 一种流表备份方法及装置
CN112187523A (zh) * 2020-09-10 2021-01-05 华云数据控股集团有限公司 一种网络高可用实现方法及超融合系统

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013180207A1 (ja) * 2012-05-31 2013-12-05 日本電気株式会社 制御装置、通信システム、スイッチ制御方法及びプログラム
CN107040472A (zh) * 2017-03-07 2017-08-11 浙江工商大学 一种sdn中控制面表项与流表及各类转发表项转发同步的方法
WO2018203108A1 (en) * 2017-05-04 2018-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Efficient troubleshooting in openflow switches
CN108762886A (zh) * 2018-05-08 2018-11-06 烽火通信科技股份有限公司 虚拟机的故障检测恢复方法及系统
CN108881069A (zh) * 2018-06-26 2018-11-23 新华三云计算技术有限公司 多播流量的转发方法、装置和服务器
WO2020165910A1 (en) * 2019-02-16 2020-08-20 Telefonaktiebolaget Lm Ericsson (Publ) Technique for providing priority-aware caching in the fast-path of a virtual switch
CN110380993A (zh) * 2019-07-12 2019-10-25 中国电信集团工会上海市委员会 一种基于ovsdb的流表保护方法
CN110708245A (zh) * 2019-09-29 2020-01-17 华南理工大学 多控制器架构下的sdn数据平面故障监测与恢复方法
CN111966529A (zh) * 2020-07-14 2020-11-20 上海浩霖汇信息科技有限公司 一种数据库文件实时增量同步备份的方法及系统
CN112003799A (zh) * 2020-08-14 2020-11-27 苏州浪潮智能科技有限公司 一种基于x86架构云平台的vxlan报文的内核解封装方法
CN111683109A (zh) * 2020-08-17 2020-09-18 烽火通信科技股份有限公司 一种微服务架构
CN112187523A (zh) * 2020-09-10 2021-01-05 华云数据控股集团有限公司 一种网络高可用实现方法及超融合系统
CN112134794A (zh) * 2020-10-28 2020-12-25 新华三大数据技术有限公司 一种流表备份方法及装置

Also Published As

Publication number Publication date
CN114915602A (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
US8732270B2 (en) Controlling communication among multiple industrial control systems
CN110071821B (zh) 确定事务日志的状态的方法,节点和存储介质
CN111031096B (zh) 一种基于拟态防御的分布式存储系统构建方法
US11743097B2 (en) Method and system for sharing state between network elements
US9594612B2 (en) System and method of a hardware shadow for a network element
US20240036993A1 (en) Dynamic hardware resource shadowing for memory protection
CN106357787A (zh) 一种存储容灾控制系统
JP5851055B2 (ja) データ格納方法および装置
US11132265B2 (en) Multi-replica data restoration method and apparatus
CN106777126B (zh) 一种支持异构时序数据库的数据在线迁移方法
CN104506654A (zh) 云计算系统及动态主机配置协议服务器备份方法
US20150103644A1 (en) Unconstrained supervisor switch upgrade
CN108776579A (zh) 一种分布式存储集群扩容方法、装置、设备及存储介质
CN112199240B (zh) 一种节点故障时进行节点切换的方法及相关设备
US20150074219A1 (en) High availability networking using transactional memory
US20210049043A1 (en) Dynamic hardware resource shadowing
CN114915602B (zh) 虚拟交换机中流表的处理方法、处理装置及终端
US20140298076A1 (en) Processing apparatus, recording medium storing processing program, and processing method
CN112714077B (zh) 一种报文去重方法、装置、汇聚分流设备及存储介质
CN105808391A (zh) 一种热替换cpu节点的方法及装置
US10516625B2 (en) Network entities on ring networks
US11349964B2 (en) Selective TCP/IP stack reconfiguration
CN107710165B (zh) 用于存储节点同步业务请求的方法和装置
CN116185598A (zh) 地址处理方法、装置、电子设备及可读存储介质
CN112804115B (zh) 一种虚拟网络功能的异常检测方法、装置及设备

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
GR01 Patent grant
GR01 Patent grant