CN111090537A - 集群启动方法、装置、电子设备及可读存储介质 - Google Patents

集群启动方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN111090537A
CN111090537A CN201911298510.0A CN201911298510A CN111090537A CN 111090537 A CN111090537 A CN 111090537A CN 201911298510 A CN201911298510 A CN 201911298510A CN 111090537 A CN111090537 A CN 111090537A
Authority
CN
China
Prior art keywords
cluster
node
nodes
started
application service
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.)
Granted
Application number
CN201911298510.0A
Other languages
English (en)
Other versions
CN111090537B (zh
Inventor
吴业亮
朱正东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Huayun Data Technology Service Co Ltd
Original Assignee
Wuxi Huayun Data Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Huayun Data Technology Service Co Ltd filed Critical Wuxi Huayun Data Technology Service Co Ltd
Priority to CN201911298510.0A priority Critical patent/CN111090537B/zh
Publication of CN111090537A publication Critical patent/CN111090537A/zh
Application granted granted Critical
Publication of CN111090537B publication Critical patent/CN111090537B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种集群启动方法、装置、电子设备及可读存储介质,在检测到集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,即控制该节点的数据库以引导模式启动。在控制该节点的数据库以引导模式启动之后,在检测到集群内除该节点外的其余节点初步启动成功时,即控制其余节点的数据库以加入模式启动,以加入到集群中。这样,在集群中的所有节点全部被关闭的情况下,再次启动集群时无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。

Description

集群启动方法、装置、电子设备及可读存储介质
技术领域
本申请涉及云处理技术领域,具体而言,涉及一种集群启动方法、装置、电子设备及可读存储介质。
背景技术
在互联网业务中数据库是必不可少的。而为了提供更优质的数据库服务,目前往往会通过集群的方式来实现,例如通过Galera、pxc等数据库集群来实现。但需要注意的是,对于诸如Galera、pxc等仅有一个节点能够采用引导模式进行启动的集群而言,在集群中的所有节点全部被关闭(如同时掉电)的情况下,在下次集群启动的时候,集群的启动需要人工登录到服务器上进行手动启动。这就导致在集群中的所有节点全部被关闭的情况下,再次启动集群时所需要投入的人力成本很高,同时由于需要用户逐台登录到服务器中,因此重启时间也比较长。
发明内容
本申请实施例的目的在于提供一种集群启动方法、装置、电子设备及可读存储介质,用以解决相关技术在集群中的所有节点全部被关闭的情况下,再次启动集群时所需要投入的人力成本很高,重启时间比较长的问题。
本申请实施例提供了一种集群启动方法,包括:
在检测到集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,控制该节点的数据库以引导模式启动;
在控制该节点的数据库以引导模式启动之后,在检测到所述集群内除该节点外的其余节点初步启动成功时,控制所述其余节点的数据库以加入模式启动,以加入到所述集群中。
在上述实现过程中,在检测到集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,即控制该节点的数据库以引导模式启动。在控制该节点的数据库以引导模式启动之后,在检测到集群内除该节点外的其余节点初步启动成功时,即控制其余节点的数据库以加入模式启动,以加入到集群中。这样,在集群中的所有节点全部被关闭的情况下,再次启动集群时无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。
进一步地,所述在检测到所述集群内除该节点外的其余节点初步启动成功时,控制所述其余节点的数据库以加入模式启动包括:在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用时,控制所述其余节点的数据库以加入模式启动。
在上述实现过程中,节点在应用服务端口未启用时,即表明节点还处于数据库还未开启,应用服务还不能提供相应服务的阶段。此时即可以将数据库以加入模式启动从而加入到集群中,提高对数据库的启动方式的正确性,提高集群启动过程的可靠性。
进一步地,所述在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用时,控制所述其余节点的数据库以加入模式启动包括:在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用,且集群内存在节点中的应用服务端口启用时,控制所述其余节点的数据库以加入模式启动。
在上述实现过程中,在其余节点的数据库以加入模式启动时,需要确保集群内存在节点中的应用服务端口启用,这样即使得第二个及第二个以后的初步启动成功的节点必然在第一个初步启动成功的节点的数据库以引导模式启动成功后,数据库才以加入模式启动(以第二个启动的节点为例,由于需要集群内存在节点中的应用服务端口启用时,数据库才能以加入模式启动,因此启用的应用服务端口必然是第一个初步启动成功的节点的应用服务端口,应用服务端口启用即表征整个节点已完全启动成功,可以正常对外提供服务。因此第二个初步启动成功的节点必然在第一个初步启动成功的节点的数据库以引导模式启动成功后,数据库才以加入模式启动的。对于第二个以后初步启动成功的节点同理),这就提高了对数据库的启动方式的正确性,提高了集群启动过程的可靠性。
进一步地,所述其余节点为检测到的第n个启动的应用服务端口未启用的节点;所述n为大于等于2的正整数;
所述在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用,且集群内存在节点中的应用服务端口启用时,控制所述其余节点的数据库以加入模式启动包括:在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用,且在所集群内存在n-1个节点中的应用服务端口启用时,控制所述其余节点的数据库以加入模式启动。
在上述实现过程中,对于检测到的第n个初步启动成功的节点,要求在已存在n-1个节点中的应用服务端口启用时,才控制数据库以加入模式启动。这样,即通过已启用应用服务端口的节点数实现了对于节点依次启动的自动化控制,从而进一步提高了对数据库的启动方式的正确性,提高了集群启动过程的可靠性。
进一步地,在所述控制该节点的数据库以引导模式启动时,所述集群启动方法还包括:启动共享锁,所述共享锁被启用时控制所述其余节点的数据库不能采用引导模式启动。
在上述实现过程中,为了防止出现同时对多个节点的数据库以引动模式启动的情况,通过在控制检测到的第一个初步启动成功的节点的数据库以引导模式启动时,启动共享锁。这样,在共享锁未消失时,即不可以控制别的节点的数据库采用引导模式启动,即有效降低了出现控制所述其余节点的数据库采用引导模式启动的风向风险,提高了本申请方案的可靠性。
进一步地,所述集群启动方法还包括:在控制该节点的数据库以引导模式启动成功后,删除所述共享锁。
在上述实现过程中,在控制该节点的数据库以引导模式启动成功后,即可以删除共享锁。否则由于共享锁的存在,在再次出现集群中的节点全部被关闭的情况,需要重新启动集群时,由于共享锁的存在会导致无法控制节点的数据库以引导模式启动,从而导致集群启动不成功。上述实现过程可以解决这一问题,从而进一步提高本申请方案的可靠性和实际应用价值。
本申请实施例还提供了一种集群启动方法,应用于集群内的任一节点中,包括:
在自身初步启动成功时,检测所述集群内各节点的应用服务端口的状态和各节点的启动状态;
在检测到所述集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;
在检测到所述集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库,以加入所述集群中。
在上述实现过程中,各节点可以检测集群内各节点中应用服务端口的启用情况,以及自身的启动状况。从而在集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;在检测到集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库。这样,在集群中的所有节点全部被关闭的情况下,再次启动集群时无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。
进一步地,在所述以引导模式启动自身的数据库时,所述集群启动方法还包括:启动共享锁,所述共享锁被启用时所述集群中的其余节点的数据库不能采用引导模式启动。
进一步地,所述集群启动方法还包括:在以引导模式启动自身的数据库成功后,删除所述共享锁。
本申请实施例还提供了一种集群启动装置,包括:检测模块和控制模块;
所述检测模块用于检测集群内各节点的应用服务端口的状态和各节点的启动状态;
所述控制模块用于在检测到所述集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,控制该节点的数据库以引导模式启动;在检测到所述集群内除该节点外的其余节点初步启动成功时,控制所述其余节点的数据库以加入模式启动,以加入到所述集群中。
在上述实现结构中,在集群中的所有节点全部被关闭的情况下,再次启动集群时无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。
本申请实施例还提供了一种集群启动装置,应用于集群内的任一节点中;包括:检测单元和控制单元;
所述检测单元用于在自身初步启动成功时,检测所述集群内各节点的应用服务端口的状态和各节点的启动状态;
所述控制单元用于在检测到所述集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;在检测到所述集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库,以加入所述集群中。
在上述实现结构中,各节点可以检测集群内各节点中应用服务端口的启用情况,以及自身的启动状况。从而在集群中的所有节点全部被关闭的情况下,再次启动集群时无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。
本申请实施例还提供了一种电子设备,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的集群启动方法。
本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的集群启动方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种集群启动方法的流程示意图;
图2为本申请实施例提供的一种集群与重置程序设备的结构示意图;
图3为本申请实施例提供的一种集群结构示意图;
图4为本申请实施例提供的另一种集群启动方的流程示意图;
图5为本申请实施例提供的一种集群正常工作时的集群与重置程序设备的结构示意图;
图6为本申请实施例提供的一种集群重启动过程中的第一个节点启动时的示意图;
图7为本申请实施例提供的一种集群重启动过程中的第二个节点启动时的示意图;
图8为本申请实施例提供的一种集群重启动过程中的第三个节点启动时的示意图;
图9为本申请实施例提供的一种极端情况下的集群重启动过程中的三个节点启动示意图;
图10为本申请实施例提供的一种集群启动装置的结构示意图;
图11为本申请实施例提供的另一种应用于集群中任一节点上的集群启动装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
为了解决相关技术在集群中的所有节点全部被关闭的情况下,再次启动集群时所需要投入的人力成本很高,重启时间比较长的问题,本申请实施例中提供了几种集群启动方法。
在本申请实施例中,可以通过配置专门的重置程序来使得电子设备能够实现本申请实施例中所提供如图1的集群启动方法。在本申请实施例中,该重置程序可以配置在集群各节点外的设备中,如可以配置在控制器或负载均衡器等设备中,从而实现对整个集群中各个节点的启动控制,例如参见图2所示。此时,配置有重置程序的在集群各节点外的设备(为便于表述,后文称为重置程序设备),可以按照如图1所示的集群启动方法实现对集群的启动控制。图1所示的集群启动方法包括:
S101:在检测到集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,控制该节点的数据库以引导模式启动。
应当理解的是,在集群中的所有节点全部被关闭的情况下,即集群中的所有节点全部处于未启动状态,此时所有的应用服务端口均处于未启用状态。在集群重新启动的过程中,集群中的节点会依次启动。节点的启动过程包括节点的操作系统以及网络连接等基础功能的启动过程,以及数据库以及应用服务的启动过程。应用服务端口是应用服务对外提供服务的出口,在数据库启动后,即会被节点启用。
还应当理解的是,本申请实施例中的集群可以为诸如Galera数据库集群、pxcCluster数据库集群、etcd数据库集群、内存数据库集群等数据库集群,集群内有且仅能有一个节点的数据库是以引导模式启动。
在本申请实施例中,重置程序设备会不断检测集群内各节点中应用服务端口是否启用。在本申请实施例中,端口可以通过开源工具xinetd实现端口的启用控制。重置程序设备可以通过调用端口,或者通过将检查集群是否同步的程序嵌入到xinetd中,通过检测集群能够同步来判断端口是否被启用。
还需要注意的是,集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,该启动的节点即为集群中第一个启动的节点,该节点的需要以引导模式对数据库进行启动。
在本申请实施例中,节点初步启动成功是指节点的操作系统或者网络连接等基础功能启动成功。对于节点初步启动成功与否的检测可以通过检测节点操作系统是否启动成功,或者通过检测节点网络是否正常,或者通过节点的ipmi(Intelligent PlatformManagement Interface,智能平台管理接口)管理系统进入节点查看节点状态是否正常等方式来实现。需要理解的是,本申请实施例中的节点是具有数据库的节点设备,如服务器等。节点在操作系统或联网功能启动成功时,数据库服务以及相关应用服务可能还没有被启动。本申请实施例中即在节点初步启动成功,但应用服务端口还没有被启动的这一段时间内,实现对节点中数据库的启动控制,从而使得节点中的数据库是按照正确的模式启动的,使得集群得以正确开启。
S102:在控制该节点的数据库以引导模式启动之后,在检测到集群内除该节点外的其余节点初步启动成功时,控制其余节点的数据库以加入模式启动,以加入到集群中。
在本申请实施例中,对于其余节点而言,可以在检测到节点已初步启动成功,但节点自身的应用服务端口还未启用时,控制该节点的数据库以加入模式启动。
应当理解的是,在本申请实施例中,集群中有且仅能有一个节点的数据库是以引导模式启动的。因此,为了降低出现多个节点均以引导模式进行数据库启动的风险,本申请实施例中可以在检测到集群内有其余节点初步启动成功,且其余节点的应用服务端口未启用,且集群内存在节点中的应用服务端口启用时,控制该被检测到的节点的数据库以加入模式启动。
示例性的,可以假设当前检测到的初步启动成功的节点为第n(n为大于等于2的正整数)个启动的节点,那么可以设置在该第n个节点初步启动成功,且对应的应用服务端口未启用,且在集群内存在n-1个节点中的应用服务端口启用时,才控制在该第n个初步启动成功的节点的数据库以加入模式启动。例如,对于第三个启动的节点,在检测到该节点已初步启动成功,且节点上的应用服务端口未启用,且已有两个节点的应用服务端口被成功启用(即表明已有两个节点完全启动成功,已可以对外提供服务),此时即针对第三个初步启动成功的节点的数据库以加入模式进行启动,以将第三个初步启动成功的节点加入到集群中。
应当理解的是,在实际应用中,数据库在以引导模式启动的过程中,需要一定的时间。因此可能存在检测到了第二个初步启动成功的节点,但是还没有实现对该第一个初步启动成功的节点以引导模式启动完毕的情况(即可能存在对于应用服务端口的检测结果仍为所有节点的应用服务端口均未开启,但是检测到了第二个初步启动成功的节点)。此时,为了防止出现程序错误导致的误将第二个节点也以引导模式进行数据库的启动,可以设置在控制第一个初步启动成功的节点的数据库以引导模式启动之时或之前,启动共享锁,从而通过共享锁确保在一个节点以引导程序进行数据库启动的过程中,不会存在另一个节点仍旧以引导模式进行数据库启动。
示例性的,在出现存在对于应用服务端口的检测结果仍为所有节点的应用服务端口均未开启,但是检测到了第二个初步启动成功的节点时,可以控制第一个初步启动成功的节点的数据库以引导模式启动,同时启动共享锁,第二个初步启动成功的节点由于共享锁的存在而不能以引导模式启动数据库,但是又不满足以加入模式启动数据库条件(集群中没有已启用的业务服务端口),因此控制第二个初步启动成功的节点暂时静默,在控制第一个初步启动成功的节点的数据库以引导模式启动成功后,第一个初步启动成功的节点的业务服务端口启用,此时即可控制第二个初步启动成功的节点以加入模式启动数据库。
应当理解的是,由于共享锁的存在,在再次出现集群中的节点全部被关闭的情况,需要重新启动集群时,共享锁的存在会导致无法控制节点的数据库以引导模式启动,从而导致集群启动不成功。因此,在本申请实施例中,在控制第一个启动的节点的数据库以引导模式启动成功后,可以删除共享锁。
需要说明的是,本申请实施例中,共享锁可以通过etcd、redis、memcahced等服务实现。
在本申请实施例中,节点被启动后,节点内的重置程序还可以继续对所处节点的状态进行检测,包括但不限于诸如节点的网络状况、节点的数据同步状况等中的至少一种,在出现节点无法联网或者节点无法与集群中的其他节点进行数据同步等问题时,即可认为节点存在故障,此时可以控制所处节点进行重启或控制数据库重置,并重新以加入模式启动加入到集群中等操作,以尝试将节点恢复正常。
在本申请实施例中,在节点被启动后,重置程序设备还可以继续对节点的状态进行检测,包括但不限于诸如节点的网络状况、节点的数据同步状况等中的至少一种,在出现节点无法联网或者节点无法与集群中的其他节点进行数据同步等问题时,即可认为节点存在故障,此时可以对节点进行重启或控制数据库重置,并重新以加入模式启动加入到集群中等操作,以尝试将节点恢复正常。
还值得注意的是,本申请实施例中,重置程序也可以配置在集群的各个节点中,例如参见图3所示。此时存在两种控制方案:
其一,是由集群中第一个启动的节点内的重置程序来实现对整个集群内各个节点的数据库启动控制,其余节点中的重置程序即不进行数据库启动控制,此时第一个启动的节点内的重置程序的对整个集群内各个节点的数据库启动控制过程,和重置程序配置在集群各节点外的设备中的情况一致。具体而言,集群内第一个初步启动成功的节点,其内的重置程序会不断检测集群内各节点中应用服务端口是否启用,从而按照上述图1所示的集群启动方法进行操作。
其二,则是由集群中的各个节点分别进行各自节点的独立启动控制。具体而言,此时各节点执行如图4所示的集群启动方法,包括:
S401:在自身初步启动成功时,检测集群内各节点的应用服务端口的状态和各节点的启动状态。
S402:在检测到集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;
应当理解的是,在节点检测到集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,即自身是集群中第一个启动的节点,此时以引导模式启动自身的数据库。
S403:在检测到集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库,以加入集群中。
应当理解的是,与图1所示的集群启动方法类似,在本集群启动方法中,可以在检测到自身是第n(n为大于等于2的正整数)个初步启动成功的节点时,且对应的应用服务端口未启用,且在集群内存在n-1个节点中的应用服务端口启用时,才以加入模式启动自身的数据库。
还应当理解的是,与图1所示的集群启动方法类似,本集群启动方法中节点在确定自身是集群中第一个启动的节点后,可以在以引导模式启动自身的数据库之时或之前可以启动共享锁,从而防止其余节点在启动后,错误的以引导模式进行数据库的启动。需要说明的是,共享锁可以设置在集群各节点外的第三方设备中,集群内的节点在检测到集群内各节点的应用服务端口均未启用时,可以进一步的检测是否存在共享锁,若存在则表明当前已存在正在以引导模式进行数据库启动的节点,此时不能以引导模式进行数据库的启动。
还应当理解的是,与图1所示的集群启动方法类似,在确定自身是集群中第一个启动的节点后,且以引导模式启动自身的数据库成功之后,可以删除共享锁,以防止出现在再次出现集群中的节点全部被关闭,需要重新启动集群时,由于共享锁的存在,导致无法控制节点的数据库以引导模式启动,导致集群启动不成功的情况。
值得注意的是,本申请实施例的方案中,无论是引导模式还是加入模式,都需要先进行数据库重置,进而再进行启动。示例性的,重置程序设备可以通过ssh(Secure Shell,安全壳协议)远程登录到相应的节点上,进而关闭掉mysql(数据库)进程并删除之前的集群信息文件(示例性的,可通过代码rm-f/var/lib/mysql/grastate.dat/var/lib/mysql/gvwstate.dat实现对之前的集群信息文件的删除),再控制节点的数据库以引导模式或是加入模式启动。
综上,本申请实施例中所提供的集群启动方法,在检测到集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,即控制该节点的数据库以引导模式启动。在控制该节点的数据库以引导模式启动之后,在检测到集群内除该节点外的其余节点初步启动成功时,即控制其余节点的数据库以加入模式启动,以加入到集群中。这样,在集群中的所有节点全部被关闭的情况下,再次启动集群时,无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。
实施例二:
本实施例在实施例一的基础上,以一种重置程序配置在在集群各节点外的设备中的情况为例,为本申请做进一步示例说明。
参见图5所示,Galera数据库集群由三个服务器(节点)构成,每个服务器上同时部署数据库、检查集群是否同步组件、端口启用组件。
Galera数据库集群正常时,重置程序设备时刻监测各服务器中应用服务端口是否启用,服务器是否存在故障(如服务器网络是否正常等),在应用服务端口未启用或者服务器存在故障时,重置服务器的数据库,并控制服务器的数据库重新启动,加入集群中,以尝试恢复该服务器。
在Galera数据库集群同时掉电时,Galera数据库集群重启过程如图6至图8所示。对于第一个重新启动的服务器(即图中服务器1),参见图6所示,重置程序设备检测到三个服务器的应用服务端口均未启用,但仅有服务器1的操作系统是启动成功的。此时重置程序设备即启动共享锁,并将服务器1的数据库以引导模式启动(例如通过代码service mysqlbootstrap启动,其中bootstrap即为引导模式对应的程序接口)。在服务器1的数据库以引导模式启动成功后,重置程序设备即可将共享锁删除。
在对于第二个重新启动的服务器(即图中服务器2),参见图7所示,重置程序设备检测到三个服务器中,服务器1的应用服务端口已启用,其余两个服务器的应用服务端口未启用,服务器2的操作系统是启动成功的。此时重置程序设备即将服务器2的数据库以加入模式启动(例如通过代码service mysql start启动,其中start即为加入模式对应的程序接口),加入服务器1所在集群中。应理解,此时不需要共享锁,因为加入集群可以多个节点同时加入。
在对于第三个重新启动的服务器(即图中服务器3),参见图8所示,重置程序设备检测到三个服务器中,服务器1和服务器2的应用服务端口已启用,服务器3的应用服务端口未启用,服务器3的操作系统是启动成功的。此时重置程序设备即将服务器3的数据库以加入模式启动(例如通过代码service mysql start启动,其中start即为加入模式对应的程序接口),加入服务器1所在集群中。
通过上述图6至图8的过程,即实现了对于Galera数据库集群的重新启动。
而对于极端情况,即在检测到第一个启动的服务器的操作系统启动成功,但是数据库还没有启动成功,应用服务端口还没有启用的时候,又检测到了其余服务器的操作系统启动成功的情况。例如参见图9所示,重置程序设备检测到所有服务器的应用服务端口均未启用,但是每一个服务器的操作系统均启动成功(假设首先检测到的是服务器1的操作系统启动成功,然后检测到服务器2的操作系统启动成功,最后检测到服务器2的操作系统启动成功),重置程序设备在检测到的是服务器1的操作系统启动成功时,即启动共享锁,并将服务器1的数据库以引导模式启动,同时将服务器2和服务器3静默。在服务器1的数据库以引导模式启动成功后,将共享锁删除,同时再次检测集群状态,此时服务器1的应用服务端口即启用了,因此,服务器2和服务器3符合存在应用服务端口已启用,且服务器操作系统已启动的条件,将服务器2和服务器3的数据库以加入模式启动,加入服务器1所在的集群中。
通过上述方案,在集群中的所有节点同时掉电的情况下,再次启动集群时,无需人工介入即可实现对集群的自动启动,相较于相关技术而言启动速度更快,且降低了人力成本。此外,本申请的方案中可以将集群的状态转化为应用服务端口的启用状态来体现,实现简单、可靠。
实施例三:
基于同一发明构思,本申请实施例中还提供集群启动装置100和集群启动装置200。请参阅图10和图11所示,图10示出了采用图1所示的方法的集群启动装置,图11示出了采用图4所示的方法的集群启动装置。应理解,装置100和装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置100和装置200包括至少一个能以软件或固件的形式存储于存储器中或固化在装置100、装置200的操作系统中的软件功能模块。具体地:
参见图10所示,装置100包括:检测模块101和控制模块102。其中:
检测模块101用于检测集群内各节点的应用服务端口的状态和各节点的启动状态;
控制模块102用于在检测到集群内各节点中应用服务端口均未启用,且仅有一个节点启动时,控制该节点的数据库以引导模式启动;在检测到集群内除该节点外的其余节点启动时,控制其余节点的数据库以加入模式启动,以加入到集群中。
在本申请实施例的一种可行实施方式中,控制模块102具体用于在检测到集群内除该节点外的其余节点启动,且其余节点的应用服务端口未启用时,控制其余节点的数据库以加入模式启动。
在上述可行实施方式中,控制模块102具体用于在检测到集群内除该节点外的其余节点启动,且其余节点的应用服务端口未启用,且集群内存在节点中的应用端口启用时,控制其余节点的数据库以加入模式启动。
示例性的,其余节点为检测到的第n个初步启动成功的节点;n为大于等于2的正整数;控制模块102具体用于在检测到集群内除该节点外的其余节点启动,且其余节点的应用服务端口未启用,且在所集群内存在n-1节点中的应用端口启用时,控制其余节点的数据库以加入模式启动。
在本申请实施例中,控制模块102还用于在控制该节点的数据库以引导模式启动时,启动共享锁,共享锁被启用时无法控制其余节点的数据库采用引导模式启动。
在本申请实施例的一种可行实施方式中,控制模块102还用于在控制第一个初步启动成功的节点的数据库以引导模式启动成功后,删除共享锁。
参见图11所示,装置200应用于集群内的任一节点中,包括:检测单元201和控制单元202。其中:
检测单元201用于在自身初步启动成功时,检测集群内各节点的应用服务端口的状态和各节点的启动状态;
控制单元202用于在检测到集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;在检测到集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库,以加入集群中。
在本申请实施例中,控制单元202还用于在以引导模式启动自身的数据库时,启动共享锁,共享锁被启用时集群中的其余节点的数据库不能采用引导模式启动。
在本申请实施例中,控制单元202还用于在以引导模式启动自身的数据库成功后,删除共享锁。
需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
实施例四:
本实施例提供了一种电子设备,参见图12所示,其包括处理器1201、存储器1202以及通信总线1203。其中:
通信总线1203用于实现处理器1201和存储器1202之间的连接通信。
处理器1201用于执行存储器1202中存储的一个或多个第一程序,以实现上述实施例一和/或实施例二中第一种集群启动方法;
或,处理器1201用于执行存储器1202中存储的一个或多个第二程序,以实现上述实施例一中第二种集群启动方法。
可以理解,图12所示的结构仅为示意,电子设备还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。例如,电子设备可以为独立于集群节点外的负载均衡器或控制器等设备,以实现上述实施例一和/或实施例二中第一种集群启动方法。或者,电子设备也可以为集群中的节点服务器。此外,可以理解的是电子设备可以具有数据通信接口,应用服务器端口、数据库等部件。
本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(SecureDigital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中业务分配设备所执行的集群启动方法的各步骤,或实现上述实施例一和/或实施例二中处理节点所执行的集群启动方法的各步骤。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种集群启动方法,其特征在于,包括:
在检测到集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,控制该节点的数据库以引导模式启动;
在控制该节点的数据库以引导模式启动之后,在检测到所述集群内除该节点外的其余节点初步启动成功时,控制所述其余节点的数据库以加入模式启动,以加入到所述集群中。
2.如权利要求1所述的集群启动方法,其特征在于,所述在检测到所述集群内除该节点外的其余节点初步启动成功时,控制所述其余节点的数据库以加入模式启动包括:
在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用时,控制所述其余节点的数据库以加入模式启动。
3.如权利要求2所述的集群启动方法,其特征在于,所述在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用时,控制所述其余节点的数据库以加入模式启动包括:
在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用,且集群内存在节点中的应用服务端口启用时,控制所述其余节点的数据库以加入模式启动。
4.如权利要求3所述的集群启动方法,其特征在于,所述其余节点为检测到的第n个初步启动成功的节点;所述n为大于等于2的正整数;
所述在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用,且集群内存在节点中的应用服务端口启用时,控制所述其余节点的数据库以加入模式启动包括:
在检测到所述集群内除该节点外的其余节点初步启动成功,且所述其余节点的应用服务端口未启用,且在所述集群内存在n-1个节点中的应用服务端口启用时,控制所述其余节点的数据库以加入模式启动。
5.如权利要求1-4任一项所述的集群启动方法,其特征在于,在所述控制该节点的数据库以引导模式启动时,所述集群启动方法还包括:
启动共享锁,所述共享锁被启用时控制所述其余节点的数据库不能采用引导模式启动。
6.如权利要求5所述的集群启动方法,其特征在于,所述集群启动方法还包括:
在控制该节点的数据库以引导模式启动成功后,删除所述共享锁。
7.一种集群启动方法,其特征在于,应用于集群内的任一节点中;所述集群启动方法包括:
在自身初步启动成功时,检测所述集群内各节点的应用服务端口的状态和各节点的启动状态;
在检测到所述集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;
在检测到所述集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库,以加入所述集群中。
8.如权利要求7所述的集群启动方法,其特征在于,在所述以引导模式启动自身的数据库时,所述集群启动方法还包括:
启动共享锁,所述共享锁被启用时所述集群中的其余节点的数据库不能采用引导模式启动。
9.如权利要求8所述的集群启动方法,其特征在于,所述集群启动方法还包括:
在以引导模式启动自身的数据库成功后,删除所述共享锁。
10.一种集群启动装置,其特征在于,包括:检测模块和控制模块;
所述检测模块用于检测集群内各节点的应用服务端口的状态和各节点的启动状态;
所述控制模块用于在检测到所述集群内各节点的应用服务端口均未启用,且仅有一个节点初步启动成功时,控制该节点的数据库以引导模式启动;在检测到所述集群内除该节点外的其余节点初步启动成功时,控制所述其余节点的数据库以加入模式启动,以加入到所述集群中。
11.一种集群启动装置,其特征在于,应用于集群内的任一节点中;包括:检测单元和控制单元;
所述检测单元用于在自身初步启动成功时,检测所述集群内各节点的应用服务端口的状态和各节点的启动状态;
所述控制单元用于在检测到所述集群内各节点的应用服务端口均未启用,且仅有自身初步启动成功时,以引导模式启动自身的数据库;在检测到所述集群内存在节点中的应用服务端口启用,且自身已启动但自身的应用服务端口未启用时,以加入模式启动自身的数据库,以加入所述集群中。
12.一种电子设备,其特征在于,包括处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个第一程序,以实现如权利要求1至6任一项所述的集群启动方法;
或,所述处理器用于执行存储器中存储的一个或者多个第二程序,以实现如权利要求7至9任一项所述的集群启动方法。
13.一种可读存储介质,其特征在于,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的集群启动方法,或以实现如权利要求7至9任一项所述的集群启动方法。
CN201911298510.0A 2019-12-16 2019-12-16 集群启动方法、装置、电子设备及可读存储介质 Active CN111090537B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911298510.0A CN111090537B (zh) 2019-12-16 2019-12-16 集群启动方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911298510.0A CN111090537B (zh) 2019-12-16 2019-12-16 集群启动方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111090537A true CN111090537A (zh) 2020-05-01
CN111090537B CN111090537B (zh) 2024-02-06

Family

ID=70396476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911298510.0A Active CN111090537B (zh) 2019-12-16 2019-12-16 集群启动方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111090537B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860668A (zh) * 2021-02-23 2021-05-28 浪潮云信息技术股份公司 一种Store禁用和启用功能的实现方法
CN113660339A (zh) * 2021-08-18 2021-11-16 北京百度网讯科技有限公司 用于去中心化集群的方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110286732A (zh) * 2019-06-27 2019-09-27 无锡华云数据技术服务有限公司 高可用集群掉电自动恢复方法、装置、设备及存储介质
CN110413433A (zh) * 2019-07-04 2019-11-05 苏州浪潮智能科技有限公司 一种Maria DB集群故障后的恢复方法、设备以及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110286732A (zh) * 2019-06-27 2019-09-27 无锡华云数据技术服务有限公司 高可用集群掉电自动恢复方法、装置、设备及存储介质
CN110413433A (zh) * 2019-07-04 2019-11-05 苏州浪潮智能科技有限公司 一种Maria DB集群故障后的恢复方法、设备以及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860668A (zh) * 2021-02-23 2021-05-28 浪潮云信息技术股份公司 一种Store禁用和启用功能的实现方法
CN113660339A (zh) * 2021-08-18 2021-11-16 北京百度网讯科技有限公司 用于去中心化集群的方法和装置
CN113660339B (zh) * 2021-08-18 2023-08-04 北京百度网讯科技有限公司 用于去中心化集群的方法和装置

Also Published As

Publication number Publication date
CN111090537B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US10353779B2 (en) Systems and methods for detection of firmware image corruption and initiation of recovery
US9798632B2 (en) Providing boot data in a cluster network environment
US7076689B2 (en) Use of unique XID range among multiple control processors
US8495618B1 (en) Updating firmware in a high availability enabled computer system
US7284236B2 (en) Mechanism to change firmware in a high availability single processor system
US7194652B2 (en) High availability synchronization architecture
US7188237B2 (en) Reboot manager usable to change firmware in a high availability single processor system
US9960963B2 (en) Dynamic client fail-over during a rolling patch installation based on temporal server conditions
US8966318B1 (en) Method to validate availability of applications within a backup image
EP4083786A1 (en) Cloud operating system management method and apparatus, server, management system, and medium
US7065673B2 (en) Staged startup after failover or reboot
US10305971B2 (en) Self-recoverable multitenant distributed clustered systems
CN111182033B (zh) 一种交换机还原的方法和设备
CN112380062A (zh) 一种基于系统备份点多次快速恢复系统的方法及系统
US11544148B2 (en) Preserving error context during a reboot of a computing device
US20210240831A1 (en) Systems and methods for integrity verification of secondary firmware while minimizing boot time
CN111090537B (zh) 集群启动方法、装置、电子设备及可读存储介质
US7373542B2 (en) Automatic startup of a cluster system after occurrence of a recoverable error
US10824517B2 (en) Backup and recovery of configuration files in management device
CN107623581B (zh) 服务列表生成方法、装置及系统,获取、上报方法及装置
CN113377702A (zh) 两节点集群启动的方法及装置、电子设备和存储介质
CN106909382B (zh) 输出不同类型系统启动信息的方法及装置
CN111158963A (zh) 一种服务器固件冗余启动方法和服务器
CN115827069A (zh) 服务器主板的启动控制方法、系统及装置
US6721882B1 (en) Method and apparatus for warm starting a system where the system includes region(s) of software code incapable of warm starting

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
GR01 Patent grant
GR01 Patent grant