CN117938629A - 一种机房容灾处理方法、***、调度节点及存储介质 - Google Patents
一种机房容灾处理方法、***、调度节点及存储介质 Download PDFInfo
- Publication number
- CN117938629A CN117938629A CN202410098921.XA CN202410098921A CN117938629A CN 117938629 A CN117938629 A CN 117938629A CN 202410098921 A CN202410098921 A CN 202410098921A CN 117938629 A CN117938629 A CN 117938629A
- Authority
- CN
- China
- Prior art keywords
- database
- machine room
- cluster
- cluster manager
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 102
- 238000003672 processing method Methods 0.000 title claims abstract description 43
- 238000003860 storage Methods 0.000 title claims abstract description 21
- 230000015556 catabolic process Effects 0.000 claims abstract description 62
- 238000006731 degradation reaction Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000004044 response Effects 0.000 claims description 95
- 238000012545 processing Methods 0.000 claims description 43
- 230000010076 replication Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 17
- 238000005520 cutting process Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 112
- 238000010586 diagram Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 230000000593 degrading effect Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000004083 survival effect Effects 0.000 description 3
- 238000005304 joining Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种机房容灾处理方法、***、调度节点及存储介质,该方法包括:接收客户端发送的对主机房的机房降级请求;将主机房内的第一应用代理设置为禁止对外提供写服务以及对主机房中的数据库主节点和集群管理器领导者分别进行降级处理;接收客户端发送的对备机房的机房升级请求;将备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将备机房内的第二应用代理设置为对外提供写服务。利用该方法,基于数据库集群、集群管理器集群模式下的双机房部署,主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换。主备机房的各个节点处于同一集群中,使得机房切换更为简单。
Description
技术领域
本发明涉及机房容灾技术领域,尤其涉及一种机房容灾处理方法、***、调度节点及存储介质。
背景技术
在单机房部署下,可能会出现不可抗问题(如断电、断网等因素),导致集群无法正常提供服务,对业务造成潜在损失。所以在金融级别的高可用领域上,为了避免用户损失,需要一种基于同城或者异地机房之间的多活机制。在保障各机房数据一致的同时,最大程度上降低由于机房的单点所导致的高可用问题。双机房就是其中的一种解决方案。当主机房故障后,可迅速切换至备机房对外提供服务,恢复时间可达秒级;当备机房故障时,主机房仍能正常对外提供服务;故障机房恢复后,也可重新再次加入数据库集群。
现有方案中一般采用双集群模式,双集群模式为主备机房分别部署一套集群,这样不利于数据、拓扑结构的高效管理。同时,在双集群模式下,当主机房故障切换至备机房时,上层业务需重新路由至新集群入口,业务端感知明显,对用户是较不友好的。另外,现有方案中备机房往往仅是作为主机房的数据副本,功能较单一。而且传统的主备复制模式主要有三种方式,一种是同步的方式,备机房的节点可能会响应较慢,对主机房性能会有所影响;还有剩下两种是半同步或异步的方式,若机房故障切换无法保证备机房的数据与主机房一致。
发明内容
本发明实施例提供了一种机房容灾处理方法、***、调度节点及存储介质,实现了主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换。主备机房的各个节点处于同一集群中,使得机房切换更为简单。
第一方面,本发明实施例提供了一种机房容灾处理方法,应用于机房容灾处理***的集群管理器,所述机房容灾处理***至少部署有主机房和备机房,所述主机房和备机房分别至少包括数据库、集群管理器和应用代理,所述主机房中各节点与所述备机房中各节点处于同一集群中,所述主机房的数据库和所述备机房的数据库处于同一数据库集群中,所述主机房的集群管理器与所述备机房的集群管理器处于同一集群管理器集群中,所述方法包括:
接收客户端发送的对主机房的机房降级请求;
将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理;
接收客户端发送的对备机房的机房升级请求;
将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务。
第二方面,本发明实施例提供了一种机房容灾处理***,所述***至少部署有主机房和备机房,所述主机房和备机房分别至少包括数据库、集群管理器和应用代理,所述主机房中各节点与所述备机房中各节点处于同一集群中,所述主机房的数据库和所述备机房的数据库处于同一数据库集群中,所述主机房的集群管理器与所述备机房的集群管理器处于同一集群管理器集群中;所述集群管理器,具体用于:
接收客户端发送的对主机房的机房降级请求;
将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理;
接收客户端发送的对备机房的机房升级请求;
将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务。
第三方面,本发明实施例还提供一种调度节点,所述调度节点包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所述的机房容灾处理方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如第一方面实施例所述的机房容灾处理方法。
本发明实施例提供了一种机房容灾处理方法、***、调度节点及存储介质,所述方法应用于机房容灾处理***的集群管理器,所述机房容灾处理***至少部署有主机房和备机房,所述主机房和备机房分别至少包括数据库、集群管理器和应用代理,所述主机房中各节点与所述备机房中各节点处于同一集群中,所述主机房的数据库和所述备机房的数据库处于同一数据库集群中,所述主机房的集群管理器与所述备机房的集群管理器处于同一集群管理器集群中,所述方法包括:接收客户端发送的对主机房的机房降级请求;将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理;接收客户端发送的对备机房的机房升级请求;将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务。利用该方法,基于数据库集群、集群管理器集群模式下的双机房部署,当备机房故障时,集群可以保持健康状态;主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换。主备机房的各个节点处于同一集群中,为数据、拓扑结构的管理提供了较大的便利;且主备机房数据库使用一个数据库集群,使得机房切换更为简单,当机房发生故障后,上层业务不需要重新路由到新集群入口,业务层几乎无感知,提高了用户体验。同时因为主备机房节点同处于一个数据库集群中,所以主备机房节点间的关系也不再仅仅是复制关系,备机房的节点也会参与数据的一致性投票和选主中来,丰富了备节点的功能。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种机房容灾处理方法的流程示意图;
图2为本发明实施例一提供的在一种机房容灾处理方法执行中机房中各节点的关系示例图;
图3为本发明实施例一提供的在一种机房容灾处理方法执行中数据库集群的示例图;
图4为本发明实施例一提供的在一种机房容灾处理方法执行中集群管理器集群的示例图;
图5为本发明实施例一提供的在一种机房容灾处理方法执行中集群恢复的示例图:
图6为本发明实施例二提供的另一种机房容灾处理方法的流程示意图;
图7为本发明实施例二提供的在一种机房容灾处理方法执行中主机房降级的示例图;
图8为本发明实施例二提供的在一种机房容灾处理方法执行中数据库降级的示例图;
图9为本发明实施例二提供的在一种机房容灾处理方法执行中数据库降级的示例图;
图10为本发明实施例二提供的在一种机房容灾处理方法执行中备机房升级的示例图;
图11为本发明实施例二提供的在一种机房容灾处理方法执行中数据库升级的示例图;
图12为本发明实施例三提供的一种机房容灾处理***的结构示意图;
图13为本发明实施例三提供的另一种机房容灾处理***的结构示意图;
图14为本发明实施例三提供的又一种机房容灾处理***的结构示意图;
图15为本发明实施例三提供的又一种机房容灾处理***的结构示意图;
图16为本发明实施例四提供的调度节点的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
现有方案中一般采用双集群模式,双集群模式为主备机房分别部署一套集群。例如,基于外部观察者组的分布式数据库节点同步的方法和装置,该方案提供了用于基于外部观察者进行分布式数据库节点同步的方法。所述方法包括:当分布式数据库集群出故障时,所述外部观察者组对整个数据库集群进行统一的存活判决;基于所述外部观察者组,对所述数据库集群中的存活节点进行投票,选举出主节点,其余的存活节点为备节点;将所述主节点的数据复制到所述备节点,进行同步。该方案主备节点之间的数据复制由半同步复制协议实现,选主由复制和容错(Replication And Fault Tolerant,Raft)协议实现,Raft状态机是在数据表引擎层实现的。该方案中的双集群模式,主备机房分别部署一套集群,这样不利于数据、拓扑结构的高效管理。双集群模式下,当主机房故障切换至备机房时,上层业务需重新路由至新集群入口,业务端感知明显,对用户是较不友好的。并且该方案中备机房往往仅仅是作为主机房的数据副本,功能较单一。而且在传统的主备复制模式下,备机房的节点可能会响应较慢,对性能也会有所影响。
实施例一
图1为本发明实施例一提供的一种机房容灾处理方法的流程示意图,该方法可适用于对机房进行容灾处理的情况,该方法可以由机房容灾处理***的集群管理器来执行,其中该集群管理器可由软件和/或硬件实现,并一般部署在机房容灾处理***中。
机房容灾处理***至少部署有主机房和备机房,主机房和备机房分别至少包括数据库、集群管理器和应用代理,主机房中各节点与备机房中各节点处于同一集群中,主机房的数据库和备机房的数据库处于同一数据库集群中,主机房的集群管理器与备机房的集群管理器处于同一集群管理器集群中。
在本实施例中,主机房至少包括数据库、集群管理器和应用代理等节点,备机房中也至少包括数据库、集群管理器和应用代理等节点。机房中还可以包括数据库代理。区别于现有技术中的双集群模式下主备机房分别部署一套集群,本实施例中双机房的各个节点处于同一集群中。
需要说明的是,本实施例在进行机房容灾处理之前,需要通过机房管理对主机房和备机房构成的集群进行初始化。具体包括:为集群所部署的每台服务器设置机房名,数据库集群启动时会通过判断服务器的机房名来确定所在机房,然后依次为各组件设置机房标签。例如,将主机房的机房编号为1,服务器A、服务器B位于主机房中,则运行在服务器A和服务器B上的数据库、集群管理器的机房标签为1。其中应用代理和数据库代理是无状态的,初始化后机房信息保存在内存中。集群管理器和数据库则持久化机房信息至文件中。
图2为本发明实施例一提供的在一种机房容灾处理方法执行中机房中各节点的关系示例图,如图2所示,机房中各节点之间的关系如下:
应用代理:是业务请求入口,将请求转发至数据库主节点。
集群管理器:是数据库集群的管理组件,主要负责底层数据库集群的状态检测及故障修复。同时该组件本身也是通过Raft协议实现的高可用管理组件集群,因此,除了对底层数据库集群管理外,还集成了管理组件本身的退役、恢复功能。集群由一个领导者(leader)和若干个跟随者(follower)组成,推荐个数为3或3以上的单数。
数据库代理:主要负责数据库的启动停止及注册数据库信息操作。
数据库:独立存储和管理数据的***,多个数据库之间采用组复制架构组成多副本的集群,集群包含一个主节点和若干个备节点,推荐个数为3个或3个以上的单数。
优选地,数据库集群基于数据库组复制技术实现,集群管理器集群基于分布式一致性协议实现。
其中,数据库组复制(Group Replication,GR)技术是一种新的数据库复制技术,它提供了一种在服务器之间创建高度可用***的方法。它基于Paxos算法,通过创建一个复制组,组中的数据库可以协同工作。它可以确保数据的一致性,提供容错能力,并自动管理组中的服务器。
Paxos算法是一种解决分布式***中的一致性问题的算法,它的主要目标是在一个由多个节点组成的分布式***中,即使少数节点发生故障,也能达成一致的决定。Paxos算法的主要优点是能在任何时候保证***的一致性,即使在网络分区或者节点故障的情况下也能保证一致性。
图3为本发明实施例一提供的在一种机房容灾处理方法执行中数据库集群的示例图,如图3所示,假设主机房部署有数据库1和数据库2,备机房部署有数据库3,数据库1、数据库2和数据库3采用GR组复制架构组成多副本的数据库集群。其中,数据库1为主节点,数据库2和数据库3为从节点。
集群管理器集群基于分布式一致性协议实现,Raft协议是目前使用较广泛的分布式一致性协议,通过多数派机制来选择领导者,当某一节点得到大于N/2选票后成为领导者,其中N为节点个数。其余节点则成为跟随者,领导者与跟随者之间通过定时心跳机制保持通信。图4为本发明实施例一提供的在一种机房容灾处理方法执行中集群管理器集群的示例图,如图4所示,假设主机房部署有集群管理器1和集群管理器2,备机房部署有集群管理器3,集群管理器1、集群管理器2和集群管理器3基于Raft协议组成集群管理器集群。其中,集群管理器1为领导者,集群管理器2和集群管理器3为跟随者。
需要说明的是,本实施例提供的机房容灾处理方法中与上述现有方案中采用半同步复制方式不同;本实施例中采用了组复制的复制架构,基于Paxos算法实现了分布式下数据的最终一致性,事务提交时,必须经过组内半数以上节点认证并通过,才能得以提交。而且由于采用的是多数派响应机制,个别节点的响应慢对主节点并无太大影响。选主方式不同,上述现有方案中调度者还参与了投票选举过程;本实施例中集群多数派下的选主由组复制插件自动完成,少数派下由调度者完成集群的选主重建。调度者功能不完全相同,上述现有方案中的调度节点的主要功能为数据库集群进行存活判定、投票选举等功能;本实施例中调度节点的主要功能是机房的故障切换。
如图1所示,本实施例一提供的机房容灾处理方法具体可以包括以下步骤:
S101、接收客户端发送的对主机房的机房降级请求。
其中,将存在多数派节点的机房记为主机房,将存在少数派节点的机房记为备机房。可以认为一般情况下,由主机房对外提供服务,当主机房发生故障时,切换为备机房对外提供服务。
在本实施例中,基于数据库集群(即数据库组复制集群)、集群管理器集群(即管理器Raft集群)模式下的双机房部署,当备机房故障时,集群可以保持健康状态;当主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换。可以认为当主机房出现故障时,机房容灾处理过程包括主机房降级和备机房升级。当主机房发生灾备级故障时,需要对主机房进行机房降级操作,退役主机房的节点。然后,对备机房进行机房升级操作,备机房对外提供服务。待机房故障恢复后,通过集群恢复操作使双机房集群恢复健康。本实施例的执行主体可以认为是集群管理器。
当主机房发生故障时,需要进行容灾处理,也就是将主机房退役,切换为备机房对外提供服务。本实施例中,当需要对主机房进行降级处理时,.用户或管理软件对指定机房内的集群管理器发出机房降级请求。其中,用户可以通过人机交互方式发送机房降级请求,还可以是对机房进行管理的管理软件监测到主机房故障则发送机房降级请求。本实施例中,将用户采用人机交互方式或者管理软件的方式统称为基于客户端进行的操作方式。客户端以轮询的方式向所有的集群管理器发送机房降级请求。相应的,集群管理器接收客户端发送的对主机房的机房降级请求。
S102、将主机房内的第一应用代理设置为禁止对外提供写服务以及对主机房中的数据库主节点和集群管理器领导者分别进行降级处理。
其中,主机房至少包括应用代理、数据库和集群管理器等节点。在主机房正常状态下,默认由主机房对外提供服务。将主机房内的应用代理记为第一应用代理,主机房中存在数据库主节点以及集群管理器领导者。
在本实施例中,机房降级主要是包含禁止位于该机房的应用代理对外提供写服务,将存在于该机房的集群管理器领导者和数据库的主节点进行降级处理,如切换到其他机房或强制退出集群。
示例性的,对主机房中的节点进行处理的步骤可以描述为:集群管理器对指定机房内的应用代理设置为只读,拒绝写请求。集群管理器对该机房内数据库发出降级请求,数据库的降级可分为优雅切换和强制退出。优雅切换指当前正在执行的事务正常提交后执行切换操作,如果主节点位于指定降级的机房,则将主节点切换至另一个机房中,若优雅切换失败,则可以继续尝试强制退出;强制退出会将该数据库强制离开数据库集群。集群管理器集群进行优雅切换或强制退出,优雅切换指如果集群管理器领导者位于指定降级的机房,则将领导者切换至另一个机房中,若优雅切换失败,则可以继续尝试强制退出;强制退出会将位于降级机房中的领导者强制离开集群管理器集群。
S103、接收客户端发送的对备机房的机房升级请求。
在本实施例中,当主机房发生故障时,需要进行容灾处理,也就是将主机房退役,切换为备机房对外提供服务。本实施例中,在对主机房进行降级处理后,还需要对备机房进行升级处理。用户或管理软件对指定机房内的集群管理器发出机房升级请求。其中,用户可以通过人机交互方式发送机房升级请求,还可以是对机房进行管理的管理软件发送机房升级请求。本实施例中,将用户采用人机交互方式或者管理软件的方式统称为基于客户端进行的操作方式。客户端以轮询的方式向所有的集群管理器发送机房升级请求。相应的,集群管理器接收客户端发送的对备机房的机房升级请求。可以理解的是,客户端以轮询的方式向所有的集群管理器发送机房降级和升级命令。
S104、将备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将备机房内的第二应用代理设置为对外提供写服务。
其中,备机房至少包括应用代理、数据库和集群管理器等节点。将备机房内的应用代理记为第二应用代理,备机房中存在数据库备节点以及集群管理器跟随者。
在本实施例中,机房升级主要是包含将存在于该机房的指定的集群管理器跟随者切换为领导者,数据库的备节点切换为主节点,并对位于该机房的应用代理设置为可对外提供读写服务。
示例性的,对备机房中的节点进行处理的步骤可以描述为:集群管理器对该机房内数据库发出升级请求,数据库的升级可分为优雅切换和强制切主。优雅切换指当前正在执行的事务正常提交后执行切换操作,如果主节点位于其他机房,则将主节点切换至当前机房中,若优雅切换失败,则可以继续尝试强制切主;强制切主会将该数据库强制离开组数据库集群,声明自己为主节点并重组新集群。数据库升级成功后,集群管理器会对数据库设置少数派可写标签,使单个主节点组成的集群可以提供读写服务。集群管理器集群进行优雅切换或强制切主,与数据库类似,优雅切换指如果集群管理器领导者位于其他机房,则将领导者切换至当前机房中,若优雅切换失败,则可以继续尝试强制切主;强制切主会将位于该机房中的指定集群管理器强制退出集群管理器集群,并声明自己为领导者创建新的集群。集群管理器对指定机房内的应用代理设置为可读写,能够正常对外提供服务。
以上为机房切换主要的两个操作,在实际场景下,客户端以轮询的方式向所有的集群管理组件发送机房降级和升级命令。对于降级操作,其指定机房内的所有组件(即节点)返回成功才算降级成功。因为待降级机房可能本身已发生故障,所以如果返回连接错误,仍计算该响应为成功。对于升级操作,只要任一管理组件返回成功,则认为升级成功。机房的降级和升级都成功,可认为本次机房切换成功。
本发明实施例提供了一种机房容灾处理方法,该方法应用于机房容灾处理***的集群管理器,机房容灾处理***至少部署有主机房和备机房,主机房和备机房分别至少包括数据库、集群管理器和应用代理,主机房中各节点与备机房中各节点处于同一集群中,主机房的数据库和备机房的数据库处于同一数据库集群中,主机房的集群管理器与备机房的集群管理器处于同一集群管理器集群中,该方法包括:接收客户端发送的对主机房的机房降级请求;将主机房内的第一应用代理设置为禁止对外提供写服务以及对主机房中的数据库主节点和集群管理器领导者分别进行降级处理;接收客户端发送的对备机房的机房升级请求;将备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将备机房内的第二应用代理设置为对外提供写服务。利用该方法,基于数据库集群、集群管理器集群模式下的双机房部署,当备机房故障时,集群可以保持健康状态;主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换。主备机房的各个节点处于同一集群中,为数据、拓扑结构的管理提供了较大的便利;且主备机房数据库使用一个数据库集群,使得机房切换更为简单,当机房发生故障后,上层业务不需要重新路由到新集群入口,业务层几乎无感知,提高了用户体验。同时因为主备机房节点同处于一个数据库集群中,所以主备机房节点间的关系也不再仅仅是复制关系,备机房的节点也会参与数据的一致性投票和选主中来,丰富了备节点的功能。
作为本发明实施例的可选实施例,在上述实施例的基础上,该方法还包括:当接收到客户端发送的集群恢复请求时,将故障恢复的数据库加入到数据库集群中、将故障恢复的集群管理器加入到集群管理器集群中以及将故障恢复的应用代理的属性设置为可读写。
在本实施例中,机房故障恢复后可以通过集群恢复操作将双机房集群恢复正常。当机房故障恢复后,用户可以通过人机交互方式发送集群恢复请求,还可以是对机房进行管理的管理软件发送集群恢复请求。当机房故障恢复后,可以通过客户端发送集群恢复请求。集群恢复主要包括将故障恢复的数据库加入数据库集群中,将故障恢复的集群管理器加入集群管理器集群中,对故障恢复的应用代理设置可读写。
上述技术方案增加了集群恢复功能,实现了当机房故障恢复后,将数据库、集群管理器重新加入集群中,且应用代理的属性设置为可读写,从而使恢复后的机房重新加入到集群中。
作为一种具体实现方式,将故障恢复的数据库加入到数据库集群中、将故障恢复的集群管理器加入到集群管理器集群中以及将故障恢复的应用代理的属性设置为可读写的步骤可以包括:
a1)检测未在数据库集群中的数据库状态并将故障恢复的数据库作为数据库备节点加入数据库集群中。
在本实施例中,集群管理器检测未在数据库集群(即组复制集群)中的数据库状态,并将这些数据库以备节点的角色加入数据库集群中。
b1)检测未在集群管理器集群中的集群管理器状态并将故障恢复的集群管理器作为集群管理器跟随者加入集群管理器集群中。
本步骤中,集群管理器检测其他未在集群管理器集群(即Raft集群)中的集群管理器,并将这些管理器以跟随者的角色加入集群管理器集群中。
c1)检测未提供读写服务的应用代理并将故障恢复的应用代理的属性设置为可读写。
本步骤中,集群管理器检测未提供读写服务的应用代理节点,并对其设置为可读写服务。
示例性的,图5为本发明实施例一提供的在一种机房容灾处理方法执行中集群恢复的示例图,如图5所示,11、客户端向集群管理器发送集群恢复请求;12、集群管理器向故障恢复的数据库发送加入数据库集群请求并接收数据库对该请求的响应;13、故障恢复的集群管理器加入集群管理器集群;14、对故障恢复的应用代理设置为可读写并接收应用代理对该请求的响应,至此完成集群恢复。
上述技术方案具体化了集群恢复的具体步骤。
实施例二
图6为本发明实施例二提供的另一种机房容灾处理方法的流程示意图,本实施例为上述实施例的进一步优化,在本实施例中,进一步对“将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理”限定优化,且进一步对“将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务”限定优化。
如图6所示,本实施例二提供一种机房容灾处理方法,具体包括如下步骤:
S201、接收客户端发送的对主机房的机房降级请求。
S202、向第一应用代理发送第一属性设置请求并接收第一应用代理对第一属性设置请求的响应信息。
其中,第一属性设置请求为设置第一应用代理的属性为只读。
本实施例中,当集群管理器接收到客户端发送的机房降级请求时,集群管理器对主机房内的应用代理设置为只读,拒绝写请求。将要降级的主机房内的应用代理记为第一应用代理。具体的,向第一应用代理发送第一属性设置请求,以将第一应用代理的属性设置为只读,拒绝写请求。然后接收第一应用代理对第一属性设置请求的响应信息。若该响应信息为属性设置成功,则表明对第一应用代理设置成功。
示例性的,图7为本发明实施例二提供的在一种机房容灾处理方法执行中主机房降级的示例图,如图7所示,21、客户端向对指定机房内的集群管理器发送机房降级请求;22、集群管理器对指定机房内的应用代理设置为只读,并接收应用代理的响应;23、集群管理器对该机房内数据库发出降级请求,数据库的降级可分为优雅切换和强制退出,并接收数据库的响应;24、集群管理器集群进行优雅切换或强制退出,至此完成机房降级。
S203、向数据库主节点发送数据库降级请求并接收数据库主节点对数据库降级请求的响应信息。
在上述将主机房中的第一应用代理设置为只读后,还需要将主机房中的数据库主节点进行降级。具体的,集群管理器对主机房内的数据库主节点发送数据库降级请求,以使数据库主节点降级,如使数据库主节点切换至备机房或者退出数据库集群,并接收数据库主节点对数据库降级请求的响应信息。若该响应信息为数据库主节点降级成功,则表明对数据库主节点降级成功。
需要说明的是,如果数据库主节点并不位于要降级的主机房中,而是位于其他机房中,则不需要对数据库主节点进行降级操作。
作为一种具体实现方式,向数据库主节点发送数据库降级请求并接收数据库主节点对数据库降级请求的响应信息,包括:
a2)向数据库主节点发送第一优雅切换请求以使数据库主节点优雅切换至备机房中。
本实施例中,集群管理器对指定降级的主机房内的数据库发送降级请求,数据库的降级可分为优雅切换和强制退出。本步骤先向该机房中的数据库主节点发送优雅切换请求,记为第一优雅切换请求。优雅切换指当前正在执行的事务正常提交后执行切换操作,如果主节点位于指定降级的机房,则将主节点切换至另一个机房中。
示例性的,图8为本发明实施例二提供的在一种机房容灾处理方法执行中数据库降级的示例图,如图8所示,集群管理器向指定降级的机房的数据库发送优雅切换请求,并接收优雅切换响应。
b2)接收数据库主节点对第一优雅切换请求的响应信息。
具体的,集群管理器接收数据库主节点对第一优雅切换请求的响应信息。该响应信息可能是优雅切换成功或者优雅切换失败。
c2)若对第一优雅切换请求的响应信息为优雅切换成功,则确定数据库主节点降级成功。
具体的,若对第一优雅切换请求的响应信息为优雅切换成功,则表明数据库主节点降级成功。
d2)若对第一优雅切换请求的响应信息为优雅切换失败,则确定数据库主节点降级失败,并向数据库主节点发送第一强制退出请求以使数据库主节点强制退出数据库集群。
在本实施例中,若对第一优雅切换请求的响应信息为优雅切换失败,表明数据库主节点降级失败,则可以继续尝试强制退出,强制退出会将该数据库主节点强制离开数据库集群。具体的,向数据库主节点发送强制退出请求,记为第一强制退出请求,以使数据库主节点强制退出数据库集群。
示例性的,图9为本发明实施例二提供的在一种机房容灾处理方法执行中数据库降级的示例图,如图9所示,集群管理器向指定降级的机房的数据库发送强制退出请求,并接收强制退出响应。
e2)接收数据库主节点对第一强制退出请求的响应信息。
具体的,集群管理器接收数据库主节点对第一优雅切换请求的响应信息。该响应信息可能是优雅切换成功或者优雅切换失败。
f2)若对第一强制退出请求的响应信息为强制退出成功,则确定数据库主节点降级成功。
具体的,若对第一强制退出请求的响应信息为强制退出成功,则表明数据库主节点降级成功。可以理解为是,无论是优雅切换还是强制退出,只要成功均可实现指定降级机房中的数据库节点降级。
上述技术方案具体化了对降级机房中的数据库主节点进行降级的步骤。
S204、向集群管理器领导者发送管理器降级请求并接收集群管理器领导者对管理器降级请求的响应信息。
在上述将主机房中的第一应用代理设置为只读,并将主机房中的数据库主节点进行降级后,还需要将主机房中的集群管理器领导者进行降级。具体的,集群管理器对主机房内的集群管理器领导者发送管理器降级请求,以使集群管理器领导者降级,如使集群管理器领导者切换至备机房或者退出集群管理器集群,并接收集群管理器领导者对管理器降级请求的响应信息。若该响应信息为集群管理器领导者降级成功,则表明对集群管理器领导者降级成功。
需要说明的是,如果集群管理器领导者并不位于要降级的主机房中,而是位于其他机房中,则不需要对集群管理器领导者进行降级操作。若接收机房降级请求的集群管理器就是领导者,则集群管理器领导者的“强制退出”是由集群管理器领导者自己完成的,并不会收到请求响应。
作为一种具体实现方式,向集群管理器领导者发送管理器降级请求并接收集群管理器领导者对管理器降级请求的响应信息,包括:
a3)向集群管理器领导者发送第二优雅切换请求以使集群管理器领导者优雅切换至备机房。
本实施例中,集群管理器对指定降级的主机房内的集群管理器领导者发送降级请求,集群管理器的降级可分为优雅切换和强制退出。本步骤先向该机房中的集群管理器发送优雅切换请求,记为第二优雅切换请求。优雅切换指当前正在执行的日志条目正常提交后执行切换操作,如果集群管理器领导者位于指定降级的机房,则将领导者切换至另一个机房中。
b3)接收集群管理器领导者对第二优雅切换请求的响应信息。
具体的,集群管理器接收集群管理器领导者对第二优雅切换请求的响应信息。该响应信息可能是优雅切换成功或者优雅切换失败。
c3)若对第二优雅切换请求的响应信息为优雅切换成功,则确定集群管理器领导者降级成功。
具体的,若对第二优雅切换请求的响应信息为优雅切换成功,则表明集群管理器领导者降级成功。
d3)若对第二优雅切换请求的响应信息为优雅切换失败,则确定集群管理器领导者降级失败,并向集群管理器领导者发送第二强制退出请求以使集群管理器领导者强制退出集群管理器集群。
在本实施例中,若对第二优雅切换请求的响应信息为优雅切换失败,表明集群管理器领导者降级失败,则可以继续尝试强制退出,强制退出会将该集群管理器领导者强制离开数据库集群。具体的,向集群管理器领导者发送强制退出请求,记为第二强制退出请求,以使集群管理器领导者强制退出数据库集群。
S205、接收客户端发送的对备机房的机房升级请求。
S206、向数据库备节点发送数据库升级请求并接收数据库备节点对数据库升级请求的响应信息。
本实施例中,当集群管理器接收到客户端发送的机房升级请求时,需要将备机房中的数据库备节点进行升级。具体的,集群管理器对备机房内的数据库备节点发送数据库升级请求,以使数据库备节点升级,如使数据库主节点切换至当前机房或者强制切主,并接收数据库备节点对数据库升级请求的响应信息。若该响应信息为数据库备节点升级成功,则表明对数据库备节点升级成功。
需要说明的是,如果数据库主节点不是位于其他机房,而是位于要升级的备机房中,则不需要对数据库备节点进行升级操作。
示例性的,图10为本发明实施例提供的在一种机房容灾处理方法执行中备机房升级的示例图,如图10所示,31、客户端向对指定机房内的集群管理器发送集群升级请求;32、集群管理器对该机房内数据库发出数据库升级请求,数据库的升级可分为优雅切换和强制切主,并接收数据库的响应;33、集群管理器集群进行优雅切换或强制切主;34、集群管理器对指定机房内的应用代理设置为可读写,并接收应用代理的响应,至此完成机房升级。
作为一种具体实现方式,向数据库备节点发送数据库升级请求并接收数据库备节点对数据库升级请求的响应信息,包括:
a4)向数据库备节点发送第三优雅切换请求以使数据库备节点优雅切换为新的主节点。
本实施例中,集群管理器对指定升级的备机房内的数据库发送升级请求,数据库的升级可分为优雅切换和强制退出。本步骤先向该机房中的数据库备节点发送优雅切换请求,记为第三优雅切换请求。优雅切换指当前正在执行的事务正常提交后执行切换操作,如果主节点位于其他机房,则将主节点切换至当前机房中。具体的,向数据库备节点发送第三优雅切换请求以使数据库备节点优雅切换为新的主节点。
b4)接收数据库备节点对第三优雅切换请求的响应信息。
具体的,集群管理器接收数据库备节点对第三优雅切换请求的响应信息。该响应信息可能是优雅切换成功或者优雅切换失败。
c4)若对第三优雅切换请求的响应信息为优雅切换成功,则确定数据库备节点升级成功。
具体的,若对第三优雅切换请求的响应信息为优雅切换成功,则表明数据库备节点升级成功。
d4)若对第三优雅切换请求的响应信息为优雅切换失败,则确定数据库备节点升级失败,并向数据库备节点发送第一强制切主请求以使数据库备节点强制退出数据库集群并作为新的主节点组建新的数据库集群。
在本实施例中,若对第三优雅切换请求的响应信息为优雅切换失败,表明数据库备节点升级失败,则可以继续尝试强制切主,强制切主会将该数据库节点强制离开组复制集群,声明自己为主节点并重组新集群。具体的,向数据库主节点发送强制切主请求,记为第一强制切主请求,以使数据库备节点强制退出数据库集群并作为新的主节点组建新的数据库集群。
e4)接收数据库备节点对组建新的数据库集群的响应信息。
具体的,接收数据库备节点对组建新的数据库集群的响应信息。
f4)若对组建新的数据库集群的响应信息为组建成功,则确定数据库备节点升级成功。
具体的,若该响应信息为组建成功,则表明对数据库备节点升级成功。
g4)在确定数据库备节点升级成功后,对新的数据库主节点设置少数派可写标签。
具体的,数据库升级成功后,集群管理器会对数据库设置少数派可写标签,使单个主节点组成的集群可以提供读写服务。
示例性的,图11为本发明实施例提供的在一种机房容灾处理方法执行中数据库升级的示例图,如图11所示,集群管理器向指定升级的机房的数据库发送退出数据库集群请求,并接收退出响应。然后使该数据库节点声明自己为新的主节点并重组新集群,并接收重组响应。数据库升级成功后,集群管理器会对数据库设置少数派可写标签,使单个主节点组成的集群可以提供读写服务。
上述技术方案具体化了对升级机房中的数据库备节点进行升级的步骤。
S207、向集群管理器跟随者发送管理器升级请求并接收集群管理器跟随者对管理器升级请求的响应信息。
在上述将备机房中的数据库备节点进行升级后,还需要将备机房中的集群管理器跟随者进行升级。具体的,集群管理器对备机房内的集群管理器跟随者发送管理器升级请求,以使集群管理器跟随者升级,如使集群管理器领导者优雅切换至当前机房或者强制切主,并接收集群管理器跟随者对管理器升级请求的响应信息。若该响应信息为集群管理器跟随者升级成功,则表明对集群管理器跟随者升级成功。
需要说明的是,如果集群管理器领导者位于要升级的备机房中,则不需要对集群管理器跟随者进行升级操作。
作为一种具体实现方式,向集群管理器跟随者发送管理器升级请求并接收集群管理器跟随者对管理器升级请求的响应信息,包括:
a5)向集群管理器跟随者发送第四优雅切换请求以使集群管理器跟随者优雅切换为新的集群管理器领导者。
本实施例中,集群管理器对指定升级的备机房内的集群管理器跟随者发送升级请求,集群管理器的升级可分为优雅切换和强制退出。本步骤先向该机房中的集群管理器发送优雅切换请求,记为第四优雅切换请求。优雅切换指当前正在执行的日志条目正常提交后执行切换操作,如果集群管理器领导者位于其他机房,则将领导者切换至当前机房中。
b5)接收集群管理器跟随者对第四优雅切换请求的响应信息。
具体的,集群管理器接收集群管理器跟随者对第四优雅切换请求的响应信息。该响应信息可能是优雅切换成功或者优雅切换失败。
c5)若对第四优雅切换请求的响应信息为优雅切换成功,则确定集群管理器跟随者升级成功。
具体的,若对第四优雅切换请求的响应信息为优雅切换成功,则表明集群管理器跟随者升级成功。
d5)若对第四优雅切换请求的响应信息为优雅切换失败,则确定集群管理器跟随者升级失败,并向集群管理器跟随者发送第二强制切主请求以使集群管理器跟随者强制退出集群管理器集群并作为新的集群管理器领导者组建新的集群管理器集群。
在本实施例中,若对第四优雅切换请求的响应信息为优雅切换失败,表明集群管理器跟随者升级失败,则可以继续尝试强制切主,强制退出会将位于该机房中的指定集群管理器强制退出集群管理器集群,并声明自己为领导者创建新的集群。具体的,向集群管理器跟随者发送强制退出请求,记为第二强制切主请求,以使集群管理器跟随者强制退出集群管理器集群并作为新的集群管理器领导者组建新的集群管理器集群。
S208、向第二应用代理发送第二属性设置请求并接收第二应用代理对第二属性设置请求的响应信息。
其中,第二属性设置请求为设置第二应用代理的属性为可读写。
在上述将备机房中的数据库备节点升级以及集群管理器跟随者升级之后,还需要对备机房内的应用代理设置为可读写,能够正常对外提供服务。将要升级的备机房内的应用代理记为第二应用代理。具体的,向第二应用代理发送第二属性设置请求,以将第二应用代理的属性设置为可读写,能够正常对外提供服务。然后接收第二应用代理对第二属性设置请求的响应信息。若该响应信息为属性设置成功,则表明对第二应用代理设置成功。
上述技术方案具体化了机房降级主要是包含禁止位于该机房的应用代理对外提供写服务,将存在于该机房的集群管理器领导者和数据库的主节点切换到其他机房或强制退出集群。以及机房升级操作包含将存在于该机房的指定的集群管理器跟随者切换为领导者,数据库的备节点切换为主节点,并对位于该机房的应用代理设置为可对外提供读写服务。上述技术方案基于数据库组复制集群、管理器Raft集群模式下的双机房部署,当备机房故障时,集群可以保持健康状态;主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换;机房故障恢复后可以通过集群恢复操作将双机房集群恢复正常。双机房的各个数据库、管理器节点处于同一个集群中,备机房的节点也会参与数据的一致性投票和选主中来,丰富了备节点的功能,这样做为集群拓扑结构的管理提供了较大的便利,此外,由于主备机房数据库使用一个组复制集群,也使得上层业务切换更为简单。当机房发生故障后,上层业务不需要重新路由到新集群入口,业务层几乎无感知。
实施例三
图12为本发明实施例三提供的一种机房容灾处理***的结构示意图。如图12所示,该***包括所述***至少部署有主机房10和备机房20,所述主机房10至少包括数据库、集群管理器和应用代理,备机房20至少包括数据库、集群管理器和应用代理。所述主机房10中各节点与所述备机房20中各节点处于同一集群中,所述主机房的数据库和所述备机房的数据库处于同一数据库集群中,所述主机房的集群管理器与所述备机房的集群管理器处于同一集群管理器集群中;所述集群管理器,具体用于:
接收客户端发送的对主机房的机房降级请求;
将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理;
接收客户端发送的对备机房的机房升级请求;
将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务。
在本实施例中,主机房至少包括数据库、集群管理器和应用代理等节点,备机房中也至少包括数据库、集群管理器和应用代理等节点。机房中还可以包括数据库代理。区别于现有技术中的双集群模式下主备机房分别部署一套集群,本实施例中双机房的各个节点处于同一集群中。
需要说明的是,本实施例在进行机房容灾处理之前,需要通过机房管理对主机房和备机房构成的集群进行初始化。具体包括:为集群所部署的每台服务器设置机房名,数据库集群启动时会通过判断服务器的机房名来确定所在机房,然后依次为各组件设置机房标签。例如,将主机房的机房编号为1,服务器A、服务器B位于主机房中,则运行在服务器A和服务器B上的数据库、集群管理器的机房标签为1。其中应用代理和数据库代理是无状态的,初始化后机房信息保存在内存中。集群管理器和数据库则持久化机房信息至文件中。继续参考图12,主机房部署有服务器A和服务器B,备机房部署有服务器C。服务器A上部署有应用代理1、集群管理器1、数据库代理1和数据库1,服务器B上部署有应用代理2、集群管理器2、数据库代理2和数据库2,服务器C上部署有应用代理3、集群管理器3、数据库代理3和数据库3。
其中,将存在多数派节点的机房记为主机房,将存在少数派节点的机房记为备机房。可以认为一般情况下,由主机房对外提供服务,当主机房发生故障时,切换为备机房对外提供服务。当主机房发生故障时,需要进行容灾处理,也就是将主机房退役,切换为备机房对外提供服务。
本实施例未说明之处可参考方法实施例中的内容,此处不做重复说明。
上述技术方案,基于数据库集群、集群管理器集群模式下的双机房部署,当备机房故障时,集群可以保持健康状态;主机房故障时通过主机房降级、备机房升级的方式实现机房秒级切换。主备机房的各个节点处于同一集群中,为数据、拓扑结构的管理提供了较大的便利;且主备机房数据库使用一个数据库集群,使得机房切换更为简单,当机房发生故障后,上层业务不需要重新路由到新集群入口,业务层几乎无感知,提高了用户体验。
除以上集中式双机房架构外,该方案还可用于扩展到多机房、分布式集群架构中。以下为几种常见的集群拓展架构:
图13为本发明实施例三提供的另一种机房容灾处理***的结构示意图,如图13所示,该机房容灾处理***为备机房多服务器的情况。该双机房架构在上述架构基础上,在备机房新增一个服务器节点,每一个节点中均安装应用代理,多数的集群管理器安装在备机房、多数的数据库安装在主机房。主机房部署有服务器A(图中记为节点A)和服务器B(图中记为节点B),备机房部署有服务器C(图中记为节点C)和服务器D(图中记为节点D)。服务器A上部署有应用代理1、集群管理器1、数据库代理1和数据库1,服务器B上部署有应用代理2、数据库代理2和数据库2,服务器C上部署有应用代理3、集群管理器2、数据库代理3和数据库3,服务器D上部署有应用代理4和集群管理器3。该方案的好处可以使集群管理器的多数派与数据库的多数派分离,当任意机房故障,可以保证集群管理器或数据库有多数派的存活,减少故障率。
图14为本发明实施例三提供的又一种机房容灾处理***的结构示意图,如图14所示,该机房容灾处理***为多机房架构的情况。该架构在双机房的基础上新增一个异地机房,其中主机房和备机房均安装两个节点,异地机房安装一个节点。主机房部署有服务器A(图中记为节点A)和服务器B(图中记为节点B),备机房部署有服务器C(图中记为节点C)和服务器D(图中记为节点D),异地机房部署有服务器E(图中记为节点E)。服务器A上部署有应用代理1、集群管理器1、数据库代理1和数据库1,服务器B上部署有应用代理2、集群管理器2、数据库代理2和数据库2,服务器C上部署有应用代理3、集群管理器3、数据库代理3和数据库3,服务器D上部署有应用代理4、集群管理器4、数据库代理4和数据库4,服务器E上部署有应用代理5、集群管理器5、数据库代理5和数据库5。在这种架构下,任意一个机房故障均可保证多数派的存活,不需要外部干预集群便可以自动完成容灾。
图15为本发明实施例三提供的又一种机房容灾处理***的结构示意图,如图15所示,该机房容灾处理***为分布式双机房集群的情况。分布式数据库集群中,数据库集群以分片形式出现,每一分片都是一个数据库集群(即组复制集群),管理组件以分片为单位对每一个数据库集群进行管理。主机房部署有服务器A(图中记为节点A)和服务器B(图中记为节点B)和备机房部署有服务器C(图中记为节点C)。服务器A上部署有应用代理1、集群管理器1、数据库代理1-1、数据库1-1、数据库代理2-1和数据库2-1,服务器B上部署有应用代理2、集群管理器2、数据库代理1-2、数据库1-2、数据库代理2-2和数据库2-2,服务器C上部署有应用代理3、集群管理器3、数据库代理1-3、数据库1-3、数据库代理2-3和数据库2-3。其中,数据库代理1-1、数据库1-1、数据库代理1-2、数据库1-2、数据库代理1-3、数据库1-3属于分片1,数据库代理2-1、数据库2-1、数据库代理2-2、数据库2-2、数据库代理2-3、数据库2-3属于分片2。该架构的好处是可以更高效的管理数据。
需要知道的是,在双机房架构的理论基础上,可以拓展为多机房架构及分布式架构,使得集群具备更强的拓展性。
实施例六
图16为本发明实施例四提供的调度节点的结构示意图。本实施例中集群管理器可以认为是调度节点。调度节点可以在一台服务器(计算机)单独部署,也可以同其他组件共同部署在同一台计算机。此处对计算机不做具体限制,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。调度节点还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图16所示,调度节点40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储调度节点40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
调度节点40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许调度节点40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学***台的机房容灾处理方法。
在一些实施例中,机房容灾处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到调度节点40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的机房容灾处理方法中的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行机房容灾处理方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在调度节点上实施此处描述的***和技术,该调度节点具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给调度节点。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种机房容灾处理方法,其特征在于,应用于机房容灾处理***的集群管理器,所述机房容灾处理***至少部署有主机房和备机房,所述主机房和备机房分别至少包括数据库、集群管理器和应用代理,所述主机房中各节点与所述备机房中各节点处于同一集群中,所述主机房的数据库和所述备机房的数据库处于同一数据库集群中,所述主机房的集群管理器与所述备机房的集群管理器处于同一集群管理器集群中,所述方法包括:
接收客户端发送的对主机房的机房降级请求;
将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理;
接收客户端发送的对备机房的机房升级请求;
将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务。
2.根据权利要求1所述的方法,其特征在于,所述数据库集群基于数据库组复制技术实现,所述集群管理器集群基于分布式一致性协议实现。
3.根据权利要求1所述的方法,其特征在于,所述将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理,包括:
向所述第一应用代理发送第一属性设置请求并接收所述第一应用代理对所述第一属性设置请求的响应信息,所述第一属性设置请求为设置所述第一应用代理的属性为只读;
向所述数据库主节点发送数据库降级请求并接收所述数据库主节点对所述数据库降级请求的响应信息;
向所述集群管理器领导者发送管理器降级请求并接收所述集群管理器领导者对所述管理器降级请求的响应信息。
4.根据权利要求3所述的方法,其特征在于,所述向所述数据库主节点发送数据库降级请求并接收所述数据库主节点对所述数据库降级请求的响应信息,包括:
向所述数据库主节点发送第一优雅切换请求以使所述数据库主节点优雅切换至所述备机房中;
接收所述数据库主节点对所述第一优雅切换请求的响应信息;
若对所述第一优雅切换请求的响应信息为优雅切换成功,则确定所述数据库主节点降级成功;
否则,确定所述数据库主节点降级失败,并向所述数据库主节点发送第一强制退出请求以使所述数据库主节点强制退出所述数据库集群;
接收所述数据库主节点对所述第一强制退出请求的响应信息;
若对所述第一强制退出请求的响应信息为强制退出成功,则确定所述数据库主节点降级成功。
5.根据权利要求3所述的方法,其特征在于,所述向所述集群管理器领导者发送管理器降级请求并接收所述集群管理器领导者对所述管理器降级请求的响应信息,包括:
向所述集群管理器领导者发送第二优雅切换请求以使所述集群管理器领导者优雅切换至所述备机房;
接收所述集群管理器领导者对所述第二优雅切换请求的响应信息;
若对所述第二优雅切换请求的响应信息为优雅切换成功,则确定所述集群管理器领导者降级成功;
否则,确定所述集群管理器领导者降级失败,并向所述集群管理器领导者发送第二强制退出请求以使所述集群管理器领导者强制退出所述集群管理器集群。
6.根据权利要求1所述的方法,其特征在于,所述将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务,包括:
向所述数据库备节点发送数据库升级请求并接收所述数据库备节点对所述数据库升级请求的响应信息;
向所述集群管理器跟随者发送管理器升级请求并接收所述集群管理器跟随者对所述管理器升级请求的响应信息;
向所述第二应用代理发送第二属性设置请求并接收所述第二应用代理对所述第二属性设置请求的响应信息,所述第二属性设置请求为设置所述第二应用代理的属性为可读写。
7.根据权利要求6所述的方法,其特征在于,所述向所述数据库备节点发送数据库升级请求并接收所述数据库备节点对所述数据库升级请求的响应信息,包括:
向所述数据库备节点发送第三优雅切换请求以使所述数据库备节点优雅切换为新的主节点;
接收所述数据库备节点对所述第三优雅切换请求的响应信息;
若对所述第三优雅切换请求的响应信息为优雅切换成功,则确定所述数据库备节点升级成功;
否则,确定所述数据库备节点升级失败,并向所述数据库备节点发送第一强制切主请求以使所述数据库备节点强制退出所述数据库集群并作为新的主节点组建新的数据库集群;
接收所述数据库备节点对组建新的数据库集群的响应信息;
若对组建新的数据库集群的响应信息为组建成功,则确定所述数据库备节点升级成功;
在确定所述数据库备节点升级成功后,对所述新的数据库主节点设置少数派可写标签。
8.根据权利要求6所述的方法,其特征在于,所述向所述集群管理器跟随者发送管理器升级请求并接收所述集群管理器跟随者对所述管理器升级请求的响应信息,包括:
向所述集群管理器跟随者发送第四优雅切换请求以使所述集群管理器跟随者优雅切换为新的集群管理器领导者;
接收所述集群管理器跟随者对所述第四优雅切换请求的响应信息;
若对所述第四优雅切换请求的响应信息为优雅切换成功,则确定所述集群管理器跟随者升级成功;
否则,确定所述集群管理器跟随者升级失败,并向所述集群管理器跟随者发送第二强制切主请求以使所述集群管理器跟随者强制退出所述集群管理器集群并作为新的集群管理器领导者组建新的集群管理器集群。
9.根据权利要求1所述的方法,其特征在于,还包括:
当接收到客户端发送的集群恢复请求时,将故障恢复的数据库加入到所述数据库集群中、将故障恢复的集群管理器加入到所述集群管理器集群中以及将故障恢复的应用代理的属性设置为可读写。
10.根据权利要求9所述的方法,其特征在于,所述将故障恢复的数据库加入到数据库集群中、将故障恢复的集群管理器加入到集群管理器集群中以及将故障恢复的应用代理的属性设置为可读写,包括:
检测未在所述数据库集群中的数据库状态并将故障恢复的数据库作为数据库备节点加入所述数据库集群中;
检测未在所述集群管理器集群中的集群管理器状态并将故障恢复的集群管理器作为集群管理器跟随者加入所述集群管理器集群中;
检测未提供读写服务的应用代理并将故障恢复的应用代理的属性设置为可读写。
11.一种机房容灾处理***,其特征在于,所述***至少部署有主机房和备机房,所述主机房和备机房分别至少包括数据库、集群管理器和应用代理,所述主机房中各节点与所述备机房中各节点处于同一集群中,所述主机房的数据库和所述备机房的数据库处于同一数据库集群中,所述主机房的集群管理器与所述备机房的集群管理器处于同一集群管理器集群中;所述集群管理器,具体用于:
接收客户端发送的对主机房的机房降级请求;
将所述主机房内的第一应用代理设置为禁止对外提供写服务以及对所述主机房中的数据库主节点和集群管理器领导者分别进行降级处理;
接收客户端发送的对备机房的机房升级请求;
将所述备机房中的数据库备节点切换为新的数据库主节点、将集群管理器跟随者切换为新的集群管理器领导者以及将所述备机房内的第二应用代理设置为对外提供写服务。
12.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的机房容灾处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-10中任一项所述的机房容灾处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410098921.XA CN117938629A (zh) | 2024-01-24 | 2024-01-24 | 一种机房容灾处理方法、***、调度节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410098921.XA CN117938629A (zh) | 2024-01-24 | 2024-01-24 | 一种机房容灾处理方法、***、调度节点及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117938629A true CN117938629A (zh) | 2024-04-26 |
Family
ID=90765933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410098921.XA Pending CN117938629A (zh) | 2024-01-24 | 2024-01-24 | 一种机房容灾处理方法、***、调度节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117938629A (zh) |
-
2024
- 2024-01-24 CN CN202410098921.XA patent/CN117938629A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109729129B (zh) | 存储集群***的配置修改方法、存储集群及计算机*** | |
US10713135B2 (en) | Data disaster recovery method, device and system | |
JP5102901B2 (ja) | データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム | |
US7536586B2 (en) | System and method for the management of failure recovery in multiple-node shared-storage environments | |
JP2019219954A (ja) | クラスタストレージシステム、データ管理制御方法、データ管理制御プログラム | |
CN110224871A (zh) | 一种Redis集群的高可用方法及装置 | |
CN101227315B (zh) | 动态服务器集群及其控制方法 | |
CN106487486B (zh) | 业务处理方法和数据中心*** | |
JP2005209201A (ja) | 高可用性クラスタにおけるノード管理 | |
CN102938705A (zh) | 一种高可用多机备份路由表管理与切换方法 | |
CN113821376B (zh) | 一种基于云灾备的一体化备份容灾方法及*** | |
WO2017097006A1 (zh) | 一种实时数据容错处理方法及*** | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和*** | |
CN107135097A (zh) | 基于簿记建档的容灾***及容灾方法 | |
CN104753987B (zh) | 一种分布式会话管理方法及*** | |
JP2009129409A (ja) | 障害回復方法、計算機、クラスタシステム、管理計算機及び障害回復プログラム | |
CN114363154A (zh) | 节点选举方法、装置、电子设备及存储介质 | |
CN111240901B (zh) | 分布式块存储***的节点动态扩展***、方法及设备 | |
CN103793296A (zh) | 一种在集群中用于辅助备份复制计算机***的方法 | |
CN104052799B (zh) | 一种利用资源环实现高可用存储的方法 | |
CN112231399A (zh) | 一种应用于图数据库的方法和装置 | |
CN111708843A (zh) | 一种基于MGR的跨数据中心MySQL多活实现方法 | |
CN117938629A (zh) | 一种机房容灾处理方法、***、调度节点及存储介质 | |
US11544162B2 (en) | Computer cluster using expiring recovery rules | |
CN113626252A (zh) | 一种基于集群的城市级容灾方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |