一种会话备份方法及装置与流程

文档序号:17725830发布日期:2019-05-22 02:30阅读:131来源:国知局
一种会话备份方法及装置与流程

本申请涉及通信技术领域,特别是涉及一种会话备份方法及装置。



背景技术:

为了保证网络设备连续稳定的运行,避免用户业务中断,可以通过板间备份技术来保障业务的可靠性。在主业务板接收到数据流后,为该数据流生成会话,并将会话信息备份至备业务板。后续若主业务板故障,可将数据流切换至备业务板,备业务板可通过已经备份的会话信息对接收到的数据流进行匹配并处理。

在主业务板的故障恢复后,备业务板将存储了会话信息的备份表项批量备份到主业务板,每个备份表项对应一个会话的会话信息。同时,备业务板将数据流回切至主业务板。如此,实现主备业务板的倒换。

在主备业务板的倒换过程中,若备业务板为一数据流创建会话,且还未将该会话对应的备份表项备份至主业务板,但,备业务板已将该数据流切换至主业务板中。此时,主业务板中不存在与该数据流匹配的备份表项,主业务板会再次为该数据流创建会话,而主业务板为该数据流创建的会话与备业务板为该业务流创建的会话不一致,将会导致主备业务板针对同一业务流保存的备份表项不一致,出现数据流传输中断的问题。



技术实现要素:

有鉴于此,本申请实施例提供一种会话备份方法及装置,以解决主业务板和备业务板针对同一业务流保存的备份表项不一致导致的数据流传输中断的问题。具体技术方案如下:

第一方面,本申请实施例提供一种会话备份方法,该方法应用于备业务板包括的任一vcpu,该方法包括:

当接收到主业务板发送的启动备份指令时,将自身存储的备份表项对应的备份标记删除;

接收主业务板发送的第一备份消息,第一备份消息中携带主业务板中存储的具有备份标记的备份表项;

若已存储备份表项包括的第一备份表项,则为第一备份表项设置备份标记;

若未存储备份表项包括的第二备份表项,则存储第二备份表项,并为第二备份表项设置备份标记;

将不具有备份标记的备份表项删除。

在一种可能的实现方式中,接收所述主业务板发送的第一备份消息,包括:

接收主业务板包括的每个vcpu发送的第一备份消息,第一备份消息携带第一vcpu标识,第一vcpu标识为主业务板上发送第一备份消息的vcpu的标识。

在一种可能的实现方式中,若已存储备份表项包括的第一备份表项,则为第一备份表项设置备份标记,包括:

若第一备份表项存储于目的vcpu对应的备份表项,则目的vcpu为第一备份表项设置备份标记,目的vcpu为所述备业务板中与第一vcpu标识对应的vcpu。

在一种可能的实现方式中,若未存储备份表项包括的第二备份表项,则存储第二备份表项,并为第二备份表项设置备份标记,包括:

若第二备份表项未存储于目的vcpu对应的备份表项,则目的vcpu存储第二备份表项,并为第二备份表项设置备份标记,目的vcpu为备业务板中与第一vcpu标识对应的vcpu。

在一种可能的实现方式中,将不具有备份标记的备份表项删除,包括:

遍历自身存储的备份表项,将不具有备份标记的备份表项删除。

在一种可能的实现方式中,在将不具有备份标记的备份表项删除之后,该方法还包括:

接收主业务板发送的第二备份消息,第二备份消息中携带主业务板中存储的不具有备份标记的备份表项和第二vcpu标识;

备业务板中与第二vcpu标识对应的vcpu对第二备份消息中的备份表项进行备份。

第二方面,本申请实施例提供一种会话备份装置,所述装置应用于备业务板包括的任一vcpu,所述装置包括:

接收模块,用于接收主业务板发送的启动备份指令;

删除模块,用于当接收模块接收到启动备份指令时,将自身存储的备份表项对应的备份标记删除,备份表项用于存储会话信息;

接收模块,用于接收主业务板发送的第一备份消息,第一备份消息中携带主业务板中存储的具有备份标记的备份表项;

设置模块,用于若已存储接收模块接收的第一备份消息中携带的第一备份表项,则为第一备份表项设置备份标记;若未存储第一备份消息中携带的第二备份表项,则存储第二备份表项,并为第二备份表项设置备份标记;

删除模块,还用于将不具有备份标记的备份表项删除。

在一种可能的实现方式中,接收模块,具体用于接收主业务板包括的每个vcpu发送的第一备份消息,第一备份消息携带第一vcpu标识,第一vcpu标识为主业务板上发送第一备份消息的vcpu的标识。

在一种可能的实现方式中,设置模块,具体用于若第一备份表项存储于目的vcpu对应的备份表项,则为第一备份表项设置备份标记,目的vcpu为备业务板中与第一vcpu标识对应的vcpu。

在一种可能的实现方式中,设置模块,具体用于若第二备份表项未存储于目的vcpu对应的备份表项,则存储第二备份表项,并为第二备份表项设置备份标记,目的vcpu为备业务板中与第一vcpu标识对应的vcpu。

在一种可能的实现方式中,删除模块,用于遍历自身所属的vcpu存储的备份表项,将不具有备份标记的备份表项删除。

在一种可能的实现方式中,该装置还包括备份模块;

接收模块,还用于接收主业务板发送的第二备份消息,第二备份消息中携带主业务板中存储的不具有备份标记的备份表项和第二vcpu标识;

备份模块,用于对第二备份消息中的备份表项进行备份。

第三方面,本申请实施例提供一种备份设备,该备份设备可以为备业务板,该备份设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面中所述的方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的方法。

第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中所述的方法。

采用本申请实施例提供的会话备份的方法,当备业务板包括的任一vcpu接收到主业务板发送的启动备份指令时,将自身存储的备份表项对应的备份标记删除。在接收到主业务板发送的第一备份消息后,确定是否已存储第一备份消息包括的备份表项。

将未存储的备份表项存储在本板中,同时,将已存储的第一备份消息包括的备份表项均设置备份标记,并将不具有备份标记的备份表项删除,进而使得主业务板与备业务板中存储的备份表项一致,可以避免主业务板和备业务板针对同一业务流保存的备份表项不一致导致的数据流传输中断的问题。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种会话备份系统的结构示意图;

图2为本申请实施例提供的一种会话存储方式的实例性示意图;

图3为本申请实施例提供的一种会话备份方法的流程图;

图4为本申请实施例提供的另一种会话备份方法的流程图;

图5为本申请实施例提供的一种会话备份装置的结构示意图;

图6为本申请实施例提供的一种备份设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

为了方便理解,首先对本申请实施例中涉及到的术语进行解释说明。

1、会话:一条数据流首次经过一个设备时,该设备会为该数据流创建一个会话,后续设备接收到与该会话匹配的数据流,可直接根据会话信息对数据流进行转发。如果一段时间内设备未接收到与该会话匹配的数据流,则删除该会话信息。

会话信息的五元组为数据流的源ip地址、源端口(port)、协议(protocol)、目的互联网协议(internetprotocol,ip)地址、目的port。设备可以将会话信息以键-值(key-value)的形式存储于哈希表中,具体可以将五元组作为key,一个会话信息包括一个正向key和一个反向key,分别用于正向报文(发送端发送给设备的报文,或者发送端通过设备转发的报文)和反向报文(设备向发送端返回的报文,或者设备转发给发送端的报文)的匹配。正向key的源ip地址和源port是反向key的目的ip地址和目的port,且正向key的目的ip地址和目的port为反向key的源ip地址和源port。

2、网络地址转换(networkaddresstranslation,nat)转换后的正向key、反向key:

若本申请实施例涉及到的设备为连接两个网络的边缘设备,则需要对接收到的报文中的ip地址和端口号进行nat转换。

本申请实施例中以对报文中的源ip地址和源端口号进行nat转换为例进行说明。

其中,正向key为nat转换前的:源ip地址、源port、protocol、目的ip、目的port。

反向key的目的ip地址是将上述源ip地址进行nat转换后得到的natip地址,目的port是将上述源port进行nat转换后得到的natport。即反向key为:源ip地址、源port、protocol、natip地址、natport。

示例性地,若设备接收到的数据流的源ip地址为ip地址1、源port为port1;目的地址为ip地址2、目的port为port2。ip地址1经nat转换后为ip地址a,port1经nat转换后为porta。

若正向key为:ip地址1、port1、protocol、ip地址2、port2。

则反向key为:ip地址2、port2、protocol、ip地址a、porta。

3、板间备份

本申请实施例中的板间备份是指,为了保证业务的可靠性,两个业务板之间对运行态数据进行备份,运行态数据是指设备接收到数据流时创建的表项,例如该表项可以为设备为数据流创建的会话对应的会话信息。

主业务板创建会话后,可将会话信息备份至备业务板,当主业务板故障时,数据流将被切换至备业务板,备业务板可通过已备份的会话信息对业务流进行转发,使得业务流量不中断。当故障的主业务板恢复时,数据流将被回切至主业务板。

4、备份标记

主业务板将会话信息备份至备业务板后,主业务板为该会话信息添加一个备份标记,表示该会话信息已被备份,备业务板对会话信息进行备份后,也要为该会话信息设置一个备份标记,表示该会话信息是从主业务板备份过来的。

当主业务板中的会话信息老化时,主业务板可以根据备份标记,通知备业务板删除已备份的会话信息。对于主业务板存储的未设置备份标记的会话信息,主业务板无需通知备业务板进行删除。

备业务板不能主动删除设置了备份标记的会话信息,当接收到主业务板发送的删除消息后,才可以根据删除消息删除该会话信息。

结合上述描述,备份表项中存储了会话信息,会话信息包括会话的正向key和反向key,若主备业务板针对同一业务流保存的备份表项不一致,即主备业务板针对同一业务流保存的正向key和/或反向key不一致。

示例性地,备业务板为数据流a存储的备份表项中包括以下信息:

正向key:ip地址1、port1、protocol、ip地址2、port2。

反向key:ip地址2、port2、protocol、ip地址a、porta。

ip地址1经nat转换后为ip地址a,port1经nat转换后为porta

若备业务板将上述备份表项备份至主业务板之前,已将数据流a切换至主业务板,则主业务板将为数据流a创建会话,主业务板为数据流a创建会话时可能使用不同的nat地址,例如ip地址1经nat转换后为ip地址b,port1经nat转换后为portb,则主业务板为数据流a存储的备份表项中包括以下信息:

正向key:ip地址1、port1、protocol、ip地址2、port2。

反向key:ip地址2、port2、protocol、ip地址b、portb。

由于主业务板已为数据流a创建了新的备份表项,所以将根据新的备份表项来转发数据流,即若接收到来自ip地址2的port2的数据流,将转发至ip地址b的portb。

若主业务板发生故障,数据流a再次被切换至备业务板,备业务板若接收到来自ip地址2的port2的数据流,将根据自身存储的备份表项将数据流转发至ip地址a的porta,然而由于主业务板之前创建了新的会话,ip地址2的port2与ip地址a的porta之间的连接已断开,此时备业务板无法将将数据流转发至ip地址a的porta,将导致数据流传输失败。

为了解决上述问题,本申请实施例提供一种会话备份方法,该方法可以应用于如图1所述的会话备份系统中,该备份系统中包括主业务板和备业务板。

其中,主业务板用于为接收到的数据流创建会话,并将会话信息备份至备业务板。备业务板用于对主业务板创建的会话对应的会话信息进行备份。当主业务板故障时,可将流量切换至备业务板,备业务板可根据已备份的会话信息对数据流进行转发。

在本申请实施例中,主业务板和备业务板都具有多个虚拟中央处理器(virtualcentralprocessingunit,vcpu),示例性地,如图2所示,主业务板上有vcpu1至vcpu5,每个vcpu对应一个链表,用于存储会话信息。例如,若vcpu1接收到的数据流a不能与已存储的会话信息匹配,则为数据流a新建一个会话a,将会话a对应的会话a存储在vcpu1对应的链表的尾部。同理,若vcpu2接收到的数据流b不能与已存储的会话信息匹配,则为数据流b新建一个会话b,并将新建的会话b对应的会话信息b存储在vcpu2对应的链表的尾部,即图2中每一个格对应一个会话的会话信息。

其中,图2仅为示例,对会话信息的存储方式不限于图2中的链表形式。

在一种可能的场景中,由于原来的主业务板故障,数据流已被切换至备业务板(已在位板),即该已在位板升级为主业务板。后续插入了新的业务板,已在位板可将会话信息批量备份至新插入的业务板,在完成批量备份之后,可将该新插入的业务板升级为主业务板,已在位业务板将业务流切换至新插入的主业务板,已在位板降级为备业务板。在下述流程中描述的主业务板为新插入的业务板,备业务板为已在位板。

结合这种场景,对本申请实施例提供的会话备份方法进行说明,该方法应用于备业务板包括的任一vcpu,如图3所示,该方法包括:

s301、当接收到主业务板发送的启动备份指令时,将自身存储的备份表项对应的备份标记删除。

其中,在备业务板将数据流回切至主业务板之前,备业务板可将会话信息批量备份至主业务板,且备业务板为已备份至主业务板的会话信息设置备份标记,相应地,主业务板也会为接收到的备份会话信息设置备份标记。

然后,在备业务板将数据流回切至主业务板后,主业务板还会接收到新的业务流并创建新的会话,主业务板可暂时不对新创建的会话对应的会话信息进行定时备份。

主业务板可通过启动备份指令通知备业务板的各vcpu准备进行平滑流程,即准备执行下述s302至s305的流程,备业务板的各vcpu可将自身存储的备份表项对应的备份标记删除。

其中,备份表项用于存储会话信息,可以理解为一条备份表项对应一个会话对应的会话信息。在上文中,备业务板将会话信息批量备份至主业务板之后,为会话信息设置了备份标记,在本申请实施例中,备业务板的各vcpu可将为这些会话信息设置的备份标记删除。

s302、接收主业务板发送的第一备份消息,第一备份消息中携带主业务板中存储的具有备份标记的备份表项。

具体地,备业务板的各vcpu可分别接收主业务板包括的每个vcpu发送的第一备份消息,每个第一备份消息中分别携带第一vcpu标识,第一vcpu标识为主业务板上发送第一备份消息的vcpu的标识。备业务板的驱动可根据第一vcpu标识,确定第一vcpu标识对应的目的vcpu,进而将第一备份消息上送至目的vcpu。

例如,结合图2,若主业务板上存在vcpu1至vcpu5,则vcpu1至vcpu5分别向备业务板发送一个第一备份消息,vcpu1发送的第一备份消息中携带vcpu1对应的链表中存储的具有备份标记的备份表项,以及vcpu1的标识;vcpu2发送的第一备份消息中携带vcpu2对应的链表中存储的具有备份标记的备份表项,以及vcpu2的标识,其余的vcpu发送的第一备份消息中携带的内容类似,此处不再赘述。

相应地,备业务板的驱动接收到携带vcpu1的标识的第一备份消息后,根据vcpu1的标识,确定备业务板上vcpu1的标识对应的vcpu,例如备业务板上的vcpu1,驱动可将该第一备份消息上送至备业务板的vcpu1;同理,备业务板的驱动接收到携带vcpu2的标识的第一备份消息后,将该第一备份消息上送至备业务板的vcpu2。

s303、若已存储备份表项包括的第一备份表项,则为第一备份表项设置备份标记。

具体地,若第一备份表项存储于目的vcpu对应的备份表项,则目的vcpu为第一备份表项设置备份标记。

示例性地,若备业务板接收到的其中一个备份消息中携带备份表项1和备份表项2,且携带vcpu1的标识,则备业务板的vcpu1可判断自身是否存储了备份表项1和备份表项2,若已存储,则备业务板的vcpu1为存储的备份表项1和备份表项2设置备份标记。

s304、若未存储第一备份消息中携带的第二备份表项,则存储第二备份表项,并为第二备份表项设置备份标记。

具体地,若第二备份表项未存储于目的vcpu对应的备份表项,则备业务板的目的vcpu存储第二备份表项,并为第二备份表项设置备份标记。

示例性地,若备业务板接收到的其中一个备份消息中携带备份表项3,且携带vcpu3的标识,则备业务板的vcpu3可判断自身是否存储了备份表项3,若未存储,则备业务板的vcpu3存储备份表项3,并为备份表项3设置备份标记。

需要说明的是,在上述s303和s304中各vcpu平滑结束后,则可执行s305。

s305、将不具有备份标记的备份表项删除。

备业务板的每个vcpu可分别遍历各自存储的备份表项,将不具有备份标记的备份表项删除。

采用本申请实施例提供的会话备份的方法,当备业务板包括的任一vcpu接收到主业务板发送的启动备份指令时,将自身存储的备份表项对应的备份标记删除。在接收到主业务板发送的第一备份消息后,确定是否已存储第一备份消息包括的备份表项。

将未存储的备份表项存储在本板中,同时,将已存储的第一备份消息包括的备份表项均设置备份标记,并将不具有备份标记的备份表项删除,进而使得主业务板与备业务板中存储的备份表项一致,可以避免主业务板和备业务板针对同一业务流保存的备份表项不一致导致的数据流传输中断的问题。

在上述流程中,主业务板暂停了定时备份流程,在经过上述流程之后,除主业务板新建的会话对应的会话信息之外,主业务板与备业务板中存储的备份表项一致,则主业务板可启动定时备份流程,以对新创建的会话对应的会话信息进行备份。

备业务板可接收主业务板发送的第二备份消息,第二备份消息中携带主业务板中存储的不具有备份标记的备份表项和第二vcpu标识。第二vcpu标识为业务板中发送该第二备份消息的vcpu的标识。

例如,若主业务板中的备份表项a和备份表项b均不具有备份标记,则第二备份消息中可携带备份表项a和备份表项b。

主业务板具体以vcpu为单位向备业务板发送第二备份消息,即主业务板的每个vcpu分别向备业务板发送第二备份消息。

例如,在多核设备中,主业务板可以由vcpu1新建会话1,并由vcpu1生成备份表项1(即存储会话1对应的会话信息)。然后在主业务板接收到新的业务流时,由vcpu2新建会话2,并由vcpu2生成备份表项2。同理,后续还可以由vcpu3新建会话3,并由vcpu3生成备份表项3。

在主业务板启动定时备份后,主业务板的vcpu1向备业务板发送备份消息1,备份消息1携带备份表项1和vcpu1的标识。主业务板的vcpu2向备业务发送备份消息2,备份消息2携带备份表项2和vcpu2的标识。主业务板的vcpu3向备业务板发送备份消息3,备份消息3携带备份表项3和vcpu3的标识。

备业务板接收到第二备份消息后,可查找与第二vcpu标识对应的vcpu,然后备业务板中与第二vcpu标识对应的vcpu对第二备份消息中的备份表项进行备份。

可选地,备业务板查找与第二vcpu标识对应的vcpu可通过以下三种方式实现:

方式一、主业务板和备业务板可分别获取对方的vcpu数量,若主业务板与备业务板包括的vcpu数量相同,则备业务板可查找与第二vcpu标识相同的vcpu,由该vcpu对第二备份消息中的备份表项进行备份。

例如,在主业务板与备业务板包括的vcpu数量相同的情况下,若备业务板接收到的备份消息1中携带vcpu1的标识,则由备业务板的vcpu1存储备份表项1。同理,若备份消息2中携带vcpu2的标识,则由备业务板的vcpu2存储备份表项2。

若主业务板与备业务板包括的vcpu数量不同,则备业务板可计算第二vcpu标识的哈希值,查找与该哈希值对应的vcpu,由查找到的vcpu对第二备份消息中的备份表项进行备份。

方式二、备业务板可查找与第二vcpu标识相同的vcpu,若可以查找到,则由该vcpu对第二备份消息中的备份表项进行备份;若未查找到与第二vcpu标识相同的vcpu,则计算第二vcpu的哈希值,由该哈希值对应的vcpu对第二备份消息中的备份表项进行备份。

方式三、预先设置主业务板的vcpu与备业务板的vcpu之间的对应关系,进而根据该对应关系查找第二vcpu标识对应的vcpu。

通过上述三种方式,可以使得来自主业务板的一个vcpu的备份表项,均由备业务板上对应的同一个vcpu进行处理。

在相关技术中,如果主业务板的vcpu3生成一个备份表项3,并向备业务板发送携带备份表项3的备份消息,备业务板有可能由vcpu6对该备份表项3进行备份。后续主业务板生成的备份表项3可能立即老化,并向备业务板发送删除消息,备业务板有可能由vcpu5接收并处理该删除消息,由于每个vcpu的繁忙程度不同,若备业务板的vcpu6的繁忙程度大于vcpu5的繁忙程度,则会出现vcpu5先处理删除消息,vcpu6后处理备份消息的情况,在vcpu5处理删除消息时,由于vcpu6还未对备份表项3进行备份,所以vcpu5无法查找到需要删除的备份表项3,故将删除消息丢弃,后续vcpu6再对备份表项3进行备份,会导致备份表项残留。

而应用本申请实施例提供的会话备份的方法,由于备份消息中携带主业务板上用于发送该备份消息的vcpu标识,使得备业务板可以根据该vcpu标识选择相应的vcpu对备份消息进行处理,使得主业务板上同一个vcpu发送的消息,都能够由备业务板上的同一个vcpu进行处理,例如上述例子中,主业务板的vcpu3发送的备份消息和删除消息均会由备业务板的vcpu3处理,同一个vcpu3一般会按照接收到消息的先后顺序处理,进而可以避免表项残留的问题。

以下结合具体的场景对本申请实施例提供的会话备份方法进行说明,在主业务板故障之后,数据流被切换至备业务板,然后设备中新插入了一个业务板,作为故障恢复后的主业务板,则需要将数据流重新切换至主业务板,如图4所示,已在位业务板降级为备业务板,插入业务板升级为主业务板,后续可通过平滑流程使得备业务板的备份表项与主业务板的备份表项一致,具体包括以下步骤:

首先,在执行图4所示的流程时,插入业务板已升级为主业务板,即数据流已经运行在主业务板上,且主业务板开始新建备份表项,主业务板的每个vcpu切换至waitstart(等待启动状态),在图4的流程中,主业务板不对新建的备份表项进行定时备份。

s401、主业务板通知备业务板准备开始平滑。

备业务板接收到该通知后,备业务板的所有vcpu同时切换至准备(prepare)状态。

s402、备业务板清除备份表项对应的备份标记。

备业务板的每个vcpu可分别清除自身存储的备份表项对应的备份标记,然后每个vcpu可进入进程(process)状态。

s403、备业务板以每vcpu为单位通知主业务板开始平滑。

主业务板的各vcpu接收到平滑通知后,可切换至process状态。

s404、主业务板以每vcpu为单位向备业务板发送备份消息,备份消息中携带备份表项以及vcpu标识。

其中,本步骤中的备份消息即为上述s302中的第一备份消息,可参考上述s302中的相关描述。

s405、若备份消息中携带的备份表项已存储于备业务板,则备业务板为该备份表项设置备份标记,若备份消息中的备份表项未存储于备业务板,则备业务板存储该备份表项,并为该备份表项设置备份标记。

s406、主业务板以每vcpu为单位通知备业务板平滑结束。

具体地,主业务板的vcpu确定已将自身存储的具有备份标记的备份表项均备份至备业务板,则主业务板的vcpu可切换至waitend状态,并通知备业务板相应的vcpu平滑结束。

备业务板的各vcpu在接收到平滑结束消息,且确定已处理完自身接收到的备份消息后,可切换至end状态。

s407、备业务板的每个vcpu分别遍历自身存储的备份表项,将不具有备份标记的备份表项删除。

示例性地,若备业务板的vcpu1接收到平滑结束的通知,则vcpu1遍历自身存储的备份表项,将不具有备份标记的备份表项删除,然后检查备业务板包括的其他vcpu是否遍历完成,若确定其他vcpu均遍历完成,则执行s408;若确定还存在未遍历完成的vcpu,则暂时不执行s408,其余vcpu遍历完成后也会进行上述判断,直至存在vcpu确定其余vcpu均遍历完成后,执行s408。

s408、备业务板通知主业务板平滑结束。

在平滑结束后,主业务板和备业务板均切换至no状态,然后主业务板可开始定时备份流程。

对应于上述方法实施例,本申请实施例还提供一种会话备份装置,该装置应用于备业务板包括的任一vcpu,如图5所示,该装置包括:删除模块501、接收模块502和设置模块503。

接收模块502,用于接收主业务板发送的启动备份指令;

删除模块501,用于当接收模块接收到启动备份指令时,将自身存储的备份表项对应的备份标记删除,备份表项用于存储会话信息;

接收模块502,用于接收主业务板发送的第一备份消息,第一备份消息中携带主业务板中存储的具有备份标记的备份表项;

设置模块503,用于若已存储接收模块502接收的第一备份消息中携带的第一备份表项,则为第一备份表项设置备份标记;若未存储接收模块502接收的第一备份消息中携带的第二备份表项,则存储第二备份表项,并为第二备份表项设置备份标记;

删除模块501,还用于将不具有备份标记的备份表项删除。

可选地,接收模块502,具体用于接收主业务板包括的每个虚拟中央处理器vcpu发送的第一备份消息,第一备份消息携带第一vcpu标识,第一vcpu标识为主业务板上发送第一备份消息的vcpu的标识。

可选地,设置模块503,具体用于若第一备份表项存储于目的vcpu对应的备份表项,则为第一备份表项设置备份标记,目的vcpu为备业务板中与第一vcpu标识对应的vcpu。

可选地,设置模块503,具体用于若第二备份表项未存储于目的vcpu对应的备份表项,则存储第二备份表项,并为第二备份表项设置备份标记,目的vcpu为备业务板中与第一vcpu标识对应的vcpu。

可选地,删除模块501,用于遍历自身所属的vcpu存储的备份表项,将不具有备份标记的备份表项删除。

可选地,该装置还包括备份模块;

接收模块502,还用于接收主业务板发送的第二备份消息,第二备份消息中携带主业务板中存储的不具有备份标记的备份表项和第二vcpu标识;

备份模块,用于对第二备份消息中的备份表项进行备份。

本申请实施例还提供了一种备份设备,该备份设备具体可以为上述实施例中的备业务板,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现上述方法实施例中由备业务板包括的vcpu执行的步骤。

上述备份设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述备份设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一会话备份方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一会话备份方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

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