一种虚拟交换机的升级方法和装置与流程

文档序号:14409619阅读:389来源:国知局
一种虚拟交换机的升级方法和装置与流程

本申请涉及虚拟机交换机技术领域,特别是涉及一种虚拟交换机的升级方法和一种虚拟交换机的升级装置。



背景技术:

近年来,随着互联网的快速发展,网络虚拟化受到了广泛的关注。在网络虚拟化的环境中,虚拟交换机是核心组件,虚拟机网络报文的收发最终都要通过虚拟交换机来完成。虚拟交换机还可以针对不同的虚拟机、不同的网络业务做相应处理,例如,网络报文访问控制,网络报文限速控制,安全组和防火墙,网络地址转换以及弹性ip等网络业务。

参照图1所示的一种虚拟机和虚拟交换机的连接示意图,虚拟机(vm,virtualmachine)和虚拟交换机(vswitch,virtualswitch)之间通过vnic(虚拟网络接口卡)连接,在处理网络业务时,虚拟机可以基于其os(operatingsystem,操作系统)和安装好的app(应用)与虚拟交换机的通信。

在云计算网络(alibabanetwork)中,虚拟交换机可以和数据中心的其他物理交换机,高性能业务网关(例如:igw(internationalgateway,互联网关)、vgw(voicegateway,语音网关)、natgw(networkaddresstranslationgateway,网络地址转换网关)、mplsgw(multi-protocollabelswitchinggateway,多协议标签交换网关)),云服务(例如:oss(objectstorageservice,对象存储服务)、rds(relationaldatabaseservice,关系型数据库服务)),网络控制器(controller)等网元协同工作,共同支撑云计算环境下复杂的网络业务和应用。具体可以参照图2。

如图2所示,虚拟机与虚拟交换机组成虚拟网络(vmnetwork),虚拟交换机与其他物理交换机,高性能业务网关,云服务以及网络控制器之间可以互相组成物理网络(physicalnetwork),在这些物理网络的基础上进一步组成了云计算网络。云计算网络中的网元可以基于物理网络互相进行通信,以及,基于物理网络与因特网(internet)和用户网络(usernetwork)互相进行通信。

云计算网络中的网元通过tunnel(隧道协议)在物理网络上互相进行通信,如图2中实线双箭头所示,虚拟交换机与互联网关、语音网关之间,语音网关与多协议标签交换网关、网络地址转换网关之间,可以通过隧道协议进行通信。此外,云计算网络中的网络控制器可以控制云计算网络中的网元,如图2虚线双箭头所示,网络控制器可以控制虚拟交换机、互联网关、网络地址转换网关、语音网关、多协议标签交换网关等网元。由于虚拟交换机利用软件实现,因此在升级时需要考虑对已有网络业务的影响。首先,虚拟交换机在升级过程中网络不能中断,不能有网络报文丢失;其次,如果虚拟交换机有安全组或者防火墙一类的业务,还需要保持已有连接状态不丢失;最后,虚拟交换机还需要保证升级前后的网络业务配置保持不变,例如防火墙规则,转发表表项等配置前后一致。

同时,在升级的过程中若要实现网络业务的平滑切换,虚拟机的网络业务不能中断,意味着这是一种热升级的方式,即此时网络报文在升级的过程中也在继续处理中,并且对已有的网络连接状态造成变化,这就要求升级的过程中必须把网络连接状态的变化,也反映到升级完成后的虚拟交换机中。

举例来说,tcp(transmissioncontrolprotocol,传输控制协议)连接的建立要经历三次握手,同样地,tcp连接的关闭要经过四次握手,因此tcp协议的网络连接状态是一个有限状态自动机。对于热升级而言,需要保证虚拟交换机在升级前后,内部保存的所有网络连接状态都是一致的。

以tcp协议为例,在热升级期间,虚拟机交换机接收到tcpsync报文尝试建立一个网络连接,此时被虚拟交换机的旧模块接收到并处理,完成了三次握手之后产生了一个establisehed(连接成功状态)的网络连接,由于虚拟交换机的新模块是在热升级结束最后一步时,才会将网络流量切换过来,故而在新模块里没有这个网络连接。那么,如果不进行网络连接的同步,就有可能造成升级完成之后,这个网络连接上的网络报文都被丢弃。

以流行的开源虚拟交换机软件openvswitch为例,其数据面的升级需要更换虚拟交换机的datapath(数据通道)模块,此时会造成网络连接的中断,这只是一种冷升级的方式,会造成服务不可用,导致无法达到更高的sla(service-levelagreement,服务等级协议)服务承诺。



技术实现要素:

鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种虚拟交换机的升级方法和相应的一种虚拟交换机的升级装置。

为了解决上述问题,本申请实施例公开了一种虚拟交换机的升级方法,所述虚拟交换机包括旧模块,所述旧模块包括静态配置和动态信息,所述的方法包括:

在所述虚拟交换机上加载新模块;

同步所述新模块和所述旧模块的静态配置;

在所述旧模块的动态信息不断变化的过程中,记录所述旧模块不断变化的动态信息;

将所述旧模块不断变化的动态信息同步至所述新模块;

当在所述虚拟交换机上接收到网络流量时,发送至所述同步旧模块静态配置和动态信息后的新模块。

优选地,所述静态配置包括网络业务配置,所述同步新模块和所述旧模块的静态配置的步骤包括:

获取所述旧模块的网络业务配置;

将所述旧模块的网络业务配置同步至所述新模块。

优选地,所述同步新模块和所述旧模块的静态配置的步骤,还包括:

当所述旧模块的网络业务配置接收到新的网络业务配置时,将所述新的网络业务配置同步至所述新模块。

优选地,所述动态信息包括网络会话,所述记录旧模块不断变化的动态信息的步骤包括:

采集所述旧模块的网络会话;

将所述网络会话采用第一状态标识记录在位图中。

优选地,所述将旧模块不断变化的动态信息同步至所述新模块的步骤包括:

将所述位图中为第一状态标识的网络会话拷贝到所述新模块中;

将所述拷贝到新模块中的网络会话对应的第一状态标识修改为第二状态标识。

优选地,所述记录旧模块的动态信息的步骤还包括:

统计所述位图中为第一状态标识的网络会话的数量;

统计进行所述同步新模块和所述旧模块的动态信息的同步时间;

判断所述数量是否小于第一预设阈值,和/或,所述同步时间是否达到预设时间;

若所述数量小于第一预设阈值,和/或,所述同步时间达到预设时间,则缓存发送至所述旧模块的网络会话。

优选地,还包括:

若所述数量大于或等于第一预设阈值,和/或,所述同步时间没有达到预设时间,则判断所述数量是否大于第二预设阈值;

若所述数量大于第二预设阈值,则返回所述将所述位图中为第一状态标识的网络会话拷贝到所述新模块中的步骤中。

优选地,所述将旧模块不断变化的动态信息同步至所述新模块的步骤包括:

将所述位图中为第一状态标识的网络会话全部拷贝到所述新模块中;

将所述缓存的旧模块网络会话发送至所述新模块。

优选地,所述新模块具有指定接口,所述当在虚拟交换机上接收到网络流量时,发送至所述同步旧模块静态配置和动态信息后的新模块的步骤包括:

在所述虚拟交换机的处理函数指针切换至所述新模块的指定接口;

当在所述虚拟交换机接收到的网络流量时,通过所述指定接口发送至所述新模块。

本申请实施例还公开了一种虚拟交换机的升级装置,所述虚拟交换机包括旧模块,所述旧模块包括静态配置和动态信息,所述的装置包括:

新模块加载模块,用于在所述虚拟交换机上加载新模块;

静态配置同步模块,用于同步所述新模块和所述旧模块的静态配置;

动态信息记录模块,用于在所述旧模块的动态信息不断变化的过程中,记录所述旧模块不断变化的动态信息;

动态信息同步模块,用于将所述旧模块不断变化的动态信息同步至所述新模块;

网络流量切换模块,用于当在所述虚拟交换机上接收到网络流量时,发送至所述同步旧模块静态配置和动态信息后的新模块。

优选地,所述静态配置包括网络业务配置,所述静态配置同步模块包括:

网络业务配置获取子模块,用于获取所述旧模块的网络业务配置;

网络业务配置同步子模块,用于将所述旧模块的网络业务配置同步至所述新模块。

优选地,还包括:

新网络业务配置同步子模块,用于当所述旧模块的网络业务配置接收到新的网络业务配置时,将所述新的网络业务配置同步至所述新模块。

优选地,所述动态信息包括网络会话,所述动态信息记录模块包括:

网络会话采集子模块,用于采集所述旧模块的网络会话;

网络会话记录子模块,用于将所述网络会话采用第一状态标识记录在位图中。

优选地,所述动态信息同步模块包括:

第一会话拷贝子模块,用于将所述位图中为第一状态标识的网络会话拷贝到所述新模块中;

第一标识修改子模块,用于将所述拷贝到新模块中的网络会话对应的第一状态标识修改为第二状态标识。

优选地,所述动态信息记录模块包括:

会话数量统计子模块,用于统计所述位图中为第一状态标识的网络会话的数量;

同步时间统计子模块,用于统计进行所述同步新模块和所述旧模块的动态信息的同步时间;

第一判断子模块,用于判断所述数量是否小于第一预设阈值,和/或,所述同步时间是否达到预设时间;若所述数量小于第一预设阈值,和/或,所述同步时间达到预设时间,则调用会话缓存子模块,若所述数量大于或等于第一预设阈值,和/或,所述同步时间没有达到预设时间,则调用第二判断子模块;

会话缓存子模块,用于缓存发送至所述旧模块的网络会话。

优选地,还包括:

第二判断子模块,用于判断所述数量是否大于第二预设阈值;则调用第一会话拷贝子模块。

优选地,所述动态信息同步模块包括:

第二会话拷贝子模块,用于将所述位图中为第一状态标识的网络会话全部拷贝到所述新模块中;

缓存会话发送子模块,用于将所述缓存的旧模块网络会话发送至所述新模块。

优选地,所述新模块具有指定接口,所述网络流量切换模块包括:

指定接口切换子模块,用于在所述虚拟交换机的处理函数指针切换至所述新模块的指定接口;

网络流量发送子模块,用于当在所述虚拟交换机接收到的网络流量时,通过所述指定接口发送至所述新模块。

本申请实施例包括以下优点:

本申请实施例在虚拟交换机加载新模块进行升级时,同步虚拟交换机的新模块和旧模块的静态配置和动态信息,在升级结束后,该虚拟交换机的网络流量从旧模块切换到新模块中。在升级过程中,虚拟交换机旧模块的动态信息仍然在不断地变化中,应用本申请实施例可以保持旧模块与新模块之间动态信息的一致性,意味着本申请实施例的升级方式为一种热升级方式,即,在升级过程中,虚拟交换机能够在不中断旧模块接收并处理动态信息的情况下,将旧模块变化的动态信息也同步到新模块中,使得新模块和旧模块之间的动态信息始终保持一致,实现虚拟交换机的平滑升级。

附图说明

图1是一种虚拟机和虚拟交换机的连接示意图;

图2是一种虚拟化网络的架构示意图;

图3是本申请的一种虚拟交换机的升级方法实施例的步骤流程图;

图4是本申请的一种虚拟交换机静态配置同步的示意图;

图5是本申请的一种虚拟交换机动态信息同步的示意图;

图6是本申请的一种虚拟交换机网络会话同步的流程图;

图7是本申请的一种网络会话同步的伪代码示意图;

图8a-8e是本申请的一种虚拟交换机的网络会话同步示意图;

图9是本申请的一种虚拟交换机的升级装置实施例的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图3,示出了本申请的一种虚拟交换机的升级方法实施例的步骤流程图,所述虚拟交换机可以包括旧模块,所述的方法具体可以包括如下步骤:

步骤101,在所述虚拟交换机上加载新模块;

在具体实现中,虚拟交换机是用于连接虚拟机和服务器外部物理网络的通道,虚拟交换机中的模块需要定期以达到更好的性能。

在升级时,可对于虚拟交换机的旧模块进行使用新模块替代。在一种示例中,虚拟交换机的模块可以为一个或多个,在升级时可只升级部分,例如,可以将虚拟交换机旧的datapath模块替换为新的datapath模块。

本申请实施例对于虚拟交换机的升级,可以保证其接入的所有虚拟机的网络业务不受影响,即透明无感知。

步骤102,同步所述新模块和所述旧模块的静态配置;

在本申请实施例中,整个虚拟交换机的升级过程可以划分为两部分,下面以linux操作系统作为运行环境为例,虚拟交换机以系统内核驱动的形式运行。

在本申请的一种优选实施例中,所述静态配置可以包括网络业务配置,所述步骤102可以包括如下子步骤:

子步骤s11,获取所述旧模块的网络业务配置;

子步骤s12,将所述旧模块的网络业务配置同步至所述新模块。

在本申请的一种优选实施例中,所述步骤102,还可以包括如下子步骤:

子步骤s13,当所述旧模块的网络业务配置接收到新的网络业务配置时,将所述新的网络业务配置同步至所述新模块。

虚拟交换机的升级的第一部分是准备阶段,首先进行新模块和旧模块之间的网络业务配置的一致性,其中,网络业务配置可以包括安全性规则,防火墙规则,路由表项等等。

参照图4,虚拟交换机包括旧模块avs1.ko和新模块avs2.ko,在avs1.ko正在运行中加载avs2.ko,但此时网络流量还跑在avs1.ko中。在本申请实施例中通过controller,将avs1.ko的网络业务配置同步给avs2.ko,使得虚拟交换机新模块和旧模块的网络业务配置保持一致。

在同步网络业务配置的过程中,如果有新的网络业务配置下发到虚拟交换机中,也将同时配置到新模块和旧模块,始终保持两者网络业务配置的一致性。

步骤103,在所述旧模块的动态信息不断变化的过程中,记录所述旧模块不断变化的动态信息;

步骤104,将所述旧模块不断变化的动态信息同步至所述新模块;

虚拟交换机的升级的第二部分是动态信息的同步过程,对于某些网络业务的动态信息,如网络地址转换、有状态的防火墙等等,需要在升级前后保持一致性。

在本申请实施例的一种示例中,所述动态信息可以包括网络会话,所述步骤103可以包括:

子步骤s21,采集所述旧模块的网络会话;

子步骤s22,将所述网络会话采用第一状态标识记录在位图中。

在具体实现中,网络会话又可以称为网络连接,session等等,表示端到端在网络上交互的所有信息,一般包括两个方向上的两条网络流量和网络连会话状态。其中,两个方向表示双向,例如,网元a访问网元b的方向,以及,网元b回访网元a的方向。

在本申请实施例中,可以采用位图(bitmap)这种的数据结构来记录网络会话的状态变化,位图里的每个bit代表一个网络会话的状态标识,bit可以置为dirty或clear。例如,对于旧模块中初始的网络会话,以及,在升级过程中接收到的网络会话,在位图中采用dirty作为状态标识进行记录。

本申请实施例在升级开始后,在同步新模块和旧模块的静态配置时,开始采集旧模块的网络会话,并采用对应bit记录在位图中。第一状态标识可以为dirty,初始情况下,所有网络会话的bit都置dirty。

由于本申请实施例为热升级方式,旧模块不中断网络会话的接收和处理,因此位图中网络会话的状态标识,随时因为网络会话的到来而发生变化,当拷贝完一轮位图中的网络会话之后,旧模块内部的某些网络会话又发生了变化,这些发生变化的网络会话也会在位图中被置dirty。

需要说明的是,在位图中可以1,0这种方式来表示dirty和clear,只要能够区分拷贝前后的网络会话即可,本申请实施例对此不加以限制。另外,除了上述采用位图来记录旧模块中网络会话之外,也可以采用其他方式来进行记录,本申请实施例同样对此不加以限制。

在本申请实施例的一种示例中,所述步骤104可以包括:

子步骤s31,将所述位图中为第一状态标识的网络会话拷贝到所述新模块中;

子步骤s32,将所述拷贝到新模块中的网络会话对应的第一状态标识修改为第二状态标识。

第二状态标识可以为clear。新模块与旧模块进行网络会话的同步时,会将位图中标记dirty的网络会话拷贝到新模块中,位图中拷贝完之后网络会话对应的dirty被置为clear。

在本申请实施例的一种示例中,所述步骤103还可以包括:

子步骤s23,统计所述位图中为第一状态标识的网络会话的数量;

子步骤s24,统计进行所述同步新模块和所述旧模块的动态信息的同步时间;

子步骤s25,判断所述数量是否小于第一预设阈值,和/或,所述同步时间是否达到预设时间;若所述数量小于第一预设阈值,和/或,所述同步时间达到预设时间,则执行子步骤s26;

子步骤s26,缓存发送至所述旧模块的网络会话。

在本申请实施例的一种示例中,所述步骤104还可以包括:

子步骤s33,将所述位图中为第一状态标识的网络会话全部拷贝到所述新模块中;

子步骤s34,将所述缓存的旧模块网络会话发送至所述新模块。

由于旧模块不中断网络会话的接收和处理,因此位图中的网络会话可能一直处于变化的状态中,而本申请实施例也不可能一直重复做拷贝的操作,故而在本申请实施例中增加判决,设定一个或多个条件,当在同步网络会话过程中达到预设条件时,开始执行最后一轮的网络会话连接同步。

当开始执行最后一轮的网络会话连接同步时,暂停旧模块的网络报文处理,所有新来的网络报文被缓存,保证所有dirty的网络会话都被同步到了新模块中。由于没有新的网络报文被处理,旧模块的网络会话的状态也不会再变化,因此最后一轮的同步结束之后就可以保证新模块和旧模块的网络会话是完全一致的。

在本申请实施例中,可以统计在位图中为dirty的网络会话的数量,和/或,统计开始进行新模块和旧模块网络会话同步的时间,作为是否进行最后一轮的网络会话同步的判决条件。

在暂停旧模块的网络报文处理后,继续将位图中dirty的网络会话全部拷贝到新模块中。同时,还可以将缓存的旧模块的网络会话发送至新模块中,使得新模块和旧模块上的网络会话保持一致。

在本申请实施例的一种示例中,所述步骤103还可以包括:

子步骤s27,若所述数量大于或等于第一预设阈值,和/或,所述同步时间没有达到预设时间,则判断所述数量是否大于第二预设阈值;若所述数量大于第二预设阈值,则调用所述子步骤s31。

如果位图中dirty的网络会话数量小于第一预设阈值,或者,连接同步时间已经达到预设时间,进入网络会话同步的最后阶段,反之,则可以重复进行将位图中为dirty的网络会话拷贝到新模块的步骤,即进入循环操作,开始下一轮网络会话的同步。

考虑到如果只要有dirty的网络会话就继续进行将位图中为dirty的网络会话拷贝到新模块这些步骤,可能比较需要重复执行的次数会比较多,故在本申请实施例中还可以增加多一个判决条件。

具体地,如果位图中dirty的网络会话的数量超过了第二预设阈值,那么才开始下一轮网络会话的同步,重复进行将位图中为dirty的网络会话拷贝到新模块的步骤中,也即是返回子步骤s31。

在本申请的一种优选实施方式中,考虑到有些网络会话并不是很重要,如果全部拷贝到新模块中不仅费时,也不必要,因此可以在同步网络会话时,只进行指定的网络会话的同步,本申请实施例对此不加以限制。

需要说明的是,第一预设阈值和第二预设阈值可以按照旧模块网络会话总数量比例来进行设定,比如可以设置为10%,8%,当然,也可以设置为某一固定的数值,本申请实施例对此不加以限制。另外,第一预设阈值和第二预设阈值的数值可以根据实际设置为相同或不同,本申请实施例对此也不加以限制。为了使本领域技术人员更好地理解动态同步的过程,以下采用一个具体的步骤流程进行说明。参照图6,网络会话同步具体可以为如下子步骤:

步骤s41,采集所述旧模块的网络会话;

步骤s42,将所述网络会话采用第一状态标识记录在位图中;

步骤s43,将所述位图中为第一状态标识的网络会话拷贝到所述新模块中;

步骤s44,将所述拷贝到新模块中的网络会话对应的第一状态标识修改为第二状态标识;

步骤s45,统计所述位图中为第一状态标识的网络会话的数量;

步骤s46,统计进行所述同步新模块和所述旧模块的动态信息的同步时间;

步骤s47,判断所述数量是否小于第一预设阈值,或者,所述同步时间是否达到预设时间;若所述数量小于第一预设阈值,或者,所述同步时间达到预设时间,则执行步骤s48;若所述数量大于或等于第一预设阈值,并且,所述同步时间没有达到预设时间,则执行步骤s411;

步骤s48,缓存发送至所述旧模块的网络会话;

步骤s49,将所述位图中为第一状态标识的网络会话全部拷贝到所述新模块中;

步骤s410,将所述缓存的旧模块网络会话发送至所述新模块;

步骤s411,判断所述数量是否大于第二预设阈值,若所述数量大于第二预设阈值,则返回所述步骤s43。

参照图7,所示为本申请的一种网络会话同步的伪代码示意图,在本示例的新模块avs2中,当bitmap.dirty_num>threshold,即位图中dirty的网络会话数量达到预设阈值时,进行网络会话的拷贝操作,并且对于位图中拷贝过的网络会话的状态标识,将从dirty修改为clear。在本示例的旧模块avs1中,则不断抓取新来的网络会话,并将抓取到的网络会话写入位图并置dirty。

步骤105,当在所述虚拟交换机上接收到动态信息时,发送至所述同步旧模块静态配置和动态信息后的新模块。

当虚拟交换机的升级结束后,把网络流量切换到虚拟交换机的新模块上。其中,网络流量又称为flow,用端到端在一个方向上的网络报文的元组来表示,一般是五元组。

在本申请的一种优选实施例中,所述新模块可以具有指定接口,所述步骤105可以包括如下子步骤:

子步骤s51,在所述虚拟交换机的处理函数指针切换至所述新模块的指定接口;

子步骤s52,当在所述虚拟交换机接收到的网络流量时,通过所述指定接口发送至所述新模块。

在本申请实施例中,所有网络报文的处理函数指针将切换到新模块的指定接口上,让新的网络报文通过虚拟交换机的新模块处理,至此热升级结束。

本申请实施例在虚拟交换机加载新模块进行升级时,同步虚拟交换机的新模块和旧模块的静态配置和动态信息,在升级结束后,该虚拟交换机的网络流量从旧模块切换到新模块中。在升级过程中,虚拟交换机旧模块的动态信息仍然在不断地变化中,应用本申请实施例可以保持旧模块与新模块之间动态信息的一致性,意味着本申请实施例的升级方式为一种热升级方式,即,在升级过程中,虚拟交换机能够在不中断旧模块接收并处理动态信息的情况下,将旧模块变化的动态信息也同步到新模块中,使得新模块和旧模块之间的动态信息始终保持一致,实现虚拟交换机的平滑升级。

为使本领域技术人员更好地理解本申请实施例,以下通过具体的示例来说明本申请实施例中基于位图的虚拟交换机升级方法。

在虚拟交换机进行升级时,首先在该虚拟交换机上加载新模块,然后开始同步新模块与旧模块的静态配置和动态信息,其中,对于动态信息的配置过程如下所示:

采集旧模块的网络会话,并将这几个网络会话记录在位图中,具体如图8a所示,在该位图中记录了旧模块中session1-session4(网络会话1-网络会话4)这几个网络会话,由于这些网络会话尚未同步到新模块中,故采用“1”记录。

将旧模块中的网络会话采集到位图后,开始将位图中为“1”的网络会话拷贝到新模块中,其中,对于拷贝到新模块后网络会话,由于已经同步到新模块中,故在位图中将其从“1”修改为“0”,具体如图8b所示。

在本申请中旧模块网络连接不中断,旧模块的动态信息仍然在不断地变化中,因此,在将旧模块的网络会话拷贝到新模块的过程中,有些网络会话由于发生变化,将重新由“0”置为“1”,具体如图8c所示。

对于旧模块的重新由“0”置为“1”网络会话,还将继续拷贝到新模块中,为了避免陷入死循环,在本申请实施例中统计新模块和旧模块的同步时间,以及,在位图中为“1”的网络会话的数量,当新模块和旧模块的同步时间达到预设时间(例如30分钟),或者,位图中为“1”的网络会话的数量超过预设阈值(例如100个),则可以截断旧模块网络连接,旧模块暂停处理网络会话,因此其网络会话将不会再发生变化。缓存发送给旧模块的网络会话,同时将位图中为“1”的网络会话拷贝到新模块中,最后将缓存的网络会话发送到新模块中,此时新模块和旧模块同步成功。

当然,如果新模块和旧模块的同步时间未达到预设时间,或者,位图中为“1”的网络会话的数量未超过预设阈值,则继续将位图中为“1”的网络会话拷贝到新模块中的步骤。

同步结束之后,将在先旧模块的所有网络会话切换到新模块指定的接口上,至此虚拟交换机的升级结束。同步结束后的位图,具体如图8d所示。

综上可知,具体如图8e所示,本申请实施例的虚拟交换机的旧模块与新模块同步过程中,为了实现热升级,旧模块不中断从网络处接收网络会话,新的网络会话使得位图发生变化,而本申请在最后一轮的网络会话同步前,都会采用该位图用于新模块的同步,由于不需要中断旧模块对于网络会话的接收后处理,故而本申请实施例能够实现虚拟交换机的热升级。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图9,示出了本申请的一种虚拟交换机的升级装置实施例的结构框图,所述虚拟交换机可以包括旧模块,所述的装置具体可以包括如下模块:

新模块加载模块201,用于在所述虚拟交换机上加载新模块;

静态配置同步模块202,用于同步所述新模块和所述旧模块的静态配置;

在本申请的一种优选实施例中,所述静态配置可以包括网络业务配置,所述静态配置同步模块202可以包括如下子模块:

网络业务配置获取子模块,用于获取所述旧模块的网络业务配置;

网络业务配置同步子模块,用于将所述旧模块的网络业务配置同步至所述新模块。

在本申请的一种优选实施例中,所述静态配置同步模块还202可以包括如下子模块:

新网络业务配置同步子模块,用于当所述旧模块的网络业务配置接收到新的网络业务配置时,将所述新的网络业务配置同步至所述新模块。

动态信息记录模块203,用于在所述旧模块的动态信息不断变化的过程中,记录所述旧模块不断变化的动态信息;

动态信息同步模块204,用于将所述旧模块不断变化的动态信息同步至所述新模块;

在本申请的一种优选实施例中,所述动态信息包括网络会话,所述动态信息记录模块203可以包括如下子模块:

网络会话采集子模块,用于采集所述旧模块的网络会话;

网络会话记录子模块,用于将所述网络会话采用第一状态标识记录在位图中。

在本申请的一种优选实施例中,所述动态信息同步模块204可以包括如下子模块:

第一会话拷贝子模块,用于将所述位图中为第一状态标识的网络会话拷贝到所述新模块中;

第一标识修改子模块,用于将所述拷贝到新模块中的网络会话对应的第一状态标识修改为第二状态标识。

在本申请的一种优选实施例中,所述动态信息记录模块203可以包括如下子模块:

会话数量统计子模块,用于统计所述位图中为第一状态标识的网络会话的数量;

同步时间统计子模块,用于统计进行所述同步新模块和所述旧模块的动态信息的同步时间;

第一判断子模块,用于判断所述数量是否小于第一预设阈值,和/或,所述同步时间是否达到预设时间;若所述数量小于第一预设阈值,和/或,所述同步时间达到预设时间,则调用会话缓存子模块,若所述数量大于或等于第一预设阈值,和/或,所述同步时间没有达到预设时间,则调用第二判断子模块;

会话缓存子模块,用于缓存发送至所述旧模块的网络会话。

在本申请的一种优选实施例中,所述动态信息记录模块203可以包括如下子模块:

第二判断子模块,用于判断所述数量是否大于第二预设阈值;则调用第一会话拷贝子模块。

在本申请的一种优选实施例中,所述动态信息同步模块204可以包括如下子模块:

第二会话拷贝子模块,用于将所述位图中为第一状态标识的网络会话全部拷贝到所述新模块中;

缓存会话发送子模块,用于将所述缓存的旧模块网络会话发送至所述新模块。

网络流量切换模块204,用于当在所述虚拟交换机上接收到网络流量时,发送至所述同步旧模块静态配置和动态信息后的新模块。

在本申请的一种优选实施例中,所述新模块可以具有指定接口,所述网络流量切换模块204可以包括如下子模块:

指定接口切换子模块,用于在所述虚拟交换机的处理函数指针切换至所述新模块的指定接口;

网络流量发送子模块,用于当在所述虚拟交换机接收到的网络流量时,通过所述指定接口发送至所述新模块。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种虚拟交换机的升级方法和一种虚拟交换机的升级装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1