CN111651291A - 一种共享存储集群防脑裂的方法、***、计算机存储介质 - Google Patents

一种共享存储集群防脑裂的方法、***、计算机存储介质 Download PDF

Info

Publication number
CN111651291A
CN111651291A CN202010326284.9A CN202010326284A CN111651291A CN 111651291 A CN111651291 A CN 111651291A CN 202010326284 A CN202010326284 A CN 202010326284A CN 111651291 A CN111651291 A CN 111651291A
Authority
CN
China
Prior art keywords
node
fault
server node
main server
shared storage
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
CN202010326284.9A
Other languages
English (en)
Other versions
CN111651291B (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.)
State Grid Corp of China SGCC
State Grid Henan Electric Power Co Ltd
Electric Power Research Institute of State Grid Henan Electric Power Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Henan Electric Power Co Ltd
Electric Power Research Institute of State Grid Henan Electric Power 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 State Grid Corp of China SGCC, State Grid Henan Electric Power Co Ltd, Electric Power Research Institute of State Grid Henan Electric Power Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN202010326284.9A priority Critical patent/CN111651291B/zh
Publication of CN111651291A publication Critical patent/CN111651291A/zh
Application granted granted Critical
Publication of CN111651291B publication Critical patent/CN111651291B/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/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/0751Error or fault detection not based on redundancy
    • 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/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请涉及本发明提供了一种共享存储集群防脑裂的方法、***、计算机存储介质,本发明在共享存储集群节点中部署心跳检测模块,在共享存储设备中部署防脑裂模块,心跳检测模块用于检测出共享存储集群中的心跳故障服务器节点,然后通过防脑裂模块判断当前主服务器节点是否故障,如果当前主服务器节点故障,及时切换至备用服务器节点作为新的主服务器节点。

Description

一种共享存储集群防脑裂的方法、***、计算机存储介质
技术领域
本申请属于共享存储集群技术领域,尤其是涉及一种共享存储集群防脑裂的方法、***、计算机存储介质。
背景技术
共享存储集群是指服务器集群共享存储设备,共享存储设备同时连接多台服务器,用户业务数据存储在共享存储设备中,由主服务器对外提供服务并访问共享存储设备进行数据读写,一旦主服务器发生故障(例如:操作***宕机、服务器意外掉电、网络故障等),***自动将业务应用切换至备用服务器并接管共享存储设备的访问权继续对外服务,保证业务应用不间断运行。
由于服务器之间通过心跳线相互连接构成整个服务器集群,如果服务器间的心跳发生故障,即服务器在指定时间内无法互相检测到对方心跳,本来互为一个整体、动作协调的集群,就会发生脑裂即集群***成为若干个独立的个体,且各自启动故障转移功能,取得资源及服务的所有权,即由于相互失去了联系,都以为是对方发生故障,会本能地争抢共享存储、争起应用服务,就会发生严重后果;或共享存储被瓜分、服务都起不来;或者服务都起来,但同时读写共享存储,导致数据损坏。
发明内容
本发明要解决的技术问题是:为解决现有技术中因共享存储集群因发生脑裂导致数据损坏的问题。
针对上述技术问题,本发明提供了一种共享存储集群防脑裂的方法、***、计算机存储介质,通过在共享存储集群的服务器节点中部署心跳检测模块,在共享存储设备(磁盘)中部署防脑裂模块,心跳检测模块和防脑裂模块协调工作,构成共享存储集群的防脑裂***。
首先,对共享存储集群中的服务器节点初始化,对服务器节点在共享存储集群中的位置进行排序,当发生心跳网络故障后,进行预判检测,找出故障的服务器节点,提前采取措施,避免脑裂情况的发生,保证集群***数据一致且不间断地运行,进一步提高了集群的可用性和可靠性。
本发明解决其技术问题所采用的技术方案是:
本发明第一方面提供一种共享存储集群防脑裂的方法,包括:
对共享存储集群中的服务器节点进行初始化排序;
当检测到多个资源访问请求时,判定共享存储设备即将发生脑裂时,触发脑裂检测机制,向当前主服务器节点发送心跳检测指令,判定当前主服务器节点是否故障;
若当前主服务器节点故障,则进行主备服务器的切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
本发明第二方面提供一种共享存储集群防脑裂的***,包括:设置于共享存储设备中的防脑裂模块,所述防脑裂模块包括:
初始化单元,用于对共享存储集群中的服务器节点进行初始化排序;
脑裂检测单元,用于当检测到共享存储设备即将发生脑裂时,触发脑裂检测机制,向当前主服务器节点发送心跳检测指令,判定当前主服务器节点是否故障;
控制单元,用于若当前主服务器节点故障,则进行主备服务器的切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
本发明第三方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,用于实现本发明第一方面所述的方法。
本发明的有益效果是:本发明在共享存储集群节点中部署心跳检测模块,在共享存储设备中部署防脑裂模块,心跳检测模块用于检测出共享存储集群中的心跳故障服务器节点,然后通过防脑裂模块判断当前主服务器节点是否故障,如果当前主服务器节点故障,及时切换至备用服务器节点作为新的主服务器节点。本发明可在共享存储集群发生脑裂前,确定出心跳故障发生的服务器节点,并对故障服务器节点采取有效措施,保证共享存储集群中运行的主服务器节点为正常的节点,避免共享存储集群脑裂现象的发生,提高共享存储集群运行的可靠性以及可用性。
附图说明
下面结合附图和实施例对本申请的技术方案进一步说明。
图1是本申请实施例的防脑裂模块的工作流程图;
图2是本申请实施例的心跳检测模块工作流程图;
图3是本申请实施例的防脑裂***结构原理图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本申请的技术方案。
实施例1
本实施例提供一种共享存储集群防脑裂的方法,如图1所示,包括:
S1:对共享存储集群中的服务器节点进行初始化排序;
S2:当检测到多个资源访问请求时,判定共享存储设备即将发生脑裂时,触发脑裂检测机制,向当前主服务器节点发送心跳检测指令,判定当前主服务器节点是否故障;
S3:若当前主服务器节点故障,则进行主备服务器的切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
本实施例的共享存储设备可以为共享磁盘,在共享磁盘中划分出一定的存储空间用于设置防脑裂模块。
当共享集群中的心跳网络发生故障,集群中的服务器节点在指定时间内无法互相检测到对方心跳,以为是对方发生故障,会启动故障转移功能,取得资源及服务的所有权,即会出现争抢访问共享磁盘,取得磁盘读写权限。
当共享磁盘内的防脑裂模块检测到有多个访问磁盘请求时,判定共享磁盘即将发生脑裂,触发脑裂检测机制。
可选的,本实施例S1中,对共享存储集群中的服务器节点进行初始化排序的步骤为:
S11:首先,对指定的主服务器节点进行排序,把所述指定的主服务器节点的序号排在共享存储集群的第一位;
S12:其次,把各备用服务器节点依次顺序排序;
S13:把每个服务器节点的IP地址与排序的序号一一对应,生成节点排序表。
本实施例以共享存储集群中有5个服务器节点为例,即:主服务器节点为节点A,备用服务器节点为节点B、节点C、节点D、节点E。
初始化排序的结果为:主服务器节点A的序号为1,备用服务器节点B的序号为2,节点C的序号为3,节点D的序号为4,节点E的序号为5。
本实施例把每个服务器节点的IP地址与排序的序号一一对应,生成节点排序表,并存储,作为主备服务器节点切换的依据。
可选的是,本实施例S2中,发送心跳检测指令之后,还包括生成故障检测信息的步骤:
S21:发送心跳检测指令后,如果预定时间内没有收到主服务器节点反馈的心跳检测指令响应信息,则判定主服务器节点故障,同时生成包含主服务器节点IP的故障检测信息;
S22:如果预定时间内收到主服务器节点反馈的心跳检测指令响应信息,则判定当前主服务器节点正常,同时将主服务器节点统计的故障备用服务器节点组成的故障节点表生成故障检测信息,所述故障节点表中包含各故障服务器节点的IP。
为防止脑裂的发生,共享磁盘中的防脑裂模块在检测到即将发生脑裂时,会向当前的主服务器节点发送心跳检测指令,判断主服务器节点是否发生故障。
每个服务器节点中均设置了心跳检测模块,所述心跳检测模块中包含有ARP(Address Resolution Protocol,地址解析协议)表,本服务器节点中的所述ARP表包含了共享存储集群中除本服务器节点外的所有服务器节点的心跳IP地址。ARP是将IP地址解析为以太网MAC地址(或称物理地址)的协议。
当前主服务器节点收到心跳检测指令后,通过查询ARP表中服务器节点的心跳IP地址,向共享存储集群中的所有备用服务器节点发送ARP心跳请求报文,并接收响应报文。
如果在预定时间内,当前主服务器节点没有接收到共享存储集群中备用服务器节点的任何响应报文,则说明当前主服务器节点本身的心跳网络故障,已经无法接收备用服务器节点的心跳信息,也就不会反馈心跳检测指令响应信息。
如果主服务器节点能接收到备用服务器节点的响应报文,则表明主服务器节点是正常运行状态,通过检测接收到的响应报文,与ARP表中的IP地址进行匹配,筛选出未发出响应报文的备用服务器节点,即故障的备用服务器节点,并对故障的备用服务器节点进行统计,生成故障节点表,反馈到防脑裂模块。
如果共享磁盘中的防脑裂模块预定时间内没有接收到主服务器节点反馈的心跳检测指令响应信息,则判定主服务器故障,无法响应检测指令,并生成包含主服务器节点IP的故障检测信息。
如果共享磁盘中的防脑裂模块预定时间内,收到主服务器节点反馈的心跳检测指令响应信息,判定主服务器处于正常运行状态,将当前主服务器节点反馈的故障节点表作为故障检测信息。
通过获取故障检测信息,将故障服务器节点的IP地址在所述节点排序表中进行匹配,如果匹配的IP为当前主服务器的IP,则表明当前主服务器节点故障,需要进行主备切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
可选的是,本实施例的防脑裂方法还包括更新节点排序表的步骤:
S4:将所述故障检测信息中故障服务器节点的IP地址在所述节点排序表中进行匹配;
S5:如果匹配的结果为主服务器节点的IP,则表明故障节点为当前主服务器节点,将当前故障的主服务器节点排序至共享存储集群的最后,并更新所述节点排序表中当前故障的主服务器节点排序的序号;
S6:如果匹配的结果为备用服务器节点的IP,则表明当前主服务器运行正常,故障节点为备用服务器节点,将故障的备用服务器节点依次排在共享存储集群的最后,并更新所述节点排序表中故障的备用服务器节点排序的序号。
本实施例中,根据S4,如果匹配的结果为当前主服务器节点的IP,表明当前主服务器节点故障,在节点排序表中对当前主服务器节点的序号进行调整,具体调整过程如下:
把故障的当前主服务器节点排至整个共享存储集群的最后一位,如果共享存储集群有n个节点,节点排序是1、2、3、4…m,其中m≥n,如果当前主服务器节点故障,那么将故障的当前主服务器节点排序至m+1的位置,其他节点的排序不变,更新后各服务器节点的排序为2、3、4…m、m+1。
本实施例中,以S1中初始排序的5个服务器节点为例,排序在最后的一个服务器节点E的序号为5,如果当前主服务器节点A故障,那么在节点排序表中,当前主服务器节点A的排序则更新为6,最后各服务器节点的排序为:节点B排序的序号为2、节点C排序的序号为3、节点D排序的序号为4、节点E排序的序号为5、节点A排序的序号为6。
更新节点排序表后,向共享磁盘的防脑裂模块发送主备切换信息,启动主备服务器节点切换进程。在主备服务器节点切换前,首先要查询节点排序表,选取排序最优的服务器节点,在当前的节点排序表中,节点B的排序为最优,所以选择节点B为新的主服务器节点切换对象。选定好新的主服务器节点后,启动主备切换,把原来的主服务器节点A占用的磁盘资源全部释放,允许选定的新主服务器节点B作为唯一的服务器节点访问磁盘资源,完成主备服务器节点切换。
本实施例中,根据S4,如果匹配的结果为备用服务器节点的IP,表明主服务器节点运行正常,有备用服务器节点发生心跳故障。更新节点排序表中备用服务器节点排序的序号。调整的方法如下:
把故障的备用服务器节点排至整个共享存储集群的最后几位,即如果共享存储集群有n个节点,节点排序是1、2、3、4…m,其中m≥n,备用故障节点的数为d,则对故障的备用服务器节点原来的序号进行重置,更新节点排序表。d个故障的备用服务器节点在节点排序表中更新后的排序序号依次为:m+1、m+2,m+3,…,m+d,其他服务器节点的排序不变。
本实施例中,以S1中初始排序的5个服务器节点为例,如果检测到服务器节点B和节点C为故障的服务器节点,根据本实施例的排序方法,需要对服务器节点B和节点C在节点排序表中的排序序号进行重置,重置后节点B的序号为6,节点C的序号为7。
最后更新后的节点排序表中5个服务器节点的排序为:节点A排序的序号为1,节点B排序的序号为6、节点C排序的序号为7、节点D排序的序号为4、节点E排序为5,当前主服务器节点的排序依然为最先。
由于当前主服务器节点没有发生故障,就不需要发送主备切换信息,整个共享存储集群保持当前主服务器节点断续正常运行。
本发明实施例可在共享存储集群发生脑裂前,确定出心跳故障发生的服务器节点,并对故障服务器节点采取有效措施,保证共享存储集群中运行的主服务器节点为正常的节点,避免共享存储集群脑裂现象的发生,提高共享存储集群运行的可靠性以及可用性。
实施例2:
本实施例提供一种共享存储集群防脑裂的***,包括:设置于共享存储设备中的防脑裂模块,所述防脑裂模块包括:
初始化单元,用于对共享存储集群中的服务器节点进行初始化排序;
脑裂检测单元,用于当检测到共享存储设备即将发生脑裂时,触发脑裂检测机制,向当前主服务器节点发送心跳检测指令,判定当前主服务器节点是否故障;
切换控制单元,用于若当前主服务器节点故障,则进行主备服务器的切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
进一步地,还包括设置于各服务器节点中的心跳检测模块,所述心跳检测模块包括:
ARP表,用于存储共享存储集群中除本服务器节点外,其他所有服务器节点的IP地址;
心跳检测单元,用于在收到所述心跳检测指令后,通过查询所述ARP表,向共享存储集群中所有备用服务器节点发送ARP心跳请求报文,并接收响应报文;
故障节点检测单元,用于通过检测所述响应报文,筛选出未发出响应报文的备用服务器节点,即判定为故障的备用服务器节点,同时对所述故障的备用服务器节点进行统计,并生成故障节点表反馈至所述脑裂检测单元。
本实施例中,心跳检测单元通过查询ARP表的节点IP地址,向共享存储集群的备用服务器节点发送ARP心跳请求报文,并接收响应报文。如果在一定的时间内,当前主服务器节点没有接收到集群中备用服务器节点的任何响应报文,则说明当前主服务器节点本身的心跳网络故障,已经无法接收备用节点的心跳信息,故障节点检测单元判定当前主服务器节点故障,并把当前主服务器节点故障的信息反馈至磁盘防脑裂模块的脑裂检测单元。如果能接收到响应报文,则表明主服务器节点是正常运行状态,故障节点检测进程通过检测接收到的响应报文,与ARP表中进行匹配,筛选出未发出响应报文的备用服务器节点,即故障节点,并对故障节点进行统计生成故障节点表,并反馈到磁盘防脑裂模块的脑裂检测单元。
可选的是,本实施例中,初始化单元用于对集群的每个节点进行初始化排序,首先对指定的主服务器节点进行排序,把主服务器节点的序号排在共享存储集群的第一位,其他各备用服务器节点依次顺序排序,每个服务器节点的IP地址与节点的排序序号一一对应,生成节点排序表。
可选的是,本实施例中所述脑裂检测单元还用于生成故障检测信息,具体为:
发送心跳检测指令后,如果预定时间内没有收到主服务器节点反馈的心跳检测指令响应信息,则判定主服务器节点故障,同时生成包含主服务器节点IP的故障检测信息;
如果预定时间内收到主服务器节点反馈的心跳检测指令响应信息,则判定当前主服务器节点正常,同时将主服务器节点统计的故障备用服务器节点组成的故障节点表生成故障检测信息,所述故障节点表中包含各故障服务器节点的IP。
本实施例的脑裂检测单元用于检测共享磁盘是否发生脑裂,当磁盘收到多个资源访问请求时,则触发脑裂检测机制,判定磁盘即将发生脑裂。为防止脑裂的发生,启动脑裂检测进程,向当前的主服务器节点发送心跳检测指令,激活当前主服务器节点中的心跳检测模块,并接收当前主服务器节点反馈的故障检测信息,如果在预定时间内没有收到当前主服务器节点的反馈信息,则判定当前主服务器节点故障。
脑裂检测单元的具体实施,请参阅实施例1。
可选的是,所述防脑裂模块还包括节点信息控制单元,用于:
将所述故障检测信息中故障服务器节点的IP地址在所述节点排序表中进行匹配;
如果匹配的结果为主服务器节点的IP,则表明故障节点为当前主服务器节点,将当前故障的主服务器节点排序至共享存储集群的最后,并更新所述节点排序表中当前故障的主服务器节点排序的序号;
如果匹配的结果为备用服务器节点的IP,则表明当前主服务器运行正常,故障节点为备用服务器节点,将故障的备用服务器节点依次排在共享存储集群的最后,并更新所述节点排序表中故障的备用服务器节点排序的序号。
节点信息控制单元,用于存储共享存储集群中的节点排序表,并及时更新故障节点的排序序号。通过读取脑裂检测单元的故障检测信息,判定集群主备服务器节点的排序是否需要改变。
如果收到的故障检测信息表明主服务器节点正常运行,备用服务器节点故障,则根据故障的备用服务器节点IP地址,与存储的节点排序表对照,找出故障备用服务器节点的排序序号,并进行重置,即把故障服务器节点的序号排至集群的最后一位。如果有多个备用服务器节点故障,则依次排至最后几位,其他节点的序号保持不变,并更新所述节点排序表。
如果收到的故障检测信息表明主服务器节点故障,则根据当前主服务器节点的IP地址,与之前存储的节点排序表对照,重置当前主服务器节点序号,把故障的当前主服务器节点序号排至集群的最后一位,其他节点的序号保持不变,并更新节点排序表,随后启动控制单元的主备服务器切换进程。
关于排序的具体内容,请参阅实施例1。
本实施例的切换控制单元用于控制共享磁盘接受当前正常运行的主服务器节点的访问,排除故障服务器节点的访问。
脑裂检测单元的故障检测信息会传送至节点信息控制单元,故障检测信息能够表明主服务器节点是否故障,如果接收的是主服务器节点故障的信息,会启动磁盘控制单元的主备服务器切换进程,及时切换至备用服务器节点;如果接收的是主服务器节点无异常信息,则切换控制单元会继续保持让主服务器节点访问磁盘,不启动主备服务器切换进程。
通过切换控制单元的主备切换机制,保证只有正常运行的主服务器节点能够访问磁盘资源,有效避免磁盘脑裂情况的发生。
切换控制单元的具体实施,请参阅实施例1。
本实施例的防脑裂模块以及心跳检测模块的具体实现均与实施例相同,在此不再赘述。
本实施例在集群服务器节点中部署心跳检测模块,在共享磁盘中部署防脑裂模块,心跳检测模块主要是检测出集群中的心跳故障节点,然后通过防脑裂模块判断主服务器节点是否故障,如果主服务器节点故障,及时切换至备用服务器节点。通过防脑裂***,可在集群发生脑裂前,确定出心跳故障发生的节点,并对故障节点采取有效措施,保证集群中运行的主服务器节点为正常的节点,避免集群脑裂现象的发生,提高集群运行的可靠性以及可用性。
实施例3:
本实施例提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,用于实现本发明实施例1所述的方法。
以上述依据本申请的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项申请技术思想的范围内,进行多样的变更以及修改。本项申请的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (10)

1.一种共享存储集群防脑裂的方法,其特征在于,包括:
对共享存储集群中的服务器节点进行初始化排序;
当检测到多个资源访问请求时,判定共享存储设备即将发生脑裂时,触发脑裂检测机制,向当前主服务器节点发送心跳检测指令,判定当前主服务器节点是否故障;
若当前主服务器节点故障,则进行主备服务器的切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
2.根据权利要求1所述的共享存储集群防脑裂的方法,其特征在于,对共享存储集群中的服务器节点进行初始化排序的步骤包括:
对指定的主服务器节点进行排序,把所述指定的主服务器节点的序号排在共享存储集群的第一位;
把各备用服务器节点依次顺序排序;
把每个服务器节点的IP地址与排序的序号一一对应,生成节点排序表。
3.根据权利要求2所述的共享存储集群防脑裂的方法,其特征在于,还包括生成故障检测信息的步骤:
发送心跳检测指令后,如果预定时间内没有收到主服务器节点反馈的心跳检测指令响应信息,则判定当前主服务器节点故障,同时生成包含主服务器节点IP的故障检测信息;
如果预定时间内收到主服务器节点反馈的心跳检测指令响应信息,则判定当前主服务器节点正常,同时将主服务器节点统计的故障备用服务器节点组成的故障节点表生成故障检测信息,所述故障节点表中包含各故障服务器节点的IP。
4.根据权利要求3所述的共享存储集群防脑裂的方法,其特征在于,还包括更新节点排序表的步骤:
获取所述故障检测信息,将所述故障检测信息中故障服务器节点的IP地址在所述节点排序表中进行匹配;
如果匹配的结果为主服务器节点的IP,则表明故障节点为当前主服务器节点,将当前故障的主服务器节点排序至共享存储集群的最后,并更新所述节点排序表中当前故障的主服务器节点排序的序号;
如果匹配的结果为备用服务器节点的IP,则表明当前主服务器运行正常,故障节点为备用服务器节点,将故障的备用服务器节点依次排在共享存储集群的最后,并更新所述节点排序表中故障的备用服务器节点排序的序号。
5.一种共享存储集群防脑裂的***,其特征在于,包括:设置于共享存储设备中的防脑裂模块,所述防脑裂模块包括:
初始化单元,用于对共享存储集群中的服务器节点进行初始化排序;
脑裂检测单元,用于当检测到共享存储设备即将发生脑裂时,触发脑裂检测机制,向当前主服务器节点发送心跳检测指令,判定当前主服务器节点是否故障;
切换控制单元,用于若当前主服务器节点故障,则进行主备服务器的切换,将排序最优的备用服务器节点切换为新的主服务器节点,使所述新的主服务器节点作为唯一的服务器节点与共享存储设备进行资源交互访问。
6.根据权利要求5所述的共享存储集群防脑裂的***,其特征在于,还包括设置于各服务器节点中的心跳检测模块,所述心跳检测模块包括:
ARP表,用于存储共享存储集群中除本服务器节点外,其他所有服务器节点的IP地址;
心跳检测单元,用于在收到所述心跳检测指令后,通过查询所述ARP表,向共享存储集群中所有备用服务器节点发送ARP心跳请求报文,并接收响应报文;
故障节点检测单元,用于通过检测所述响应报文,筛选出未发出响应报文的备用服务器节点,即判定为故障的备用服务器节点,同时对所述故障的备用服务器节点进行统计,生成故障节点表,并反馈至所述脑裂检测单元。
7.根据权利要求6所述的共享存储集群防脑裂的***,其特征在于,所述脑裂检测单元还用于:
发送心跳检测指令后,如果预定时间内没有收到主服务器节点反馈的心跳检测指令响应信息,则判定主服务器节点故障,同时生成包含主服务器节点IP的故障检测信息;
如果预定时间内收到主服务器节点反馈的心跳检测指令响应信息,则判定当前主服务器节点正常,同时将主服务器节点统计的故障备用服务器节点组成的故障节点表生成故障检测信息,所述故障节点表中包含各故障服务器节点的IP。
8.根据权利要求7所述的共享存储集群防脑裂的***,其特征在于,所述初始化单元还用于:
将各服务器节点的IP地址与对应的排序序号一一对应,生成节点排序表。
9.根据权利要求8所述的共享存储集群防脑裂的***,其特征在于,所述防脑裂模块还包括节点信息控制单元,用于:
获取所述故障检测信息,将所述故障检测信息中故障服务器节点的IP地址在所述节点排序表中进行匹配;
如果匹配的结果为主服务器节点的IP,则表明故障节点为当前主服务器节点,将当前故障的主服务器节点排序至共享存储集群的最后,并更新所述节点排序表中当前故障的主服务器节点排序的序号;
如果匹配的结果为备用服务器节点的IP,则表明当前主服务器运行正常,故障节点为备用服务器节点,将故障的备用服务器节点依次排在共享存储集群的最后,并更新所述节点排序表中故障的备用服务器节点排序的序号。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,用于实现权利要求1-4任一项所述的方法。
CN202010326284.9A 2020-04-23 2020-04-23 一种共享存储集群防脑裂的方法、***、计算机存储介质 Active CN111651291B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010326284.9A CN111651291B (zh) 2020-04-23 2020-04-23 一种共享存储集群防脑裂的方法、***、计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010326284.9A CN111651291B (zh) 2020-04-23 2020-04-23 一种共享存储集群防脑裂的方法、***、计算机存储介质

Publications (2)

Publication Number Publication Date
CN111651291A true CN111651291A (zh) 2020-09-11
CN111651291B CN111651291B (zh) 2023-02-03

Family

ID=72346465

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010326284.9A Active CN111651291B (zh) 2020-04-23 2020-04-23 一种共享存储集群防脑裂的方法、***、计算机存储介质

Country Status (1)

Country Link
CN (1) CN111651291B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367198A (zh) * 2020-10-30 2021-02-12 新华三大数据技术有限公司 主备节点切换方法及装置
CN113760607A (zh) * 2021-08-31 2021-12-07 云尖信息技术有限公司 一种双bmc主备和数据同步方法
CN114546705A (zh) * 2022-02-28 2022-05-27 北京百度网讯科技有限公司 操作响应方法、操作响应装置、电子设备以及存储介质
CN115002001A (zh) * 2022-02-25 2022-09-02 苏州浪潮智能科技有限公司 一种检测集群网络亚健康的方法、装置、设备及介质
CN115102924A (zh) * 2022-06-25 2022-09-23 平安银行股份有限公司 集群地址切换方法、装置、计算机设备及存储介质
CN115269248A (zh) * 2022-07-28 2022-11-01 江苏安超云软件有限公司 双节点集群下防止脑裂方法和装置、电子设备和存储介质
WO2022252631A1 (zh) * 2021-05-31 2022-12-08 平安科技(深圳)有限公司 分布式应用方法、装置、计算机设备、存储介质
CN115811461A (zh) * 2023-02-08 2023-03-17 湖南国科亿存信息科技有限公司 San共享存储集群脑裂预防处理方法、装置及电子设备
CN116743550A (zh) * 2023-08-11 2023-09-12 之江实验室 一种分布式存储集群的故障存储节点的处理方法

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268153A1 (en) * 2002-10-07 2005-12-01 Fujitsu Siemens Computers, Inc. Method of solving a split-brain condition
US20060206611A1 (en) * 2005-03-09 2006-09-14 Yutaka Nakamura Method and system for managing programs with network address
CN101291243A (zh) * 2007-04-16 2008-10-22 广东省新支点技术服务有限公司 高可用集群***的裂脑预防方法
CN101309167A (zh) * 2008-06-27 2008-11-19 华中科技大学 基于集群备份的容灾***及方法
JP2008305353A (ja) * 2007-06-11 2008-12-18 Hitachi Ltd クラスタシステム及びフェイルオーバ方法
CN101582787A (zh) * 2008-05-16 2009-11-18 中兴通讯股份有限公司 一种双机备份***及备份方法
CN102231681A (zh) * 2011-06-27 2011-11-02 中国建设银行股份有限公司 一种高可用集群计算机***及其故障处理方法
CN102868560A (zh) * 2012-09-28 2013-01-09 南京恩瑞特实业有限公司 一种服务器热备实现***及方法
CN103279386A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种计算机作业调度***高可用的方法
CN105934929A (zh) * 2014-12-31 2016-09-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及***
CN107147528A (zh) * 2017-05-23 2017-09-08 郑州云海信息技术有限公司 一种存储网关智能防脑裂***及方法
CN107454155A (zh) * 2017-07-25 2017-12-08 北京三快在线科技有限公司 一种基于负载均衡集群的故障处理方法、装置以及***
CN108366086A (zh) * 2017-12-25 2018-08-03 聚好看科技股份有限公司 一种控制业务处理的方法及装置
CN109271280A (zh) * 2018-08-30 2019-01-25 重庆富民银行股份有限公司 存储故障快速切换处理方法
US20190052520A1 (en) * 2017-08-14 2019-02-14 Nicira, Inc. Cooperative active-standby failover between network systems
US20200057686A1 (en) * 2018-08-14 2020-02-20 Industrial Technology Research Institute Compute node, failure detection method thereof and cloud data processing system

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268153A1 (en) * 2002-10-07 2005-12-01 Fujitsu Siemens Computers, Inc. Method of solving a split-brain condition
US20060206611A1 (en) * 2005-03-09 2006-09-14 Yutaka Nakamura Method and system for managing programs with network address
CN101291243A (zh) * 2007-04-16 2008-10-22 广东省新支点技术服务有限公司 高可用集群***的裂脑预防方法
JP2008305353A (ja) * 2007-06-11 2008-12-18 Hitachi Ltd クラスタシステム及びフェイルオーバ方法
CN101582787A (zh) * 2008-05-16 2009-11-18 中兴通讯股份有限公司 一种双机备份***及备份方法
CN101309167A (zh) * 2008-06-27 2008-11-19 华中科技大学 基于集群备份的容灾***及方法
CN102231681A (zh) * 2011-06-27 2011-11-02 中国建设银行股份有限公司 一种高可用集群计算机***及其故障处理方法
CN102868560A (zh) * 2012-09-28 2013-01-09 南京恩瑞特实业有限公司 一种服务器热备实现***及方法
CN103279386A (zh) * 2013-06-09 2013-09-04 浪潮电子信息产业股份有限公司 一种计算机作业调度***高可用的方法
CN105934929A (zh) * 2014-12-31 2016-09-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及***
CN107147528A (zh) * 2017-05-23 2017-09-08 郑州云海信息技术有限公司 一种存储网关智能防脑裂***及方法
CN107454155A (zh) * 2017-07-25 2017-12-08 北京三快在线科技有限公司 一种基于负载均衡集群的故障处理方法、装置以及***
US20190052520A1 (en) * 2017-08-14 2019-02-14 Nicira, Inc. Cooperative active-standby failover between network systems
CN108366086A (zh) * 2017-12-25 2018-08-03 聚好看科技股份有限公司 一种控制业务处理的方法及装置
US20200057686A1 (en) * 2018-08-14 2020-02-20 Industrial Technology Research Institute Compute node, failure detection method thereof and cloud data processing system
CN109271280A (zh) * 2018-08-30 2019-01-25 重庆富民银行股份有限公司 存储故障快速切换处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨晓芬等: "实时数据库***双机热备机制设计与实现", 《计算机工程与应用》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367198B (zh) * 2020-10-30 2022-07-01 新华三大数据技术有限公司 主备节点切换方法及装置
CN112367198A (zh) * 2020-10-30 2021-02-12 新华三大数据技术有限公司 主备节点切换方法及装置
WO2022252631A1 (zh) * 2021-05-31 2022-12-08 平安科技(深圳)有限公司 分布式应用方法、装置、计算机设备、存储介质
CN113760607A (zh) * 2021-08-31 2021-12-07 云尖信息技术有限公司 一种双bmc主备和数据同步方法
CN115002001B (zh) * 2022-02-25 2023-08-04 苏州浪潮智能科技有限公司 一种检测集群网络亚健康的方法、装置、设备及介质
CN115002001A (zh) * 2022-02-25 2022-09-02 苏州浪潮智能科技有限公司 一种检测集群网络亚健康的方法、装置、设备及介质
CN114546705B (zh) * 2022-02-28 2023-02-07 北京百度网讯科技有限公司 操作响应方法、操作响应装置、电子设备以及存储介质
CN114546705A (zh) * 2022-02-28 2022-05-27 北京百度网讯科技有限公司 操作响应方法、操作响应装置、电子设备以及存储介质
CN115102924A (zh) * 2022-06-25 2022-09-23 平安银行股份有限公司 集群地址切换方法、装置、计算机设备及存储介质
CN115102924B (zh) * 2022-06-25 2023-09-19 平安银行股份有限公司 集群地址切换方法、装置、计算机设备及存储介质
CN115269248A (zh) * 2022-07-28 2022-11-01 江苏安超云软件有限公司 双节点集群下防止脑裂方法和装置、电子设备和存储介质
CN115269248B (zh) * 2022-07-28 2023-08-08 安超云软件有限公司 双节点集群下防止脑裂方法和装置、电子设备和存储介质
CN115811461A (zh) * 2023-02-08 2023-03-17 湖南国科亿存信息科技有限公司 San共享存储集群脑裂预防处理方法、装置及电子设备
CN115811461B (zh) * 2023-02-08 2023-04-28 湖南国科亿存信息科技有限公司 San共享存储集群脑裂预防处理方法、装置及电子设备
CN116743550A (zh) * 2023-08-11 2023-09-12 之江实验室 一种分布式存储集群的故障存储节点的处理方法
CN116743550B (zh) * 2023-08-11 2023-12-29 之江实验室 一种分布式存储集群的故障存储节点的处理方法

Also Published As

Publication number Publication date
CN111651291B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
CN111651291B (zh) 一种共享存储集群防脑裂的方法、***、计算机存储介质
EP3811597B1 (en) Zone redundant computing services using multiple local services in distributed computing systems
US8984330B2 (en) Fault-tolerant replication architecture
US8788455B2 (en) Disaster recovery
CN106911728A (zh) 分布式***中主节点的选取方法和装置
CN110535692B (zh) 故障处理方法、装置、计算机设备、存储介质及存储***
KR101504882B1 (ko) 하드웨어 장애 완화
CN110807064B (zh) Rac分布式数据库集群***中的数据恢复装置
US9952947B2 (en) Method and system for processing fault of lock server in distributed system
CN102355369A (zh) 虚拟化集群***及其处理方法和设备
US7660234B2 (en) Fault-tolerant medium access control (MAC) address assignment in network elements
US8230086B2 (en) Hidden group membership in clustered computer system
CN102187627B (zh) 负载分担的方法及装置、宽带接入服务器***
CN108509296B (zh) 一种处理设备故障的方法和***
CN107395406B (zh) 在线***的在线状态数据处理方法、装置及***
JP2010044553A (ja) データ処理方法、クラスタシステム、及びデータ処理プログラム
US20160011929A1 (en) Methods for facilitating high availability storage services in virtualized cloud environments and devices thereof
CN112492011A (zh) 分布式存储***故障切换方法、***、终端及存储介质
US9632890B2 (en) Facilitating N-way high availability storage services
US8438261B2 (en) Failover scheme with service-based segregation
US11210187B1 (en) Computer cluster with adaptive quorum rules
CN115145782A (zh) 一种服务器切换方法,MooseFS***及存储介质
US11947431B1 (en) Replication data facility failure detection and failover automation
CN114301763B (zh) 分布式集群故障的处理方法及***、电子设备及存储介质
CN117938720A (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
GR01 Patent grant
GR01 Patent grant