一种备份方法

文档序号:6557673阅读:240来源:国知局
专利名称:一种备份方法
技术领域
本发明涉及分布式系统技术,特别是涉及分布式系统中的一种备份方法。
背景技术
在分布式系统中,由于某些处理实体(PE)所处的位置非常重要,是系统的关键节点,如果出现故障,可能会导致整个系统的瘫痪。所以,在实际应用中,一般会在关键节点配置两个或两个以上的PE,指定其中某个PE作为主用PE(Active PE),其它的PE作为备用PE(Standby PE),并且Active PE与Standby PE通过硬件互连。其中,Active PE是真正发挥所在节点功能的PE,即可以与系统中的其它实体进行交互,而Standby PE只能与Active PE通信来与Active PE进行同步,当Active PE发生故障时,StandbyPE就可以升级为Active PE,保证该节点功能的正常发挥。这里,Standby PE实现与Active PE的同步也通常称为备份。
目前,在分布式系统中一般有两种备份方法一种是数据驱动备份方法,另外一种是数据驱动函数备份方法。
其中,数据驱动备份方法的基本思想是在Active PE与外部实体交互的过程中,当Active PE自身数据发生变化时,Active PE将需要备份的数据发送给Standby PE,Standby PE根据接收到的数据进行备份处理过程。当Active PE出现故障时,Standby PE将根据最新的备份数据进行平滑处理过程,升级为Active PE,替代原来的Active PE与外部实体进行交互。这里所述的数据是指Active PE为了实现与外部设备的交互所记录的必要的数据。例如当某用户需要进行某种业务时,Active PE需要在自身设置的用户列表中增加该用户的标识信息等数据,那么用户列表中的用户标识信息就属于Active PE的数据。因为用户列表中增加了用户数据,也就是说数据发生了变化,Active PE就将需要备份的数据发送给Standby PE进行备份。这里Active PE可能只发送发生了变化的数据,也可能发送自身当前所有的数据。另外,这里所述的备份处理过程是Standby PE根据备份数据模拟Active PE状态的执行过程。
数据驱动函数备份方法的基本思想与数据驱动备份方法相似,其区别在于数据驱动备份方法是由Active PE直接将备份数据发送给Standby PE,而数据驱动函数备份方法是当数据发生变化时,Active PE触发备份数据提取函数,并将数据发送给Standby PE,再由Standby PE触发备份数据恢复函数,获得最新的备份数据。
在现有技术中,无论是数据驱动备份方法还是数据驱动函数备份方法,都是以数据为中心的备份方法,其缺点在于由于Standby PE只备份了Active PE与外部实体交互过程中的数据,无法反映Active PE的状态变化过程,那么Standby PE在备份处理过程中可能会产生逻辑错误,导致备份失败或备份不可靠。比如当Active PE需要创建某物理链路时,可能需要先由某模块打开端口,再由另外一个模块创建链路。如果在打开端口和创建链路的两个操作中都有数据发生了变化,Active PE会将相应的数据发送给Standby PE进行备份。这里所述的先打开端口后创建链路的顺序其实就反映了Active PE的状态变化过程。而当Standby PE根据与打开端口和创建链路对应的数据进行备份处理过程时,无法仅仅根据数据知道执行的顺利,可能会先利用数据进行创建链路,再打开端口,这就将产生逻辑错误,导致备份失败。
由此可见,在现有技术中,还没有一种可靠的备份方法。

发明内容
有鉴于此,本发明的主要目的在于提供一种可靠的备份方法。为了达到上述目的,本发明提出的技术方案为一种备份方法,其特征在于,该方法包括以下步骤a、主用处理机将自身的运动轨迹操作记录发送给备用处理机;b、备用处理机按照接收主用处理机运动轨迹操作记录的顺序执行运动轨迹操作记录。
较佳地,所述步骤a之前进一步包括备用处理机向主用处理机发送携带有备份起始所对应的操作流水号的备用请求消息;所述步骤a为主用处理机根据操作流水号将自身的运动轨迹操作记录发送给备用处理机。
较佳地,步骤b所述接收主用处理机运动轨迹操作记录的顺序为同步执行操作记录中操作流水号顺序。
较佳地,所述步骤a和步骤b之间进一步包括备用处理机判断所接收到的运动轨迹操作记录是否需要进行平滑处理补偿操作,如果需要,则生成自身的同步执行操作记录和相应的同步补偿执行记录;否则,直接将运动轨迹操作记录保存为自身的同步执行操作记录;步骤b所述执行运动轨迹操作记录为执行备用处理机的同步执行操作记录。
较佳地,当主用处理机发生故障,备用处理机需要升级为主用处理机时,该方法进一步包括Y1、备用处理机判断自身是否存在被中断的事务,如果存在,则删除与被中断事务相关的所有的同步执行操作记录和同步补偿执行记录;Y2、备用处理机判断是否已经执行与被中断事务相关的同步执行操作记录,如果是,则进行相应的回退处理;否则,不作处理;Y3、备用处理机根据操作流水号继续执行同步执行操作记录,直至处理完所有的同步执行操作记录;Y4、备用处理机根据操作流水号执行同步补偿执行记录,直至处理完所有的同步补偿执行记录。
较佳地,当备用处理机执行所述的同步执行操作记录时,备用处理机将在执行的过程中产生并保存自身的运动轨迹操作记录。
综上所述,本发明提出的一种备份方法,由于主用处理机将可以表示自身状态变化的运行轨迹操作记录发送给备用处理机,备用处理机将运行轨迹操作记录备份为自身的同步执行操作记录,再按照操作流水号顺序执行同步执行操作记录,可以模拟主用处理机的状态变化过程,从而达到可靠备份的目的。


图1是实现本发明方案的流程图;图2是应用本发明方案的实施例流程图;图3是实施例中实现初始化备份的方法的流程图;图4是实施例中实现平滑处理方法的流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的基本思想是主用处理机将表示自身状态变化过程的运动轨迹操作记录发送给备用处理,备用处理机执行将其作为自身的同步执行操作记录并执行,模拟主用处理机的状态变化过程。
图1显示了实现本发明方案的流程图。如图1所示,本发明实现备份的方法包括以下步骤步骤101主用处理机将自身的运动轨迹操作记录发送给备用处理机。
本发明中,主用处理机是实现分布式系统某关键节点功能的实体,而备用处理机只是模拟主用处理机的状态变化过程,并不真正实现功能,或者说,并不真正与分布式系统中的其它节点进行交互。
主用处理机实现所在节点功能是由自身若干操作组成的,运动轨迹操作记录就是主用处理机实现节点功能而进行的最小操作单位。如果采用基于对象的编程方法,一个运动轨迹操作记录可以表示为<操作流水号,事务标识符,对象标识符,操作标识符,操作参数>。这里,操作流水号表示主用处理机当前操作顺序的编号;事务标识符表示主用处理机当前操作所属事务的名称;对象标识符表示主用处理当前操作所属对象的名称;操作标识符表示主用处理机当前操作的操作名称;操作参数表示主用处理机当前操作的参数。在实际应用中,运动轨迹操作记录也可以采用其它形式,只要可以表示主用处理机实现所在节点功能的最小操作单位即可。
步骤102备用处理机按照接收主用处理机运动轨迹操作记录的顺序来执行运动轨迹操作记录。
本发明中,备用处理机必须按照接收主用处理机运动轨迹操作记录的顺序来执行运动轨迹操作记录,这里所述的主用处理机运动轨迹操作记录的顺序可以用运动轨迹操作记录中的顺序操作流水号来表示,可以表示主用处理机的状态变化过程。这样,备用处理机就可以模拟主用处理机的状态变化过程,从而达到可靠备份的目的。
本发明中,备用处理机执行接收到的主用处理机的运动轨迹操作记录,其实就是将运动轨迹操作记录作为自身的同步执行操作记录来执行。在实际应用中,备用处理机可能不能直接将运动轨迹操作记录作为自身的同步执行操作记录来执行,步骤101和步骤102之间需要生成自身的同步执行操作记录和相应的同步补偿执行记录,并将同步执行操作记录和相应的同步补偿执行记录保存下来,然后执行自身的同步执行操作记录。当需要升级为主用处理机时,才执行同步补偿执行记录。
上述备用处理机不能直接执行运动轨迹操作记录的原因在于备用处理机只是模拟主用处理机的状态变化,如果执行某运动轨迹操作记录,可能干扰备用处理机自身的系统功能。这里所述的干扰系统功能是指备用处理机执行了不应该执行的运动轨迹操作记录而造成的系统错误。例如如果主用处理机的某运动轨迹操作记录需要进行与硬件相关的操作,如打开或关闭某个端口、创建某一物理链路等操作,而由于备用处理机并不是真正实现节点功能的实体,不能也不应该进行与硬件相关的操作,只能进行逻辑上的操作,等到升级成为真正的主用处理机时,才进行与硬件相关的操作。又例如主用处理机需要与外部节点进行交互,如建立某信令连接等操作,而备用处理机不能也不应该与外部节点进行交互,否则也将会造成系统错误。所以,为了模拟主用处理机的状态变化过程,备用处理机将运行轨迹操作记录分解为同步执行操作记录和同步补偿执行记录。这里所述的同步执行操作记录和同步补偿执行记录与所述的运行轨迹操作记录之间有一个对应关系,其对应关系可以由应用本发明方案的用户自行定义,只要同步执行操作记录可以模拟运行轨迹操作记录的逻辑操作,同步补偿执行记录可以自身实现硬件功能即可。也就是说,备用处理机先执行同步执行操作记录,再执行同步补偿执行记录的效果与主用处理机执行运行轨迹操作记录的效果完全相同。
当然,在实际应用中,如果执行主用处理机的运动轨迹操作记录不会干扰备用处理机自身的系统功能,那么备用处理机就无需生成自身的同步执行操作记录和相应的同步补偿执行记录,可以直接将运动轨迹操作记录作为自身的同步执行操作记录来执行。
实施例一图2显示了本实施例的流程图。本实施例中,主用处理机先将获得的运动轨迹操作记录保存下来,等运动轨迹操作记录数目达到10条时,才一起发送给备用处理机。也就是说,主用处理机是将运动轨迹操作集合发送给备用处理机。本实施例中,备用处理机设置了一个同步流水号,表示执行当前同步执行操作记录对应的操作流水号。如图2所示,本实施例实现备份的方法包括以下步骤步骤201主用处理机将自身的运动轨迹操作记录发送给备用处理机。
在本实施例中,主用处理机实际上每次向备用处理机发送运动轨迹操作集合,即10条运动轨迹操作记录。
步骤202备用处理机判断所接收到的每一条运动轨迹操作记录是否需要进行平滑处理补偿操作,如果需要,则生成并保存自身的同步执行操作记录和相应的同步补偿执行记录;否则,直接将运动轨迹操作记录保存为自身的同步执行操作记录。
本实施例中,主用处理机可能涉及物理硬件操作或与外部节点交互,所以备用处理机需要对所接收到的每一条运动轨迹操作记录判断是否需要进行平滑处理补偿操作。这里,备用处理机可以直接根据运动轨迹操作记录来判断是否需要进行平滑处理补偿操作。当操作会干扰备用处理机自身系统功能时,就需要进行平滑处理补偿操作;否则,无需进行平滑处理补偿操作。当然,哪些操作会干扰备用处理机系统功能,或者说哪些操作需要进行平滑处理补偿操作,以及生成的同步执行操作记录和同步补偿执行记录可以由应用本发明方案的用户自行定义。例如主用处理机将获得的<1003,Td,PhysicalLink,Create,{1,2}>运动轨迹操作记录发送给备用处理机。其中,1003为操作流水号,Td为事务标识符,PhysicalLink为对象标识符,Create为操作标识符,{1,2}为参数。也就是说,主用处理机在执行过程的第1003条操作为在事务Td中,由PhysicalLink对象执行了一个Create操作,并且其执行的参数为{1,2},即主用处理机创建了一条物理链路。备用处理机接收该记录后,判断出该操作涉及物理硬件,需要进行平滑处理补偿操作,将生成自身的同步执行操作记录和相应的同步补偿执行记录。这里,备用处理机生成的同步执行操作记录可以为<1003,Td,PhysicalLink,PreCreate,{1,2}>,同步补偿执行记录可以为<1003,Td,PhysicalLink,Enable,{1,2}>。当备用处理机执行<1003,Td,PhysicalLink,PreCreate,{1,2}>时,并不会真正创建一条物理链路,而只是进行预创建,即完成<1003,Td,PhysicalLink,Create,{1,2}>的逻辑过程。当备用处理机升级为主用处理机时,执行<1003,Td,PhysicalLink,Enable,{1,2}>,才真正创建物理链路。这里,PreCreate就是完成预创建功能的操作名称,而Enable则是使创建物理链路得以真正实现的操作名称。至于如何进行预创建和使创建物理链路真正实现可以由应用本发明的用户自行完成,此处不再详细叙述。
步骤203备用处理机根据同步流水号执行同步执行操作记录。
本实施例中,备用处理机是根据同步流水号执行同步执行操作记录,而同步流水号实际就是指示同步执行操作记录中操作流水号的标志或指针。
需要注意的是,备用处理机将接收到的某运动轨迹操作记录备份为自身的同步执行操作记录后,可能并不会立即执行,需要等到操作流水号与该运动轨迹操作记录中的操作流水号相同时,才会执行该运动轨迹操作记录。例如主用处理机将操作流水号为1010的运动轨迹操作记录发送给备用处理机后,备用处理机将其备份为自身操作流水号为1010的同步执行操作记录。但如果此时备用处理机执行的同步流水号为1002,则备用处理机需要将操作流水号为1002至操作流水号1009的所有的同步执行操作记录执行完以后,才开始执行操作流水号为1010的同步执行操作记录。
另外,如果某节点配置了多个备用处理机,则当前的备用处理机还需要在执行自身同步执行操作记录的过程中,生成自身的运动轨迹操作记录。这样,当该备用处理机升级成为主用处理机后,就可以将自身的运动轨迹操作记录发送给第二个备用处理机,开始进行备份。
在实际应用中,如果备用处理机出现故障或者第一次进行备份时,需要进行初始化备份过程。图3显示了本实施例实现初始化备份的流程图。在本实施例中,实现初始化备份的方法包括以下步骤步骤301备用处理机向主用处理机发送携带有备份起始所对应的操作流水号的备用请求消息。
本实施例中,由于运动轨迹操作记录中有操作流水号,所以,当备用处理机发生故障需要重新备份时,将不需要从第一条运动轨迹操作记录开始备份,只需要从最后一条运动轨迹操作记录开始备份,即将最后一条运动轨迹操作记录的下一条运动轨迹操作记录所对应的操作流水号发送给主用处理机,可以加快备份的速度。
步骤302主用处理机根据操作流水号将自身的运动轨迹操作记录发送给备用处理机。
本步骤中,主用处理机是将备用请求消息中的操作流水号以后的所有运动轨迹操作记录发送给备用处理机。在实际应用中,如果需要发送的运动轨迹操作记录比较多,也可以分批发送给备用处理机。
在实际应用中,主用处理机也可以直接向备用处理机发送自身的运动轨迹操作记录,而不需要接收备用处理机的备用请求消息,即可以没有步骤301。
步骤303备用处理机判断所接收到的运动轨迹操作记录是否需要进行平滑处理补偿操作,如果需要,则生成并保存自身的同步执行操作记录和相应的同步补偿执行记录;否则,直接将运动轨迹操作记录保存为自身的同步执行操作记录。
本步骤与本实施例步骤202相同,此处不再赘述。
步骤304备用处理机按照同步执行操作记录中操作流水号顺序开始执行同步执行操作记录。
本步骤中,备用处理机会将第一条同步执行操作记录中的操作流水号作为同步流水号开始执行。
在实际应用中,当主用处理机发生故障,备用处理机升级为主用处理机时,备用处理机需要进行平滑处理。图4显示了本实施例备用处理机平滑处理方法的流程图。如图4所示,本实施例备用处理机实现平滑处理的方法包括以下步骤步骤401备用处理机判断自身是否存在被中断的事务,如果存在,则删除与被中断事务相关的所有的同步执行操作记录和同步补偿执行记录。
本实施例中,主用处理机发生故障时,可能是在执行某事务的过程中,可能是正常中断,也可能是异常中断。但不管是什么类型的中断,由于该事务被中断,没有正常完成,如果继续由备用处理机执行,可能会出现错误,所以应该将与该事务相关的所有操作记录删除。这里所述的操作记录包括同步执行操作记录和同步补偿执行记录。例如当主用处理机发生故障时,备用处理机中同步执行集合中记录如表一所示

表一在实际应用中,备用处理机可以根据以下规则来判断是否发生中断(1)某事务对象标识符中只有Start,而没有Commit和Abort,则表示该事务被异常中断;(2)某事务对象标识符中有Start,也有Abort,表示该事务被正常中断;(3)某事务对象标识符中有Start和Commit,而且没有Abort,则表示正常结束,没有中断。备用处理机根据以上规则可以判断出事务Ts被正常中断。
在实际应用中,如果采用其它的编程工具,可能事务发生中断时的信息不同,但仍然可以根据实际情况判断是否发生了中断。如果有被中断的事务,备用处理机就将所有与被中断事务相关的同步执行操作记录和同步补偿执行记录删除。
步骤402备用处理机判断是否已经执行与被中断事务相关的同步执行操作记录,如果是,则进行相应的回退处理;否则,不作处理。
本实施例中,所述的回退处理是与执行同步执行操作记录的逆操作,在实际应用中比较容易实现,此处不再详细叙述。
步骤403备用处理机根据操作流水号继续执行同步执行操作记录,直至处理完所有的同步执行操作记录。
这里,如果备用处理机在步骤402中进行了回退处理,则备用处理机应该从被中断事务相关的同步执行操作记录的下一条同步执行操作记录开始执行;如果没有进行回退处理,则备用处理机应该从当前的同步执行操作记录继续执行。
步骤404备用处理机根据操作流水号执行同步补偿执行记录,直至处理完所有的同步补偿执行记录。
本实施例中,当某运行轨迹操作记录与物理硬件相关,对应的同步执行操作记录就只是实现了其逻辑功能,所以,一旦需要备用处理机升级为主用处理时,就需要执行相应的同步补偿执行记录来真正实现物理硬件功能,达到平滑处理的目的。
本实施例中,当备用处理机要开始备份时,可以执行步骤301~步骤304,进行初始化备份;再执行步骤201~步骤203进行备份过程,这是本发明备份的主要过程,即增量备份过程,一般持续较长的时间;当备用处理机需要升级成为主用处理机时,执行步骤401~步骤401,完成平滑处理过程,过渡为主用处理机。
应用本发明方案,由于可以根据表示主用处理机状态变化的运行轨迹操作记录进行备份,以操作为中心进行备份,在备份的过程中不会发生逻辑错误,可以提高备份的可靠性。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种备份方法,其特征在于,该方法包括以下步骤a、主用处理机将自身的运动轨迹操作记录发送给备用处理机;b、备用处理机按照接收主用处理机运动轨迹操作记录的顺序执行运动轨迹操作记录。
2.根据要求1所述的方法,其特征在于,所述步骤a之前进一步包括备用处理机向主用处理机发送携带有备份起始所对应的操作流水号的备用请求消息;所述步骤a为主用处理机根据操作流水号将自身的运动轨迹操作记录发送给备用处理机。
3.根据权利要求2所述的方法,其特征在于,步骤b所述接收主用处理机运动轨迹操作记录的顺序为操作流水号顺序。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述步骤a和步骤b之间进一步包括备用处理机判断所接收到的运动轨迹操作记录是否需要进行平滑处理补偿操作,如果需要,则生成自身的同步执行操作记录和相应的同步补偿执行记录;否则,直接将运动轨迹操作记录保存为自身的同步执行操作记录;步骤b所述执行运动轨迹操作记录为执行备用处理机的同步执行操作记录。
5.根据权利要求4所述的方法,其特征在于,当主用处理机发生故障,备用处理机需要升级为主用处理机时,该方法进一步包括Y1、备用处理机判断自身是否存在被中断的事务,如果存在,则删除与被中断事务相关的所有的同步执行操作记录和同步补偿执行记录;Y2、备用处理机判断是否已经执行与被中断事务相关的同步执行操作记录,如果是,则进行相应的回退处理;否则,不作处理;Y3、备用处理机根据操作流水号继续执行同步执行操作记录,直至处理完所有的同步执行操作记录;Y4、备用处理机根据操作流水号执行同步补偿执行记录,直至处理完所有的同步补偿执行记录。
6.根据权利要求5所述的方法,其特征在于,当备用处理机执行所述的同步执行操作记录时,备用处理机将在执行的过程中产生并保存自身的运动轨迹操作记录。
7.根据权利要求1至3任一项所述的方法,其特征在于,当主用处理机发生故障,备用处理机需要升级为主用处理机时,该方法进一步包括Y1、备用处理机判断自身是否存在被中断的事务,如果存在,则删除与被中断事务相关的所有的同步执行操作记录和同步补偿执行记录;Y2、备用处理机判断是否已经执行与被中断事务相关的同步执行操作记录,如果是,则进行相应的回退处理;否则,不作处理;Y3、备用处理机根据操作流水号继续执行同步执行操作记录,直至处理完所有的同步执行操作记录;Y4、备用处理机根据操作流水号执行同步补偿执行记录,直至处理完所有的同步补偿执行记录。
8.根据权利要求7所述的方法,其特征在于,当备用处理机执行所述的同步补偿执行记录时,备用处理机将在执行的过程中产生并保存自身的运动轨迹操作记录。
全文摘要
本发明提供一种备份方法,其关键在于,备用处理机将表示主用处理机状态变化的运行轨迹操作记录作为自身的同步执行操作记录来执行。当需要备份时,主用处理机将自身获得的运动轨迹操作记录发送给备用处理机;备用处理机将运动轨迹操作记录备份为自身的同步执行操作记录;然后备用处理机按照同步执行操作记录中操作流水号顺序来执行同步执行操作记录。应用本发明方案,由于备用处理机可以严格地按照主用处理机的操作顺利来完成自身的操作,即可以根据执行同步执行操作记录来模拟主用处理机的状态变化过程,从而达到备份可靠的目的。
文档编号G06F9/46GK101046757SQ20061006679
公开日2007年10月3日 申请日期2006年4月13日 优先权日2006年4月13日
发明者胡志刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1