信息同步方法及高可用性集群系统技术方案

技术编号:14701325 阅读:79 留言:0更新日期:2017-02-24 19:10
本发明专利技术实施例公开了一种信息同步方法及高可用性集群系统,预先建立与备用设备中的处理器核心一一对应的报文模板,当有信息需要同步到备用设备中时,直接将信息封装到对应的报文模板中,封装得到的报文缓存到与备用设备中的处理器核心一一对应的第一类队列中,然后通过用户态的第一设备接口将报文从队列中取出传递给备用设备,备用设备中用户态的第二设备接口接收到报文后,将报文缓存到与备用设备中的处理器核心一一对应的第二类队列中,由备用设备中的处理器核心从相应的队列中读取报文,然后进行解析、信息同步。降低了报文传输延迟,更能适应高负载情况下信息的同步,提高了基于多核异构平台的高可用性集群系统的信息同步效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,更具体地说,涉及一种高可用性集群系统及其信息同步方法。
技术介绍
高可用性(HighAvailability)集群是指以减少服务中断时间为目的的服务器集群技术。高可用性集群系统由两个或者更多的设备构成。根据设备的功能不同,高可用性集群系统中的设备分为主设备和备用设备,一般情况下,由主设备执行系统的服务功能,当主设备因为断电或者其他异常原因无法正常运行时,被用设备检测到后会主动接手主设备原有的工作,从而实现服务可以不中断。随着科技的不断发展,基于多核异构平台的高可用性集群系统应运而生,所谓多核异构,是指高可用性集群系统中的每个设备均为多核设备,且每个设备内部均以用户态和内核态的架构形式存在。其中,用户态主要完成一些实现较简单,对高可用性集群系统的实现影响较小的功能逻辑,因其处理速度较快,处于用户态的功能模块也称为快速模块;内核态主要完成其他实现较复杂、对性能影响较大的功能逻辑,因其处理速度较慢,处于内核态的功能模块也称为慢速模块。而为了备用设备能够接手主设备原有的工作,需要将主设备的一些特定信息同步给备用设备,因此,如何将主设备中的特定信息同步给备用设备成为高可用性集群系统服务不中断的关键。如图1所示,为现有技术中基于多核异构平台的高可用性集群系统进行信息同步的逻辑示意图:主设备中每个提供服务的处理器核心在特定信息更新时,将同步消息发送给用户态的第一线程,该第一线程将同步消息通过ak通道传递给内核态的第二线程,该第二线程将同步消息封装为报文后,通过设备接口将报文发送给备用设备;备用设备的内核态的第三线程接收到主设备发来的报文后,将报文解析为同步消息,通过uk通道将同步消息传递给用户态的第四线程,第四线程将同步消息分给备用设备的各个处理器核心进行特定信息的同步。专利技术人研究发现,传统的基于多核异构平台的高可用性集群系统进行信息同步时效率较低,例如,同步消息需经由用户态到内核态再转发出去,延迟较大,而且,由于用户态和内核态之间通过一个线程进行交互,当同步消息较多时,来不及接收高负载时大量的同步消息的现象很有可能发生,因此,很可能由于用户态和内核态之间的通道阻塞而丢失同步消息,导致同步失败。因此,如何提高基于多核异构平台的高可用性集群系统的信息同步效率成为亟待解决的技术问题。
技术实现思路
本专利技术的目的是提供一种信息同步方法及高可用性集群系统,以提高基于多核异构平台的高可用性集群系统的信息同步效率。为实现上述目的,本专利技术提供了如下技术方案:一种信息同步方法,应用于高可用性集群系统,所述高可用性集群系统包括至少一个主设备和至少一个备用设备;所述主设备包括多个第一处理器核心,所述备用设备包括多个第二处理器核心,所述方法包括:所述第一处理器核心在有信息需要同步时,生成同步消息;所述第一处理器核心根据目标处理器核心的地址,将所述同步消息封装到与所述目标处理器核心对应的报文模板中,得到报文;所述报文模板包括记录有报文五元组的报文首部和用于承载同步消息的负载部;所述第一处理器核心将所述报文缓存到用户态的与所述目标处理核心对应的第一类队列中;所述主设备中用户态的第一设备接口依次从各个第一类队列中读取报文,将读取的报文发送给备用设备的用户态的第二设备接口;所述第二设备接口根据报文首部的目标处理器核心的地址,将读取的报文加载到用户态的与所述目标处理器核心对应的第二类队列中;所述第二处理器核心从对应的第二类队列中读取报文,将读取的报文解析为同步消息,根据同步消息进行信息同步。从上述过程可以看出,主设备和备用设备直接在用户态实现信息同步,降低了报文传输延迟,而且,在主设备侧和备用设备侧均设置多个队列,队列的个数与备用设备中处理器核心的个数相同,从而降低队列阻塞的概率,更能适应高负载情况下信息的同步,提高了基于多核异构平台的高可用性集群系统的信息同步效率。上述方法,优选的,所述主设备根据所述主设备与所述备用设备间的交互信息计算得到所述报文模板;所述交互信息至少包括:备用设备中第二处理器核心的个数。上述方法,优选的,所述主设备根据所述主设备与所述备用设备间的交互信息计算得到所述报文模板包括:基于备用设备中的第一处理器核心的个数,确定主设备中的第一类队列的个数;对于每一个所述第一处理器核心,生成与所述第一处理器核心对应的报文模板;其中,所述报文模板中的源IP地址为所述第一处理器核心的IP地址,所述报文模板中的目的IP地址为与所述第一处理器核心对应的第二处理器核心的IP地址,所述报文模板中的源端口号为所述第一处理器核心的任意一个端口号,所述报文模板中的目的端口号为与所述第一处理器核心对应的第二处理器核心的任意一个端口号;对所述报文模板进行哈希运算,得到哈希值;若所述哈希值具有唯一性,将所述哈希值对所述第一类队列的个数进行取余运算;若取余运算结果具有唯一性,则保存用于得到该具有唯一性的哈希值的报文模板;若取余运算结果不具有唯一性,则更新上述报文模板中的源端口号和/或目的端口号,并对更新后的报文模板进行哈希运算及后续步骤;若所述哈希值不具有唯一性,更新上述报文模板中的源端口号和/或目的端口号,并对更新后的报文模板进行哈希运算及后续步骤。上述方法,优选的,还包括:所述主设备定期统计各个第二处理器核心的已同步的信息量;所述主设备判断所述各个第二处理器核心的已同步的信息量是否满足预置的负载均衡条件;当判断结果为满足预置的负载均衡条件时,若所述主设备新建同步信息,则调整所述新建同步信息的目标处理器核心的地址,以使得负载较小的第二处理器核心同步较多的新建同步信息。从上述过程可以看出,主设备在将信息同步至备用设备的过程中,根据各个第二处理器核心已同步的信息量对调整各个第二处理器核心接收到的新建同步信息的数量,从而在实现主设备和备用设备信息同步的同时,实现备用设备的负载均衡,提高备用设备的性能。上述方法,优选的,所述主设备判断所述各个第二处理器核心存储的已同步的信息量是否满足预置的负载均衡条件包括:计算平均每个第二处理器核心的已同步的信息量;基于平均每个第二处理器核心的已同步的信息量确定第一阈值和第二阈值;所述第一阈值大于所述第二阈值;若第二处理器核心的已同步的信息量大于第一阈值,或者,第二处理器核心的已同步的信息量小于第二阈值,确定第二处理器核心已同步的信息量满足预置的负载均衡条件。一种高可用性集群系统,包括至少一个主设备和至少一个备用设备,所述主设备包括用户态的第一设备接口和多个第一处理器核心,所述备用设备包括用户态的第二设备接口和多个第二处理器核心,其中,所述第一处理器核心用于在有信息需要同步时,生成同步消息;根据目标处理器核心的地址,将所述同步消息封装到与所述目标处理器核心对应的报文模板中,得到报文;将所述报文缓存到用户态的与所述目标处理核心对应的第一类队列中;所述报文模板包括记录有报文五元组的报文首部和用于承载同步消息的负载部;所述第一设备接口用于依次从各个第一类队列中读取报文,将读取的报文发送给所述第二设备接口;所述第二设备接口用于根据报文首部的目标处理器核心的地址,将读取的报文加载到用户态的与所述目标处理器核心对应的第二类队列中;所述第二处理器核心用于从对应的第二类队列中读取报文,将读取的报文解析为同步本文档来自技高网
...
信息同步方法及高可用性集群系统

【技术保护点】
一种信息同步方法,应用于高可用性集群系统,所述高可用性集群系统包括至少一个主设备和至少一个备用设备;所述主设备包括多个第一处理器核心,所述备用设备包括多个第二处理器核心,其特征在于,所述方法包括:所述第一处理器核心在有信息需要同步时,生成同步消息;所述第一处理器核心根据目标处理器核心的地址,将所述同步消息封装到与所述目标处理器核心对应的报文模板中,得到报文;所述报文模板包括记录有报文五元组的报文首部和用于承载同步消息的负载部;所述第一处理器核心将所述报文缓存到用户态的与所述目标处理核心对应的第一类队列中;所述主设备中用户态的第一设备接口依次从各个第一类队列中读取报文,将读取的报文发送给备用设备的用户态的第二设备接口;所述第二设备接口根据报文首部的目标处理器核心的地址,将读取的报文加载到用户态的与所述目标处理器核心对应的第二类队列中;所述第二处理器核心从对应的第二类队列中读取报文,将读取的报文解析为同步消息,根据同步消息进行信息同步。

【技术特征摘要】
1.一种信息同步方法,应用于高可用性集群系统,所述高可用性集群系统包括至少一个主设备和至少一个备用设备;所述主设备包括多个第一处理器核心,所述备用设备包括多个第二处理器核心,其特征在于,所述方法包括:所述第一处理器核心在有信息需要同步时,生成同步消息;所述第一处理器核心根据目标处理器核心的地址,将所述同步消息封装到与所述目标处理器核心对应的报文模板中,得到报文;所述报文模板包括记录有报文五元组的报文首部和用于承载同步消息的负载部;所述第一处理器核心将所述报文缓存到用户态的与所述目标处理核心对应的第一类队列中;所述主设备中用户态的第一设备接口依次从各个第一类队列中读取报文,将读取的报文发送给备用设备的用户态的第二设备接口;所述第二设备接口根据报文首部的目标处理器核心的地址,将读取的报文加载到用户态的与所述目标处理器核心对应的第二类队列中;所述第二处理器核心从对应的第二类队列中读取报文,将读取的报文解析为同步消息,根据同步消息进行信息同步。2.根据权利要求1所述的方法,其特征在于,所述主设备根据所述主设备与所述备用设备间的交互信息计算得到所述报文模板;所述交互信息至少包括:备用设备中第二处理器核心的个数。3.根据权利要求2所述的方法,其特征在于,所述主设备根据所述主设备与所述备用设备间的交互信息计算得到所述报文模板包括:基于备用设备中的第一处理器核心的个数,确定主设备中的第一类队列的个数;对于每一个所述第一处理器核心,生成与所述第一处理器核心对应的报文模板;其中,所述报文模板中的源IP地址为所述第一处理器核心的IP地址,所述报文模板中的目的IP地址为与所述第一处理器核心对应的第二处理器核心的IP地址,所述报文模板中的源端口号为所述第一处理器核心的任意一个端口号,所述报文模板中的目的端口号为与所述第一处理器核心对应的第二处理器核心的任意一个端口号;对所述报文模板进行哈希运算,得到哈希值;若所述哈希值具有唯一性,将所述哈希值对所述第一类队列的个数进行取余运算;若取余运算结果具有唯一性,则保存用于得到该具有唯一性的哈希值的报文模板;若取余运算结果不具有唯一性,则更新上述报文模板中的源端口号和/或目的端口号,并对更新后的报文模板进行哈希运算及后续步骤;若所述哈希值不具有唯一性,更新上述报文模板中的源端口号和/或目的端口号,并对更新后的报文模板进行哈希运算及后续步骤。4.根据权利要求1所述的方法,其特征在于,还包括:所述主设备定期统计各个第二处理器核心的已同步的信息量;所述主设备判断所述各个第二处理器核心的已同步的信息量是否满足预置的负载均衡条件;当判断结果为满足预置的负载均衡条件时,若所述主设备新建同步信息,则调整所述新建同步信息的目标处理器核心的地址,以使得负载较小的第二处理器核心同步较多的新建同步信息。5.根据权利要求4所述的方法,其特征在于,所述主设备判断所述各个第二处理器核心存储的已同步的信息量是否满足预置的负载均衡条件包括:计算平均每个第二处理器核心的已同步的信息量;基于平均每个第二处理器核心的已同步的信息量确定第一阈值和第二阈值;所述第一阈值大于所述第二阈值;若第二处理器核心的已同步的信息量大于第一阈值,或者,第二处理器核心的已同步的信息量小于第二阈值,确定第二处理器核心已同步的信息量满足预置的负载均衡条件。6....

【专利技术属性】
技术研发人员:刘健男党丽娜
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1