一种基于云平台的主备软件管理方法和系统

文档序号:26531280发布日期:2021-09-04 11:47阅读:114来源:国知局
一种基于云平台的主备软件管理方法和系统

1.本发明涉及主备软件管理领域,特别是涉及一种基于云平台的主备软件管理方法和系统。


背景技术:

2.随着技术的持续发展,软件的广泛应用,功能复杂性大幅提升,同时对软件的可靠性和稳定性提出了更高的要求。当软件出现不可预见的故障,依靠人工重启软件将导致系统中断一定时间,此传统的人工运维方式已不适用于复杂的系统集成软件要求,一方面是大系统软件的复杂和多变性,软件和设备的交互繁多,软件版本迭代很难彻底根除问题,导致软件可能在不确定的时间宕机,人工很难及时解决问题;另一方面软件运行的服务器可能出现断电断网突发状况导致软件不能正常工作。这时就需要一种软件自动运维方式,在软件出现不可预测的问题时,能使系统不中断或只短时间中断。
3.目前常见的一种软件管理方式是通过一个总控的主备管理软件进行主备管理,主要为通过一个主控软件实时获取主备软件上报的状态数据,再由主控软件判断下属主备软件是否需要进行切换,此管理方法的一个缺点是该总控主备管理软件作为单点设备,若出现故障,则不能对下属主备软件进行正常的切换,会影响到系统的正常运行。
4.且目前的大系统一般都建立在云计算平台上,保证整个项目的延展性和可扩充性。云计算平台架构由云计算资源池、云计算基础架构管理服务器和云计算软件组成,除了服务器其他均未虚拟化平台,一台云服务器可以通过设备虚拟化,虚拟出多个系统环境,相当于多个云主机。与以往的服务器不同,云计算平台均为虚拟服务器,互相之间通过网络进行传递数据,不能以以往通过外接心跳线物理线实现软件主备管理。


技术实现要素:

5.本发明的目的是提供一种基于云平台的主备软件管理方法和系统,以解决上述现有技术存在的问题。
6.为实现上述目的,本发明提供了如下方案:本发明提供一种基于云平台的主备软件管理方法,包括以下步骤:构建若干个云服务器,在每个所述云服务器上运行相同的业务软件,所述业务软件间互为主备软件,且所述业务软件中仅存在一个主软件,其他所述业务软件为备软件,所述主软件与所述备软件按照既定的时间间隔相互发送心跳包,若一方无法收到心跳包或收到心跳包的时间超出阈值,则判定为对方软件异常,当所述主软件在无法正常运行时,挑选一个其他所述备软件作为新的主软件,继续进行工作,且所述主软件和所述备软件之间通过所述心跳包的网络进行同步,当所述主软件的参数状态有变动时会主动向所述备软件发送同步数据,所述备软件收到所述同步数据后,基于所述同步数据修改当前的参数状态,实现同步操作。
7.进一步地,所述业务软件工作方法具体为:
软件上线,所述业务软件进行自检,自检合格后,所述业务软件进行上线运行;软件运行,检查所述业务软件运行时的状态,判断所述主软件是否发生异常情况,其中所述状态包括主状态和备状态,带有主状态的所述业务软件为主软件,带有备状态的所述业务软件为备软件;处理异常,发生异常情况时,对发生异常的所述业务软件进行重启。
8.进一步地,主软件发生异常后的处理方法具体为:所述备软件通过接收心跳包判断所述主软件发生异常后,将自身状态修改为主状态,变更为新的所述主软件,发生异常的所述主软件会通过定期自检判断自身发生异常,进行重启,重启成功后变更为备软件并与新的主软件进行连接、同步。
9.进一步地,备软件发生异常后的处理方法具体为:所述主软件通过接收心跳包判断所述备软件发生异常后,所述主软件的状态不变,发生异常的所述备软件通过定期自检判断自身发生异常,进行重启,重启成功后再与主软件进行连接、同步。
10.一种基于云平台的主备软件管理系统,包括:软件状态采集分析上报模块、主备切换模块、主备参数同步模块;所述软件状态采集分析上报模块用于采集业务软件的当前状态和服务器的当前状态,基于所述业务软件的当前状态和所述服务器的当前状态分析当前所述业务软件是否正常,并将判断结果上报给所述主备切换模块;所述主备切换模块用于实现主备软件的切换;所述主备参数同步模块用于对主备软件在切换后的参数进行同步,保证软件在切换后能保持正确参数运行,其中备软件进行备份的过程中,只同步关键参数,不进行业务逻辑处理和网络业务数据处理。
11.进一步地,所述主备软件管理系统存在于每一个所述业务软件中;每个所述主备软件管理系统独立运行。
12.进一步地,所述主备软件中,所述备软件的状态为热备份。
13.进一步地,所述关键参数为:进行所述业务逻辑处理后的结果或者所述业务软件配置的参数。
14.进一步地,所述主备软件中的主软件通过tcp服务端进行所述业务逻辑处理和所述网络业务数据处理,所述备软件通过tcp客户端与所述主软件进行连接通讯,同步所述关键参数。
15.本发明公开了以下技术效果:本发明采用了互发心跳包的方式判断主软件是否出现异常,提高了检测效率和检测准确性,并采用不固定设置主软件的方式,提高了本申请的稳定性,备软件采用热备份的状态,降低了本发明的运行成本,提高了工作效率。本发明与现有技术相比,能自主快速进行切换、恢复系统性能,同时也减轻后续人工值班的工作量。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
17.图1为本发明实施例中公开的一种主备软件管理系统的架构示意图;图2为本发明实施例中公开的一种主备软件管理系统的工作原理示意图;图3为本发明实施例中公开的一种主备软件管理系统启动流程示意图;图4为本发明实施例中公开的一主一备的主备状态初次建立连接的连接过程示意图;图5为本发明实施例中公开的一主一备主份发生故障的处理过程示意图;图6为本发明实施例中公开的一主一备备份发生故障的处理过程示意图;图7为本发明实施例中公开的一主多备初次建立连接的连接过程示意图;图8为本发明实施例中公开的一主多备主份发生故障的处理过程示意图;图9为本发明实施例中公开的一主多备当前备份发生故障的处理过程示意图;图10为本发明实施例中公开的一主多备其他备份发生故障的处理过程示意图。
具体实施方式
18.现详细说明本发明的多种示例性实施方式,该详细说明不应认为是对本发明的限制,而应理解为是对本发明的某些方面、特性和实施方案的更详细的描述。
19.应理解本发明中所述的术语仅仅是为描述特别的实施方式,并非用于限制本发明。另外,对于本发明中的数值范围,应理解为还具体公开了该范围的上限和下限之间的每个中间值。在任何陈述值或陈述范围内的中间值以及任何其他陈述值或在所述范围内的中间值之间的每个较小的范围也包括在本发明内。这些较小范围的上限和下限可独立地包括或排除在范围内。
20.在不背离本发明的范围或精神的情况下,可对本发明说明书的具体实施方式做多种改进和变化,这对本领域技术人员而言是显而易见的。由本发明的说明书得到的其他实施方式对技术人员而言是显而易见的。本申请说明书和实施例仅是示例性的。
21.关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
24.本发明公开了一种基于云平台的主备软件管理方法和系统,具体为a、b、c...虚拟服务器上均运行同一类型的业务软件,业务软件间互为主备且仅有一个主份软件,如果a虚拟服务器上的业务软件为主份软件,其他虚拟服务器上的业务软件为备份软件,当a虚拟服务器上的业务软件不能正常运行,此时b、c

虚拟服务器上会顶替a虚拟服务器上的业务软件运行,保证系统正常工作,其中业务软件即下文中的虚拟服务器软件。
25.本发明提供的一种主备软件管理系统,所述主备软件管理系统部署在虚拟服务器a,b,c

上,主备软件管理系统包括:软件状态采集分析上报模块、主备切换模块、主备参数
同步模块。
26.其中软件状态采集分析上报模块为采集软件当前状态和服务器的当前状态,然后通过当前状态分析判断当前软件是否正常,并将判断结果上报给主备切换模块;主备切换模块为实现主备软件的切换逻辑;主备参数同步模块为保证主备软件在切换后保证参数一致性,保证软件在切换后能保持正确参数运行。
27.本发明的主备控制方式不是一个独立的总体控制系统的进行主备管理,避免若总体控制系统出现问题导致不能进行主备切换,而是每个业务软件都包含一个独立的主备软件管理系统,不需要一个总体控制系统进行控制。
28.本发明的备软件为热备份状态,热备时只进行关键参数同步,不进行业务逻辑处理和网络业务数据处理,关键参数指业务逻辑处理后的结果或者软件配置的参数。避免备软件因业务数据导致软件故障,而无法进行切换。
29.图1是主备软件管理系统的架构,即云计算平台的简单架构,该架构也依托在物理服务器上,其内存、cpu和磁盘空间均通过云计算分配,实现虚拟出多个云主机,即虚拟服务器,如果一个云计算平台总共由两台物理服务器组成,此时需要四台虚拟服务器,会通过云计算分配,将两台物理服务器分割为四台虚拟服务器,其分割方法可能将一台服务器分割为多台虚拟服务器,也可能为多台物理服务器各分割一部分组成一台虚拟服务器,其他未使用的物理服务器空间将作为扩充空间。
30.如图2所示,图2是本发明的主备软件管理系统的工作原理,即本发明的启动确认主备流程,主要是通过判断当前配置中是否存在主软件(服务端),如果当前配置网中存在则将自身软件修改为备状态,如果不存在则将自身软件修改为主状态。
31.主备软件管理系统主要分为三个工作状态:软件上线时期、软件运行时期和异常处理时期;其中软件上线主要为软件上线前的一系列的自检和主备状态的确认,保证软件上线前的状态正确;软件运行期为软件运行时的状态,保证主备状态的切换;异常处理期为软件在异常时重启软件操作。
32.本发明中包括一个tcp的客户端和tcp的服务端,当且仅当为主软件时才会启动服务端,为备软件时只通过客户端进行连接通讯,主备软件的通讯均在配置文件中提前配置好,如图3所示。
33.本发明判断对方软件是否正常的主要依据是通过双方的心跳包来确认,主备软件双方都会定时给对方发送心跳包,如果一定时间收不到心跳包则认为对方软件异常,如果此时自身为备软件则会进行上述的切换操作,将自身状态修改为主状态。
34.本发明的主备同步也是通过心跳包的网络进行通讯同步,当主软件的参数状态有变动时会主动通过网络向备软件发送同步数据,备软件收到同步数据后,根据数据修改当前软件的参数状态,实现软件同步操作。还有一种软件同步过程,即当备软件初次启动时,会向网络发送数据同步请求,当主软件收到同步请求后会发送当前所有的同步数据给备软件,实现软件同步操作。
35.本发明提供一种多主的异常检测,即当前主备管理中出现异常状态,导致软件出
现多个主软件的状态,此时软件会获取当前主备配置中所有软件的主备状态,如果自身为主软件,且配置中有软件存在主软件的状态,则获取配置中的优先级先后顺序,如果自身优先级比对方高则不进行操作,如果自身优先级比对方低则自动重启软件,进行下线并重新同步参数。
36.本发明中软件需要定期进行自检,即对当前的服务器状态包括内存、cpu、磁盘空间等关键信息进行定期检查,也对当前服务器的网络状态进行监视,若自检不通过则需要人工干预,解决问题。
37.图4为一主一备的主备状态初次建立过程。a、b虚拟服务器上软件互为主备,此时a、b虚拟服务器软件均未启动,此时启动a虚拟服务器上的软件,这时a虚拟服务器上的软件先连接b虚拟服务器,此时b虚拟服务器软件并未启动,所以连接失败,a虚拟服务器软件则将状态修改为主软件;b虚拟服务器软件此时启动,b虚拟服务器软件先连接a虚拟服务器,此时a虚拟服务器软件正常连接成功,b虚拟服务器软件修改状态为备软件,并发送同步请求给a虚拟服务器软件,a虚拟服务器软件接收到同步请求后,给b虚拟服务器软件发送同步数据,此时一个完整的建立连接过程就完成了,a、b虚拟服务器软件此时都将互相监听对方心跳包,保证软件连接正常。
38.图5为一主一备状态下的处于主状态的a虚拟服务器软件发生故障的处置方法。在建立连接过程完成后,此时如果a虚拟服务器软件故障,b虚拟服务器会因无法收到a虚拟服务器软件的心跳包,认为a虚拟服务器软件故障,b虚拟服务器软件此时会进行切换操作,将自身状态修改为主软件,接替a虚拟服务器软件运行;此时a虚拟服务器软件在定期自检的作用下,会判断自身故障,a虚拟服务器软件会进行重启操作,重启成功后,a虚拟服务器软件会连接b虚拟服务器软件,此时b虚拟服务器软件正常连接成功,a虚拟服务器软件修改状态为备软件,并发送同步请求给b虚拟服务器软件,b虚拟服务器软件接收到同步请求后,给a虚拟服务器软件发送同步数据,此时又一个完整的建立连接过程完成。
39.图6为一主一备状态下的处于备状态的b虚拟服务器软件发生故障的处置方法。此时如果b虚拟服务器软件故障,a虚拟服务器会无法收到b虚拟服务器软件的心跳包,认为b虚拟服务器软件故障,a虚拟服务器会认为b虚拟服务器软件不可用,自身状态不进行改变;此时b虚拟服务器软件在定期自检的作用下,会判断自身故障,此时b虚拟服务器软件会进行重启操作,重启成功后,b虚拟服务器软件会连接a虚拟服务器软件,此时a虚拟服务器软件正常连接成,b虚拟服务器软件修改状态为备软件,同时发送同步请求给a虚拟服务器软件,a虚拟服务器软件接收到同步请求后,给b虚拟服务器软件发送同步数据,此时就完成一个完整的建立连接过程。
40.图7为一主多备的主备状态初次建立过程,且图7中的冒号后表示当前备份,a、b、c虚拟服务器上软件互为主备,此时a、b、c虚拟服务器软件均未运行,此时这时a虚拟服务器上的虚拟服务器软件先连接b虚拟服务器,此时b虚拟服务器中的b虚拟服务器软件并未启动,所以连接失败,a虚拟服务器软件则将再次连接c虚拟服务器,此时c虚拟服务器软件并未启动,所以也失败,a虚拟服务器软件则将状态修改为主软件,并将当前备份修改为无;此时b虚拟服务器软件启动,b虚拟服务器软件先连接a虚拟服务器软件,a虚拟服务器软件正常连接成功,a虚拟服务器软件检测到b虚拟服务器软件连入,因当前备份为无,所以此时将当前备份记录为b虚拟服务器软件,并将当前备份告知当前所有服务器,但当前只有b虚拟
服务器软件,故只有b虚拟服务器软件收到当前备份为b虚拟服务器则修改当前备份为b虚拟服务器软件;此时c虚拟服务器软件启动,c虚拟服务器软件先连接a虚拟服务器软件,此时a虚拟服务器软件正常连接成功,a虚拟服务器软件检测到c虚拟服务器软件连入,因当前备份为b虚拟服务器软件,则将告知c虚拟服务器软件当前备份为b虚拟服务器软件,c虚拟服务器软件收到当前备份为b虚拟服务器软件则修改当前备份为b虚拟服务器软件,此时一个完整的建立连接过程完成。
41.图8为一主多备的主备状态下,若主状态的a虚拟服务器软件发生异常时的处理方法,且图8中的冒号后表示当前备份。在建立连接完成后,若a虚拟服务器发生故障,b、c虚拟服务器软件均未收到a虚拟服务器软件的心跳包,同时认为a虚拟服务器软件故障;此时b虚拟服务器软件发现当前备份为自身,则发生切换将自身状态切换为主软件,并将当前备份修改为无;此时c虚拟服务器软件通过b虚拟服务器上报的主备状态中,获知当前b虚拟服务器为主,备份机状态为“无”,则等待一段时间后,连接b虚拟服务器软件,所述等待时间为可配置的,可设置成3

5秒。此时b虚拟服务器软件正常连接成功,b虚拟服务器软件检测到c虚拟服务器的连接,因此时当前备份为无,所以将当前备份记录修改为c虚拟服务器软件,并告知当前c虚拟服务器,c虚拟服务器软件收到当前备份为c虚拟服务器软件则修改当前备份为c虚拟服务器软件;此时a虚拟服务器软件因自检发现自身故障,重启软件后,连接b虚拟服务器软件,因b虚拟服务器软件正常连接成功,此时b虚拟服务器软件检测到a虚拟服务器软件的连入,因此时当前备份为c虚拟服务器,则告知a虚拟服务器软件当前备份为c虚拟服务器软件,a虚拟服务器软件将当前备份修改为c虚拟服务器软件,此时一个完整的建立连接过程完成。
42.图9为一主多备的主备状态下,若备状态的b虚拟服务器软件发生异常的处理方法,且图9中的冒号后表示当前备份。b虚拟服务器软件故障,a、c虚拟服务器软件均未收到b虚拟服务器软件的心跳包,同时认为b虚拟服务器软件发生故障;此时a虚拟服务器软件因当前备份为b虚拟服务器软件,刚好为故障软件,同时知道c虚拟服务器软件为正常,则将当前备份修改为c虚拟服务器软件,并告知所有软件;c虚拟服务器软件认为b虚拟服务器软件发生故障并不会进行处理,但收到a虚拟服务器软件修改当前备份为c虚拟服务器软件,则将当前备份修改为c虚拟服务器软件。b虚拟服务器软件因自检发现故障进行重启,重启后连接a虚拟服务器软件,a虚拟服务器正常连接成功,a虚拟服务器软件当前备份为c虚拟服务器软件,告知b虚拟服务器软件,b虚拟服务器软件将当前备份修改为c虚拟服务器软件,此时一个完整的建立过程完成。
43.图10为一主多备的主备状态下,若备状态的c虚拟服务器软件发生异常的处理方法,且图10中的冒号后表示当前备份。此时c虚拟服务器软件故障,a、b虚拟服务器软件均未收到c虚拟服务器软件的心跳包,同时认为c虚拟服务器软件发送故障;此时当前备份不为c虚拟服务器软件,a虚拟服务器软件清除当前c虚拟服务器软件的连接,而b虚拟服务器软件不进行处理。c虚拟服务器软件因自检发现自身故障,重启c虚拟服务器软件,重启后连接a虚拟服务器软件,a虚拟服务器软件正常连接成功,a虚拟服务器将当前备份为b虚拟服务器软件告知c虚拟服务器软件,此时一个完整的建立过程完成。
44.在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所
示的方位或位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
45.以上所述的实施例仅是对本发明的优选方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1