买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于Galera的控制节点主备切换的高可用方法及系统_武汉噢易云计算股份有限公司_201510775862.6 

申请/专利权人:武汉噢易云计算股份有限公司

申请日:2015-11-12

公开(公告)日:2019-03-01

公开(公告)号:CN105471622B

主分类号:H04L12/24(2006.01)I

分类号:H04L12/24(2006.01)I;H04L12/26(2006.01)I

优先权:

专利状态码:有效-授权

法律状态:2019.03.01#授权;2016.05.04#实质审查的生效;2016.04.27#著录事项变更;2016.04.06#公开

摘要:本发明公开了一种基于Galera的控制节点主备切换的高可用方法及系统,涉及云计算领域,包括主控节点、备控节点、主监测发送模块、备监测发送模块、主存储模块、备存储模块、主计时执行模块和备计时执行模块;主监测发送模块监测、发送主控节点的心跳信息,并接收备监测发送模块发送的心跳响应信息;备监测发送模块监测备控节点的心跳信息、接收心跳信息并发送心跳响应信息至主监测发送模块;主存储模块、备存储模块接收并存储集群信息;主计时执行模块计算主监测发送模块接收心跳响应信息是否超时;备计时执行模块计算备监测发送模块接收心跳信息是否超时。本发明能够在主控节点与备控节点发生切换时,保证数据的完整性和集群的正常工作。

主权项:1.一种基于Galera的控制节点主备切换的高可用系统,包括主控节点和备控节点,其特征在于:所述系统还包括主监测发送模块、备监测发送模块、主存储模块、备存储模块、主计时执行模块和备计时执行模块;所述主存储模块位于主控节点内,所述备存储模块位于备控节点内;所述主计时执行模块位于主控节点内,所述备计时执行模块位于备控节点内;所述主监测发送模块监测、发送主控节点的心跳信息,并接收备监测发送模块发送的心跳响应信息;主监测发送模块还用于判断主存储模块中的信息是否与备存储模块中的信息同步,并在未同步时重启主控节点的Galera MySQL数据库,等待备控节点的Galera MySQL数据库连接;所述备监测发送模块用于监测备控节点的心跳信息,接收主监测发送模块发送的心跳信息,并将备控节点的心跳信息和主控节点的心跳信息作为心跳响应信息发送至主监测发送模块;备监测发送模块还用于判断备存储模块中的信息是否与主存储模块中的信息同步,并在未同步时重启备控节点的Galera MySQL数据库,连接到主控节点的Galera MySQL数据库;所述主存储模块、备存储模块均用于接收并存储集群信息;所述主存储模块、备存储模块均为Galera MySQL数据库;所述主计时执行模块用于计算主监测发送模块最近一次接收到心跳响应信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果不能ping通仲裁IP,则将主控节点降级为备控节点;所述备计时执行模块用于计算备监测发送模块最近一次接收到心跳信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果能ping通仲裁IP,则将备控节点升级为主控节点。

全文数据:一种基于Galera的控制节点主备切换的高可用方法及系统技术领域本发明涉及云计算领域,具体涉及一种基于Galera的控制节点主备切换的高可用方法及系统。背景技术在云计算数据中心中,通过控制节点管理计算节点、存储集群状态、配置数据、动态调度集群资源,控制节点是云计算中整个集群的核心。当控制节点出现宕机时,该控制节点对应的集群会处于无中心节点管理的状态,使得该集群的部分功能无法正常使用;当控制节点上的数据出现损坏时,与该节点对应的集群的状态及配置数据会丢失,甚至用户的业务数据也会丢失,因此,控制节点影响着集群的正常工作。目前,为了避免控制节点故障导致的集群难以正常工作,通常采用以下两种方式:1使用至少两个控制节点共同分担集群的管理工作,每个控制节点上的工作负载平均分配,集群的数据在每个控制节点上都有冗余备份,当任意一个控制节点宕机时,该控制节点上的工作负载会自动转移至另一个控制节点上。2使用主备高可用技术,即:包括当前主控节点和备控节点,当前主控节点用于管理对应的集群,备控节点用于备份当前主控节点的数据,还用于检测主控节点是否发生故障,并用于检测到主控节点发生故障时,管理当前主控节点对应的集群。目前主备高可用技术一般采用MySQL一个关系型数据库管理系统异步复制将主控节点上的数据备份到备控节点上,同时备控节点监听主控节点的心跳,当发现主控节点离线时,备控节点升级为主控节点,并启动MySQL和httpdApache超文本传输协议HTTP服务器的主程序等控制节点服务,配置浮动IP,管理集群。上述方法在使用时,存在以下缺陷:使用MySQL进行异步复制时,先将数据写入主控节点,再将数据复制到备控节点,当主控节点宕机时,会有一部分数据已经写到主控节点,但还没来得及复制到备控节点,此时备控节点升级为主控节点,没有复制到备控节点中的数据发生丢失,影响集群的正常工作。发明内容针对现有技术中存在的缺陷,本发明的目的在于提供一种基于Galera的控制节点主备切换的高可用方法及系统,能够在主控节点与备控节点发生切换时,保证数据的完整性,保证集群的正常工作。为达到以上目的,本发明采取的技术方案是:一种基于Galera的控制节点主备切换的高可用系统,包括主控节点和备控节点,所述系统还包括主监测发送模块、备监测发送模块、主存储模块、备存储模块、主计时执行模块和备计时执行模块;所述主存储模块位于主控节点内,所述备存储模块位于备控节点内;所述主计时执行模块位于主控节点内,所述备计时执行模块位于备控节点内;所述主监测发送模块监测、发送主控节点的心跳信息,并接收备监测发送模块发送的心跳响应信息;所述备监测发送模块用于监测备控节点的心跳信息,接收主监测发送模块发送的心跳信息,并将备控节点的心跳信息和主控节点的心跳信息作为心跳响应信息发送至主监测发送模块;所述主存储模块、备存储模块均用于接收并存储集群信息;所述主计时执行模块用于计算主监测发送模块最近一次接收到心跳响应信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果不能ping通仲裁IP,则将主控节点降级为备控节点;所述备计时执行模块用于计算备监测发送模块最近一次接收到心跳信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果能ping通仲裁IP,则将备控节点升级为主控节点。在上述技术方案的基础上,所述高可用系统还包括用于主监测发送模块和备监测发送模块之间的心跳信息交互的管理模块。在上述技术方案的基础上,所述主存储模块、备存储模块均为GaleraMySQL数据库。在上述技术方案的基础上,所述主监测发送模块判断主存储模块中的信息是否与备存储模块中的信息同步,并在未同步时重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接至主控节点的GaleraMySQL数据库。在上述技术方案的基础上,所述备监测发送模块判断主存储模块中的信息是否与备存储模块中的信息同步,并在未同步时重启备控节点的GaleraMySQL数据库,使备控节点的GaleraMySQL数据库连接到主控节点的GaleraMySQL数据库。在上述技术方案的基础上,所述高可用系统还包括数据同步模块,所述数据同步模块用于主存储模块和备存储模块之间的信息同步交互。一种基于Galera的控制节点主备切换的高可用方法,包括以下步骤:主控节点按预设频率向备控节点发送心跳信息,备控节点接收到心跳信息后向主控节点发送心跳响应信息;备控节点判断满足以下条件:a、没有接收到心跳信息的时间超过预设阈值,b、能ping通仲裁IP,则自动使备控节点提升为主控节点;主控节点判断满足以下条件:c、没有接收到心跳响应信息的时间超过预设阈值,b、不能ping通仲裁IP,则自动使主控节点降级为备控节点。在上述技术方案的基础上,所述主控节点包括主存储模块,所述备控节点包括备存储模块,所述主存储模块、备存储模块均为GaleraMySQL数据库,两GaleraMySQL数据库中的信息强制实时同步。在上述技术方案的基础上,所述方法还包括以下步骤:主监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接至主控节点的GaleraMySQL数据库。在上述技术方案的基础上,所述方法还包括以下步骤:备监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启备控节点的GaleraMySQL数据库并连接到主控节点的GaleraMySQL数据库。与现有技术相比,本发明的优点在于:1本发明中基于Galera的控制节点主备切换的高可用系统,包括主存储模块和备存储模块,且主存储模块和备存储模块均为GaleraMySQL数据库,该数据库具有数据强一致性,每次在主控节点上的写操作一定是等数据复制到备控节点后才返回,保证发生主备控切换时,备存储模块上的所有数据均与主存储模块上的相同,避免数据丢失。2本发明中基于Galera的控制节点主备切换的高可用方法,包括以下步骤:主控节点按3~7s次的频率向备控节点发送心跳信息,备控节点判断未接收到心跳信息的时间是否超过30~60s,并在超过30~60s时,自动使备控节点提升为主控节点。由于网络间歇性少量丢包也会引起短时间故障,且该故障并不会影响集群的正常工作,若此时进行主备切换,会导致主备切换过于频繁,影响系统的稳定性,本发明中在超时30~60s后才进行操作,能够避免频繁的主备切换,使得系统比较稳定。3本发明中基于Galera的控制节点主备切换的高可用方法,包括主监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接至主控节点的GaleraMySQL数据库;备监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启备控节点的GaleraMySQL数据库并连接到主控节点的GaleraMySQL数据库。能够实时调整两GaleraMySQL数据库的状态,避免两GaleraMySQL数据库因数据同步网络断开而锁定。附图说明图1为本发明实施例中基于Galera的控制节点主备切换的高可用系统的结构示意图;图2为本发明实施例中基于Galera的控制节点主备切换的高可用方法的流程图。具体实施方式以下结合附图及实施例对本发明作进一步详细说明。参见图1所示,本发明实施例提供一种基于Galera的控制节点主备切换的高可用系统,主控节点和备控节点同时运行并共用一浮动IP地址和一仲裁IP地址。Galera是一个基于同步复制的多主MySQL集群。该高可用系统包括主监测发送模块、备监测发送模块、主存储模块、备存储模块、主计时执行模块、备计时执行模块、管理模块和数据同步模块。主监测发送模块用于监测、发送主控节点的心跳信息,还用于接收备监测发送模块发送的心跳响应信息;主监测发送模块还用于判断主存储模块中的信息是否与备存储模块中的信息同步,并在未同步时重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接。备监测发送模块用于监测备控节点的心跳信息,并在接收主监测发送模块发送的心跳信息后,将备控节点的心跳信息和主控节点的心跳信息作为心跳响应信息发送至主监测发送模块;备监测发送模块还用于判断备存储模块中的信息是否与主存储模块中的信息同步,并在未同步时重启备控节点的GaleraMySQL数据库,连接到主控节点的GaleraMySQL数据库。主存储模块用于接收并存储集群信息;备存储模块用于接收并存储集群信息,且本发明实施例中,主存储模块、备存储模块均为GaleraMySQL数据库,该数据库具有数据强一致性,每次在主控节点上的写操作一定是等数据复制到备控节点后才返回,保证发生主备控切换时,备存储模块上的所有数据均与主存储模块上的相同,避免数据丢失。主计时执行模块用于计算主监测发送模块最近一次接收到心跳响应信息的时间与当前时间的时间差,并在时间差大于30~60s时,pingPing是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCPIP协议的一部分,利用“ping”命令可以检查网络是否连通仲裁IP,如果不能ping通仲裁IP,则将主控节点降级为备控节点。备计时执行模块用于计算备监测发送模块最近一次接收到心跳信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果能ping通仲裁IP,则将备控节点升级为主控节点。管理模块用于主监测发送模块和备监测发送模块之间的心跳信息交互;数据同步模块用于主存储模块和备存储模块之间的信息同步交互。一种基于Galera的控制节点主备切换的高可用方法,包括以下步骤:主控节点按预设频率本实施例中预设频率为为3~7s次向备控节点发送心跳信息,备控节点接收到心跳信息后向主控节点发送心跳响应信息。备控节点判断有多长时间没有接收到心跳信息,如果上述时间超过预设阈值本实施例中预设阈值为30~60s,且能ping通仲裁IP,则自动使备控节点提升为主控节点。主控节点判断有多长时间没有接收到心跳响应信息,如果上述时间超过预设阈值本实施例中预设阈值为30~60s,且不能ping通仲裁IP,则自动使主控节点降级为备控节点。主控节点包括主存储模块,备控节点包括备存储模块,主存储模块、备存储模块均为GaleraMySQL数据库,两GaleraMySQL数据库中的信息强制实时同步。且当主监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接至主控节点的GaleraMySQL数据库。同时,当备监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启备控节点的GaleraMySQL数据库并连接到主控节点的GaleraMySQL数据库。下面,通过一个实施例对本发明的方法进行详细描述。参见图2所示,定义数据中心包括控制节点A、控制节点B、数据同步网络、管理网络、网关设备和若干计算节点,控制节点A、控制节点B连接到数据同步网络和管理网络;网关设备、所有计算节点均通过管理网络与控制节点A、控制节点B连接。该方法的步骤为:S1、在控制节点A、B上分别设置2个不同子网的IP:数据同步网络和管理网络,如:控制节点A的数据同步网络IP为172.16.0.224,管理网络IP为192.168.0.224,控制节点B的数据同步网络IP为172.16.0.324,管理网络IP为192.168.0.324,转入步骤S2。S2、设置浮动IP和仲裁IP,且浮动IP和仲裁IP的地址均与管理网络相同,如浮动IP为192.168.0.424,仲裁IP为192.168.0.1,转入步骤S3。S3、设置故障阈值,本实施例中,故障阈值为30~60s,用于在发现故障后,延迟30~60s判定该故障为真实故障,由于网络间歇性少量丢包也会引起短时间故障,且该故障并不会影响集群的正常工作,若此时进行主备切换,会导致主备切换过于频繁,影响云计算的稳定性,转入步骤S4。S4、在2个控制节点上均设置监测发送模块,且设置开机启动监测发送模块,监测发送模块监测数据同步网络、管理网络和主备控制节点的GaleraMySQL数据库状态,转入步骤S5。S5、启动控制节点A的监测发送模块,此时控制节点A为备控状态,控制节点A的监测发送模块接收外部节点心跳信息心跳信息包括对应节点的控制状态并通过计时执行模块当前为备计时执行模块计时,若超过30~60s未接收到外部节点心跳信息,如果能ping通仲裁IP,提升控制节点A为主控节点,此时,控制节点B为备控节点,控制节点A按照按3~7s次的频率向控制节点B发送心跳信息,同时,将浮动IP设置在管理网络端口并启动主控节点服务;控制节点A的监测发送模块检测判断本节点的GaleraMySQL数据库与控制节点B的GaleraMySQL数据库是否同步,并在异步时设置本节点为Galera集群的主节点重启MySQL,等待控制节点B的GaleraMySQL数据库主动连接,转入步骤S6。S6、控制节点B此时为备控节点的监测发送模块接收控制节点A的心跳信息,并向控制节点A发送心跳响应信息,心跳响应信息包括控制节点A的心跳信息和控制节点B的心跳信息。同时,控制节点B的监测发送模块判断本节点的GaleraMySQL数据库与控制节点A的GaleraMySQL数据库是否同步,并在异步时设置本节点为Galera集群的从节点重启MySQL,并主动连接到控制节点A的MySQL,转入步骤S7。S7、控制节点A收到心跳响应信息,判断该心跳响应信息中是否包括主控状态信息,并在包括主控状态信息时重置控制节点A的计时执行模块当前为主计时执行模块,进入正常的主备控同步状态,发送心跳信息至控制节点B,转入步骤S8。否则,控制节点A的主计时执行模块进行计时,并在时间超过30~60s时,ping仲裁IP,如果不能ping通仲裁IP,则将A变为备控节点,转入步骤S10。如果能够ping通仲裁IP,A仍然为主控节点,并向控制节点B发送心跳信息,转入步骤S6。S8、控制节点B接收控制节点A的心跳信息,B的计时执行模块当前为备计时执行模块计算当前时间与最后一次收到控制节点A发送的心跳信息的时间差,当上述时间差超过30~60s时,转入步骤S9。S9、将控制节点B的计时执行模块当前为备计时执行模块计时为0,如果能ping通仲裁IP,提升控制节点B为主控节点,并向控制节点A周期性发送心跳信息和接收心跳响应信息,将浮动IP设置在管理网络接口,启动控制节点服务,控制节点B的监测发送模块检测判断本节点的GaleraMySQL数据库与控制节点A的GaleraMySQL数据库是否同步,并在异步时设置本节点为Galera集群的主节点重启GaleraMySQL数据库,等待控制节点A的GaleraMySQL数据库主动连接,转入步骤S10。S10、将控制节点B作为主控节点,控制节点A作为备控节点,重复执行下一周期。本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

权利要求:1.一种基于Galera的控制节点主备切换的高可用系统,包括主控节点和备控节点,其特征在于:所述系统还包括主监测发送模块、备监测发送模块、主存储模块、备存储模块、主计时执行模块和备计时执行模块;所述主存储模块位于主控节点内,所述备存储模块位于备控节点内;所述主计时执行模块位于主控节点内,所述备计时执行模块位于备控节点内;所述主监测发送模块监测、发送主控节点的心跳信息,并接收备监测发送模块发送的心跳响应信息;主监测发送模块还用于判断主存储模块中的信息是否与备存储模块中的信息同步,并在未同步时重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接;所述备监测发送模块用于监测备控节点的心跳信息,接收主监测发送模块发送的心跳信息,并将备控节点的心跳信息和主控节点的心跳信息作为心跳响应信息发送至主监测发送模块;备监测发送模块还用于判断备存储模块中的信息是否与主存储模块中的信息同步,并在未同步时重启备控节点的GaleraMySQL数据库,连接到主控节点的GaleraMySQL数据库;所述主存储模块、备存储模块均用于接收并存储集群信息;所述主存储模块、备存储模块均为GaleraMySQL数据库;所述主计时执行模块用于计算主监测发送模块最近一次接收到心跳响应信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果不能ping通仲裁IP,则将主控节点降级为备控节点;所述备计时执行模块用于计算备监测发送模块最近一次接收到心跳信息的时间与当前时间的时间差,并在时间差大于30~60s时,ping仲裁IP,如果能ping通仲裁IP,则将备控节点升级为主控节点。2.如权利要求1所述的一种基于Galera的控制节点主备切换的高可用系统,其特征在于:所述高可用系统还包括用于主监测发送模块和备监测发送模块之间的心跳信息交互的管理模块。3.如权利要求1所述的一种基于Galera的控制节点主备切换的高可用系统,其特征在于:所述高可用系统还包括数据同步模块,所述数据同步模块用于主存储模块和备存储模块之间的信息同步交互。4.一种基于Galera的控制节点主备切换的高可用方法,其特征在于:包括以下步骤:主控节点按预设频率向备控节点发送心跳信息,备控节点接收到心跳信息后向主控节点发送心跳响应信息;备控节点判断满足以下条件:a、没有接收到心跳信息的时间超过预设阈值,所述预设阈值为30~60s,b、能ping通仲裁IP,则自动使备控节点提升为主控节点;主控节点判断满足以下条件:c、没有接收到心跳响应信息的时间超过预设阈值,所述预设阈值为30~60s,b、不能ping通仲裁IP,则自动使主控节点降级为备控节点;主控节点包括主存储模块,备控节点包括备存储模块,主存储模块、备存储模块均为GaleraMySQL数据库,两GaleraMySQL数据库中的信息强制实时同步;在主控节点、备控节点上分别设置主监测发送模块、备监测发送模块;主监测发送模块用于监测、发送主控节点的心跳信息,还用于接收备监测发送模块发送的心跳响应信息;备监测发送模块用于监测备控节点的心跳信息,并在接收主监测发送模块发送的心跳信息后,将备控节点的心跳信息和主控节点的心跳信息作为心跳响应信息发送至主监测发送模块;且当主监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启主控节点的GaleraMySQL数据库,等待备控节点的GaleraMySQL数据库连接至主控节点的GaleraMySQL数据库;同时,当备监测发送模块判断主存储模块中的信息与备存储模块中的信息异步,重启备控节点的GaleraMySQL数据库并连接到主控节点的GaleraMySQL数据库。

百度查询: 武汉噢易云计算股份有限公司 一种基于Galera的控制节点主备切换的高可用方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术