CN102799394B - 一种实现高可用集群的心跳服务的方法及装置 - Google Patents
一种实现高可用集群的心跳服务的方法及装置 Download PDFInfo
- Publication number
- CN102799394B CN102799394B CN201210222114.1A CN201210222114A CN102799394B CN 102799394 B CN102799394 B CN 102799394B CN 201210222114 A CN201210222114 A CN 201210222114A CN 102799394 B CN102799394 B CN 102799394B
- Authority
- CN
- China
- Prior art keywords
- server
- sequence number
- heartbeat message
- message sequence
- disk array
- 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.)
- Active
Links
Classifications
-
- 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/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- 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/0703—Error 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/0706—Error 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/0709—Error 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
-
- 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/0703—Error 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/0706—Error 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/073—Error 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 memory management context, e.g. virtual memory or cache management
-
- 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/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- 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
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 Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种实现高可用集群的心跳服务的方法,包括:服务器将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息,重复所述写入和读取操作。相应地,本发明实施例还提供一种服务器,解决了脑裂的问题,提高了数据保护的安全性。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种实现高可用集群的心跳服务的方法及装置。
背景技术
随着电信及IT大容量关系式数据库应用,海量数据要求系统提供大容量、高速访问及双机可靠性机制,这种系统要求高可用(High Available,HA)集群能够可靠性有效切换数据库业务到备用服务器,一般而言,磁阵双机模式下主备双机会通过心跳服务来传递心跳、倒换执行等控制信息,而平常心跳服务都是承载于IP、时分复用器、光线、串口等磁阵之外硬件之上。
在HA集群中,当心跳服务故障时,本来为一整体、动作协调的HA集群,就分裂成为2个及以上独立的个体。由于相互失去了联系,都以为是其他个体出了故障,后果是每个独立的个体都会争抢共享资源,同时读写共享存储,即同时对磁盘阵列进行读写操作,导致数据损坏,称之为脑裂。数据损坏修复困难并且费时费力,很可能彻底损坏,造成经济损失无法估量。
现有技术中,防止脑裂可以是采用冗余心跳链路的方式,即采用传输控制协议(Transmission Control Protocol,TCP)、用户数据包协议(UserDatagram Protocol,UDP)、串口等通讯方式来传递心跳,减少主备出现脑裂,保证临界资源数据库的安全。以上几种通讯方式可以同时使用,也可以只使用一种,其余当备选的通讯方式。但是,当冗余心跳链路出故障时,不可避免地会出现脑裂。
发明内容
本发明实施例提供一种实现高可用集群的心跳服务的方法及装置,解决了脑裂的问题,提高了数据保护的安全性。
本发明实施例提供一种实现高可用集群的心跳服务的方法,包括:
服务器将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;
所述服务器进行写入操作之后,将所述服务器的写心跳消息序列号加上一个默认的正整数作为所述服务器的新的写心跳消息序列号;
所述服务器读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息;
所述服务器进行读取操作之后,将所述服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述服务器的新的读取对端心跳消息序列号,并在判断出自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等之后,进行下一次写入操作。
本发明实施例还提供一种实现高可用集群的心跳服务的服务器,包括:
写入单元,用于将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;读取单元,用于读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息;
其中,所述服务器还包括累加单元和判断单元;
所述累加单元,用于所述服务器每进行一次写入操作之后,将所述服务器的写心跳消息序列号加上一个默认的正整数作为所述服务器的新的写心跳消息序列号;
所述累加单元还用于所述服务器每进行一次读取操作之后,将所述服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述服务器的新的读取对端心跳消息序列号;
所述判断单元,用于判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等;
所述写入单元还用于在所述判断单元判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等后,进行下一次写入操作。
本实施例提供的对实现高可用集群的心跳服务的方法,主机和备机对用于存储心跳计数信息的磁盘进行读写操作,解决了脑裂的问题,提高了数据保护的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的方法流程图;
图2为本发明实施例二的方法流程图;
图3为本发明实施例三的服务器的装置图;
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一:
图1为本发明对实现高可用集群的心跳服务的一个方法实施例的流程图,如图1所示,该方法可以包括:
S101、服务器将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;
对于一个基于磁盘阵列的方式的高可用集群来说,磁盘阵列方式主要通过磁盘阵列提供切换后,对数据完整性和连续性的保障。用户数据一般会放在磁盘阵列上,当主机宕机后,备机继续从磁盘阵列上取得原有数据。
以双机热备(基于高可用的两台服务器的热备份)为例,将磁盘阵列规划为3个逻辑盘,这里分别命名为V1,V2及DB,其中,V1,V2都用于写入和读取心跳数据,也可以写入和读取服务器的主备用状态,DB则用于记录用户数据。V1、V2及DB的大小可以自定义,可以根据具体需要来进行规划。例如,V1、V2的占用空间不大,可以为其分配较小的逻辑空间,DB包含剩下的逻辑空间。V1、V2的内容组织是一样的,如表1所示。
表1
需要说明的是,主用状态为双机中使用磁阵提供业务的主机;备用态为双机中未使用磁阵提供业务的主机;预备激活态表示的是:备机检测到主机故障时准备激活,保持一段时间,防止对端争抢,对端检测到准备激活就不会争抢资源升主;正在激活态表示的是:预备激活态结束,开始激活资源,挂载磁阵的状态。
服务器可通过物理的输入/输出方式写入磁盘阵列中,也可通过基于操作系统的文件输入/输出方式写入磁盘阵列中。
在服务器写入至磁盘阵列后,对应的一台或多台服务器读取该磁盘阵列中服务器的心跳计数信息。
由表1可知,当服务器写入成功时,该服务器的写心跳序列号需要累加一次,可定义一个默认的正整数,每写入一次,写心跳序列号加上该正整数,作为新的写心跳消息序列号。而服务器每一次读取磁盘阵列的对应的一台或多台服务器的心跳计数信息后,服务器的读取对端心跳消息序列号也要加上该正整数作为新的读取对端心跳消息序列号。同理,若对应的一台或多台服务器每进行一次写入操作后,对应的一台或多台服务器的写心跳序列号加上该正整数,作为新的写心跳消息序列号,每进行一次读取操作后,对应的一台或多台服务器的读取对端心跳消息序列号也要加上该正整数作为新的读取对端心跳消息序列号。
S102、读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息,重复所述写入和读取操作。
以双机热备为例,若该服务器是主机,则对应的服务器是备机,若该服务器是备机,则对应的服务器是主机。以该服务器是主机,对应服务器是备机为例,当备机写入心跳计数信息至磁盘阵列后,主机读取备机写入的心跳计数信息。读取的心跳计数信息与主机写入的心跳计数信息类型一致。为了方便说明,将主机的写心跳消息序列号定义为WSeq1,主机的读取对端心跳消息序列号定义为RSeq1,备机,的写心跳消息序列号定义为WSeq2,备机的读取对端心跳消息序列号定义为RSeq2。整个流程可用t1—t4时刻为例,具体如下:
初始化时,定义WSeq1=RSeq2=0X0001,WSeq2=RSeq1=0X0001;t1时刻,主机写入心跳计数信息至V1,其中的心跳计数信息包括主机的写心跳消息序列号WSeq1、主机读取对端心跳消息序列号RSeq1、主备状态信息、心跳消息和心跳消息长度,具体地,其中的WSeq1=0X0001,RSeq1=0X0001,t1过程结束,WSeq1累加1得到WSeq1=0X0002。进入t2时刻(t2>t1),备机读取V1中的心跳计数信息,读取到的心跳计数信息具体为RSeq1=WSeq1=0X0001,t2过程结束RSeq2累加1得到RSeq2=0X0002。进入t3时刻(t3>t2),备机写入心跳计数信息至V2,备机写入的心跳计数信息包括备机的写心跳消息序列号WSeq2、备机读取对端心跳消息序列号RSeq2、主备状态信息、心跳消息和心跳消息长度,具体地,其中的WSeq2=0X0001,RSeq2=0X0002,t3过程结束,WSeq2累加1得到WSeq2=0X0002。进入t4时刻(t4>t3),主机读取V2中的心跳计数信息,读取到的RSeq2=0X0002,WSeq2=0X0001,t4过程结束,RSeq1累加1得到0X0002。
需要说明的是,在主机每次读取磁盘阵列上的备机的心跳计数信息之后,主机需要判断自身存储的WSeq1与从磁盘阵列中读取到的RSeq2是否相等,如果相等,则进行下一次的写入操作,如果不相等,则判断判断磁盘阵列异常。其原因可能是第三方对磁盘阵列进行误操作,或者是磁盘阵列本身的故障导致。对于此种情况,主机将WSeq1赋值为RSeq2,重新写入至V1,其流程不变。同理,对于备机来说,在备机每次读取磁盘阵列上的心跳计数信息之后,备机需要判断自身存储的WSeq2与从磁盘阵列中读取到的RSeq1是否相等,相等则进行下一次的写入操作,不相等则将WSeq2赋值为RSeq1,重新写入至V2。这种方式可提供一种基于磁盘阵列的心跳保护机制,对于磁盘阵列异常处理有很强的自愈能力。
对于心跳链路故障时,其主机或者备机与磁盘阵列的链路是故障的,即使脑裂情况出现,故障主机或者备机也无法访问磁阵,因此,也就不会同时对磁盘阵列进行读写,有效保护数据安全。
本实施例提供的对实现高可用集群的心跳服务的方法,主机和备机对用于存储心跳计数信息的磁盘进行读写操作,解决了脑裂的问题,提高了数据保护的安全性。
本发明实施例二:
如图2所示,在本实施例中,对实现高可用集群的心跳服务的方法流程如下:
S201、将磁盘阵列规划为N个逻辑盘;
对于一个基于磁盘阵列的方式的高可用集群来说,磁盘阵列方式主要通过磁盘阵列提供切换后,对数据完整性和连续性的保障。用户数据一般会放在磁盘阵列上,当主机宕机后,备机继续从磁盘阵列上取得原有数据。
对于双机热备(基于高可用的两台服务器的热备份)来说,某一项业务需要两台服务器来执行,一台处于激活状态,即主服务器,简称主机,另外一台处理待命状态,及备服务器,简称备机。
以双机热备为例,将磁盘阵列规划为3个逻辑盘,这里分别命名为V1,V2及DB,其中,V1,V2都用于写入和读取心跳数据,也可以写入和读取服务器的主备用状态,DB则用于记录用户数据。V1、V2及DB的大小可以自定义,可以根据具体需要来进行规划。例如,V1、V2的占用空间不大,可以为其分配较小的逻辑空间,DB包含剩下的逻辑空间。V1、V2的内容组织是一样的,如实施例1的表1所示。
需要说明的是,对于主机个数大于2的高可用多集群来说,磁盘阵列规划的逻辑盘个数为N,N为大于3的正整数。
S202、主机写入心跳计数信息至V1;
主机通过物理的输入/输出读写方式将心跳计数信息写入至V1,也可以通过基于操作系统的文件输入/输出方式将心跳计数信息写入至V1。其中,心跳计数信息包括写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,写心跳消息序列号每写入成功一次之后累加N,N为默认的正整数,为了方便理解,本实施例中,写心跳消息序列号每写入成功一次之后累加1。读取对端心跳消息序列号是主机读取V2上的备机写入的写心跳消息序列号,主备状态信息即自身是主用还是备用,对于某一业务来说,主备用的状态可以相互转化,若主用服务器宕机,则备用服务器可升为主用服务器,原来的主用服务器则降为备用服务器。
S203、备机读取V1的心跳计数信息;
备机读取V1的心跳计数信息,将备机的读取对端心跳消息序列号赋值为读取到的主机的写心跳消息序列号之后,每读取成功一次,备机的读取对端心跳消息序列号加1。
为了方便说明,将主机的写心跳消息序列号定义为WSeq1,主机的读取对端心跳消息序列号定义为RSeq1,备机,的写心跳消息序列号定义为WSeq2,备机的读取对端心跳消息序列号定义为RSeq2。则主机写入心跳计数信息至V1之后,下一次待写入V1的WSeq1为本次写入的WSeq1+1;备机读取V1的心跳计数信息之后,下一次待读取的RSeq2为本次读取的RSeq2+1。例如,初始化时,定义WSeq1=RSeq2=0X0001,WSeq2=RSeq1=0X0001;t1时刻,主机写入心跳计数信息至V1,其中的心跳计数信息包括主机的写心跳消息序列号WSeq1、主机读取对端心跳消息序列号RSeq1、主备状态信息、心跳消息和心跳消息长度,具体地,其中的WSeq1=0X0001,RSeq1=0X0001,t1过程结束,WSeq1累加1得到WSeq1=0X0002。进入t2时刻(t2>t1),备机读取V1中的心跳计数信息,读取到的心跳计数信息具体为RSeq1=WSeq1=0X0001,t2过程结束RSeq2累加1得到RSeq2=0X0002。
S204、备机写入心跳计数信息至V2;
备机写入心跳计数信息至V2,具体处理同S202。接上例,进入t3时刻(t3>t2),备机写入心跳计数信息至V2,备机写入的心跳计数信息包括备机的写心跳消息序列号WSeq2、备机读取对端心跳消息序列号RSeq2、主备状态信息、心跳消息和心跳消息长度,具体地,其中的WSeq2=0X0001,RSeq2=0X0002,t3过程结束,WSeq2累加1得到WSeq2=0X0002。
S205、主机读取V2的心跳计数信息;
V2的心跳计数消息与V1的心跳计数消息类型一致。接上例,进入t4时刻(t4>t3),主机读取V2中的心跳计数信息,读取到的RSeq2=0X0002,WSeq2=0X0001,t4过程结束,RSeq1累加1得到0X0002。
若V1,V2的原有的缓冲区已写满,则可另申请新的缓冲区,或者,从第一次写入缓冲区的位置开始到V1,V2的缓冲区的末尾依次覆盖原来写入的信息。
S206、判断主机的写心跳消息序列号与备机的读取对端心跳消息序列号的关系;
主机和备机都会在写入和读取之前对自身保存的写心跳消息序列号和从磁盘阵列中读取的读取对端心跳消息序列号进行判断。由t1—t4时刻,RSeq1、RSeq2、WSeq1和WSeq2的关系不难得出,对于主机来说WSeq1等于RSeq2,或者等于RSeq2+1时,属于正常状态,同理,对于备机来说,WSeq2等于RSeq1,或者等于RSeq1+1时,属于正常状态。具体地,主机在写入之前判断WSeq1是否等于RSeq2,在读取之前判断WSeq1是否等于RSeq2+1;备机在写入之前判断WSeq2是否等于RSeq1,在读取之前判断WSeq2是否等于RSeq1+1。故在主机判断出WSeq1等于RSeq2,或者等于RSeq2+1时,服务器重复写入与读取操作。同理,在备机判断出WSeq2等于RSeq1,或者等于RSeq1+1时,服务器重复写入与读取操作。接上例,t5时刻,主机第二次将心跳计数信息写入至V1,此时RSeq1=WSeq1=0X0002,t5时刻结束,WSeq1累加1得到WSeq1=0X0003。t6时刻,备机第二次读取V1的心跳计数信息,此时读取的WSeq1=RSeq1=0X0002。
那么,当主机判断出WSeq1不等于RSeq2+1,且不等于RSeq2,则判断磁盘阵列异常。其原因可能是第三方对磁盘阵列进行误操作,或者是磁盘阵列本身的故障导致。对于此种情况,主机将WSeq1赋值为RSeq2,重新写入至V1,其流程不变。同理,当备机判断出WSeq2不等于RSeq1+1,且不等于RSeq1,则判断磁盘阵列异常。备机将WSeq2赋值为RSeq1,重新写入至V2,其流程不变。这种方式可提供一种基于磁盘阵列的心跳保护机制,对于磁盘阵列异常处理有很强的自愈能力。
对于心跳链路故障时,其主机或者备机与磁盘阵列的链路是故障的,即使脑裂情况出现,故障主机或者备机也无法访问磁阵,因此,也就不会同时对磁盘阵列进行读写,有效保护数据安全。
对于多集群的情况,可将磁盘阵列分为多个阵列(如分配为V1,V2,V3,…及用于存储用户数据的DB),其流程同双机热备的流程。
本实施例提供的对实现高可用集群的心跳服务的方法,主机和备机对用于存储心跳计数信息的磁盘进行读写操作,解决了脑裂的问题,提高了数据保护的安全性。
本发明实施例三:
本发明实施例提供一种实现高可用集群的心跳服务的服务器,如图3所示,包括:
写入单元301,用于将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;
对于一个基于磁盘阵列的方式的高可用集群来说,磁盘阵列方式主要通过磁盘阵列提供切换后,对数据完整性和连续性的保障。用户数据一般会放在磁盘阵列上,当主机宕机后,备机继续从磁盘阵列上取得原有数据。
以双机热备(基于高可用的两台服务器的热备份)为例,将磁盘阵列规划为3个逻辑盘,这里分别命名为V1,V2及DB,其中,V1,V2都用于写入和读取心跳数据,也可以写入和读取服务器的主备用状态,DB则用于记录用户数据。V1、V2及DB的大小可以自定义,可以根据具体需要来进行规划。例如,V1、V2的占用空间不大,可以为其分配较小的逻辑空间,DB包含剩下的逻辑空间。V1、V2的内容组织是一样的,如实施例的表1所示。
写入单元301可通过物理的输入/输出方式写入磁盘阵列中,也可通过基于操作系统的文件输入/输出方式写入磁盘阵列中。
当写入单元301写入成功时,累加单元将写心跳序列号累加一次,可定义一个默认的正整数,每写入一次,写心跳序列号加上该正整数,作为新的写心跳消息序列号。而服务器的读取单元每一次读取磁盘阵列的对应的一台或多台服务器的心跳计数信息后,服务器的累加单元也要将服务器的读取对端心跳消息序列号加上该正整数作为新的读取对端心跳消息序列号。同理,若对应的一台或多台服务器每进行一次写入操作后,对应的一台或多台服务器的写心跳序列号加上该正整数,作为新的写心跳消息序列号,每进行一次读取操作后,对应的一台或多台服务器的读取对端心跳消息序列号也要加上该正整数作为新的读取对端心跳消息序列号。
读取单元302,用于读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息;
所述写入单元301和所述读取单元302,还分别用于重复所述写入和读取操作。
以双机热备为例,若该服务器是主机,则对应的服务器是备机,若该服务器是备机,则对应的服务器是主机。
以该服务器是主机,对应服务器是备机为例,当备机写入心跳计数信息至磁盘阵列后,主机的读取单元302读取备机写入的心跳计数信息。读取的心跳计数信息与主机写入的心跳计数信息类型一致。
为了方便说明,将主机的写心跳消息序列号定义为WSeq1,主机的读取对端心跳消息序列号定义为RSeq1,备机的写心跳消息序列号定义为WSeq2,备机的读取对端心跳消息序列号定义为RSeq2。整个流程可用t1—t4时刻为例,具体如下:
初始化时,定义WSeq1=RSeq2=0X0001,WSeq2=RSeq1=0X0001;t1时刻,主机的写入单元301写入心跳计数信息至V1,其中的心跳计数信息包括主机的写心跳消息序列号WSeq1、主机读取对端心跳消息序列号RSeq1、主备状态信息、心跳消息和心跳消息长度,具体地,其中的WSeq1=0X0001,RSeq1=0X0001,t1过程结束,主机的累加单元将WSeq1累加1得到WSeq1=0X0002。进入t2时刻(t2>t1),备机的读取单元读取V1中的心跳计数信息,读取到的心跳计数信息具体为RSeq1=WSeq1=0X0001,t2过程结束备机的累加单元将RSeq2累加1得到RSeq2=0X0002。进入t3时刻(t3>t2),备机的写入单元写入心跳计数信息至V2,备机的写入单元写入的心跳计数信息包括备机的写心跳消息序列号WSeq2、备机读取对端心跳消息序列号RSeq2、主备状态信息、心跳消息和心跳消息长度,具体地,其中的WSeq2=0X0001,RSeq2=0X0002,t3过程结束,备机的累加单元将WSeq2累加1得到WSeq2=0X0002。进入t4时刻(t4>t3),主机的读取单元302读取V2中的心跳计数信息,读取到的RSeq2=0X0002,WSeq2=0X0001,t4过程结束,主机的累加单元将RSeq1累加1得到0X0002。
需要说明的是,在主机的读取单元302每次读取磁盘阵列上的备机的心跳计数信息之后,主机的判断单元需要判断自身存储的WSeq1与从磁盘阵列中读取到的RSeq2是否相等,如果相等,则写入单元301进行下一次的写入操作,如果不相等,则判断单元判断磁盘阵列异常。其原因可能是第三方对磁盘阵列进行误操作,或者是磁盘阵列本身的故障导致。对于此种情况,主机的写入单元将WSeq1赋值为RSeq2,重新写入至V1,其流程不变。同理,对于备机来说,在备机的读取单元每次读取磁盘阵列上的心跳计数信息之后,备机的判断单元需要判断自身存储的WSeq2与从磁盘阵列中读取到的RSeq1是否相等,相等则进行下一次的写入操作,不相等则备机的写入单元将WSeq2赋值为RSeq1,重新写入至V2。这种方式可提供一种基于磁盘阵列的心跳保护机制,对于磁盘阵列异常处理有很强的自愈能力。
主机和备机判断单元进行判断的另外一种方式可以是:主机和备机的判断单元都会在写入单元写入和读取单元读取之前对自身保存的写心跳消息序列号和从磁盘阵列中读取的读取对端心跳消息序列号进行判断。由t1—t4时刻,RSeq1、RSeq2、WSeq1和WSeq2的关系不难得出,对于主机来说WSeq1等于RSeq2,或者等于RSeq2+1时,属于正常状态,同理,对于备机来说,WSeq2等于RSeq1,或者等于RSeq1+1时,属于正常状态。具体地,主机在写入单元写入之前通过判断单元判断WSeq1是否等于RSeq2,在读取单元读取之前通过判断单元判断WSeq1是否等于RSeq2+1;备机在写入单元写入之前通过判断单元判断WSeq2是否等于RSeq1,在读取单元读取之前通过判断单元判断WSeq2是否等于RSeq1+1。故在主机的判断单元判断出WSeq1等于RSeq2,或者等于RSeq2+1时,主机的写入单元进行下一次写入操作,读取单元进行下一次读取操作。同理,在备机的判断单元判断出WSeq2等于RSeq1,或者等于RSeq1+1时,备机的写入单元进行下一次写入操作,读取单元进行下一次读取操作。那么,当主机判断单元判断出WSeq1不等于RSeq2+1,且不等于RSeq2,则判断磁盘阵列异常。其原因可能是第三方对磁盘阵列进行误操作,或者是磁盘阵列本身的故障导致。对于此种情况,主机将写入单元将WSeq1赋值为RSeq2,重新写入至V1,其流程不变。同理,当备机判断单元判断出WSeq2不等于RSeq1+1,且不等于RSeq1,则判断磁盘阵列异常。备机写入单元将WSeq2赋值为RSeq1,重新写入至V2,其流程不变。
对于心跳链路故障时,其主机或者备机与磁盘阵列的链路是故障的,即使脑裂情况出现,故障主机或者备机也无法访问磁阵,因此,也就不会同时对磁盘阵列进行读写,有效保护数据安全。
本实施例提供的对实现高可用集群的心跳服务的服务器,服务器的写入单元对用于存储心跳计数信息的磁盘进行写操作,服务器的读取单元对用于存储心跳计数信息的磁盘进行读操作,解决了脑裂的问题,提高了数据保护的安全性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的单元或流程并不一定是实施本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (17)
1.一种实现高可用集群的心跳服务的方法,其特征在于,包括:
服务器将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;
所述服务器进行写入操作之后,将所述服务器的写心跳消息序列号加上一个默认的正整数作为所述服务器的新的写心跳消息序列号;
所述服务器读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息;
所述服务器进行读取操作之后,将所述服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述服务器的新的读取对端心跳消息序列号,并在判断出自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等之后,进行下一次写入操作。
2.根据权利要求1所述的方法,其特征在于,
所述对应的一台或多台服务器每进行一次写入操作之后,将所述对应的一台或多台服务器的写心跳消息序列号加上所述默认的正整数作为对应的一台或多台服务器的新的写心跳消息序列号;
所述对应的一台或多台服务器每进行一次读取操作之后,将所述对应的一台或多台服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述对应的一台或多台服务器的新的读取对端心跳消息序列号,并在判断出自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号相等之后,进行下一次写入操作。
3.根据权利要求1或2所述的方法,其特征在于,当所述服务器判断出所述服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号后,所述方法进一步包括:
所述服务器判断所述磁盘阵列状态异常,将所述服务器自身存储的写心跳消息序列号赋值为在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号;
将所述赋值之后的写心跳消息序列号写入所述磁盘阵列中。
4.根据权利要求2所述的方法,其特征在于,当所述对应的一台或多台服务器判断出所述对应的一台或多台服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号后,所述方法进一步包括:
所述对应的一台或多台服务器判断所述磁盘阵列状态异常,将所述对应的一台或多台服务器自身存储的写心跳消息序列号赋值为在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号;
将所述赋值之后的写心跳消息序列号写入所述磁盘阵列中。
5.根据权利要求1所述的方法,其特征在于,
所述服务器每进行一次写入操作之前,判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等;
所述服务器每进行一次写入操作之后,将所述服务器的写心跳消息序列号加上一个默认的正整数作为所述服务器的新的写心跳消息序列号;
所述服务器每进行一次读取操作之前,判断自身储存的写心跳消息序列号等于在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号与所述默认的正整数之和;
所述服务器每进行一次读取操作之后,将所述服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述服务器的新的读取对端心跳消息序列号。
6.根据权利要求5所述的方法,其特征在于,
所述对应的一台或多台服务器每进行一次写入操作之前,判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号相等;
所述对应的一台或多台服务器每进行一次写入操作之后,将所述对应的一台或多台服务器的写心跳消息序列号加上所述默认的正整数作为对应的一台或多台服务器的新的写心跳消息序列号;
所述对应的一台或多台服务器每进行一次读取操作之前,判断自身储存的写心跳消息序列号等于在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号与所述默认的正整数之和;
所述对应的一台或多台服务器每进行一次读取操作之后,将所述对应的一台或多台服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述对应的一台或多台服务器的新的读取对端心跳消息序列号。
7.根据权利要求1所述的方法,其特征在于,
所述对应的一台或多台服务器每进行一次写入操作之前,判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号相等;
所述对应的一台或多台服务器每进行一次写入操作之后,将所述对应的一台或多台服务器的写心跳消息序列号加上一个默认的正整数作为对应的一台或多台服务器的新的写心跳消息序列号;
所述对应的一台或多台服务器每进行一次读取操作之前,判断自身储存的写心跳消息序列号等于在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号与所述默认的正整数之和;
所述对应的一台或多台服务器每进行一次读取操作之后,将所述对应的一台或多台服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述对应的一台或多台服务器的新的读取对端心跳消息序列号。
8.根据权利要求5或6所述的方法,其特征在于,当所述服务器判断出所述服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号,且所述服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号与所述默认的正整数的和之后,所述方法进一步包括:
所述服务器判断所述磁盘阵列状态异常,将所述服务器自身存储的写心跳消息序列号赋值为在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号;
将所述赋值之后的写心跳消息序列号写入所述磁盘阵列中。
9.根据权利要求5或6所述的方法,其特征在于,当所述对应的一台或多台服务器判断出所述对应的一台或多台服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号,且所述对应的一台或多台服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号与所述默认的正整数的和之后,所述方法进一步包括:
所述对应的一台或多台服务器判断所述磁盘阵列状态异常,将所述对应的一台或多台服务器自身存储的写心跳消息序列号赋值为在所述磁盘阵列中读取的所述服务器的读取对端心跳消息序列号;
将所述赋值之后的写心跳消息序列号写入所述磁盘阵列中。
10.根据权利要求1,2,4,5,6,7中任一项所述的方法,其特征在于,所述写入和读取操作,包括:
所述服务器通过物理的输入/输出方式对所述磁盘阵列进行所述写入和读取操作。
11.根据权利要求1,2,4,5,6,7中任一项所述的方法,其特征在于,所述写入和读取操作,包括:
所述服务器通过基于操作系统的文件输入/输出方式对所述磁盘阵列进行所述写入和读取操作。
12.一种实现高可用集群的心跳服务的服务器,其特征在于,包括:
写入单元,用于将心跳计数信息写入磁盘阵列中,所述心跳计数信息包括所述服务器的写心跳消息序列号、读取对端心跳消息序列号、主备状态信息、心跳消息和心跳消息长度,以便对应的一台或多台服务器读取所述磁盘阵列中的所述服务器的心跳计数信息;
读取单元,用于读取所述对应的一台或多台服务器写入至所述磁盘阵列中的所述对应的一台或多台服务器的心跳计数信息;
其中,所述服务器还包括累加单元和判断单元;
所述累加单元,用于所述服务器每进行一次写入操作之后,将所述服务器的写心跳消息序列号加上一个默认的正整数作为所述服务器的新的写心跳消息序列号;
所述累加单元还用于所述服务器每进行一次读取操作之后,将所述服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述服务器的新的读取对端心跳消息序列号;
所述判断单元,用于判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等;
所述写入单元还用于在所述判断单元判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等后,进行下一次写入操作。
13.根据权利要求12所述的服务器,其特征在于,当所述服务器判断出所述服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号后,所述服务器的写入单元进行写入操作,进一步包括:
所述判断单元判断所述磁盘阵列状态异常,将所述服务器自身存储的写心跳消息序列号赋值为在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号,将所述赋值之后的写心跳消息序列号写入所述磁盘阵列中。
14.根据权利要求12所述的服务器,其特征在于,所述判断单元,还用于在所述写入单元每进行一次写入操作之前,判断自身储存的写心跳消息序列号与在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号相等;
所述累加单元,还用于在所述写入单元每进行一次写入操作之后,将所述服务器的写心跳消息序列号加上一个默认的正整数作为所述服务器的新的写心跳消息序列号;
所述判断单元还用于在所述读取单元每进行一次读取操作之前,判断自身储存的写心跳消息序列号等于在所述磁盘阵列中读取的所述对应一台或多台服务器的读取对端心跳消息序列号与所述默认的正整数之和;
所述累加单元还用于在所述读取单元每进行一次读取操作之后,将所述服务器的读取对端心跳消息序列号加上所述默认的正整数作为所述服务器的新的读取对端心跳消息序列号。
15.根据权利要求14所述的服务器,其特征在于,当所述服务器的判断单元判断出所述服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号,且所述服务器自身存储的写心跳消息序列号不等于在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号与所述默认的正整数的和之后,
所述判断单元还用于判断所述磁盘阵列状态异常;
所述写入单元还用于将所述服务器自身存储的写心跳消息序列号赋值为在所述磁盘阵列中读取的所述对应的一台或多台服务器的读取对端心跳消息序列号,将所述赋值之后的写心跳消息序列号写入所述磁盘阵列中。
16.根据权利要求12-15中任一项所述的服务器,其特征在于,
所述写入单元和所述读取单元通过物理的输入/输出方式对所述磁盘阵列进行所述写入和读取操作。
17.根据权利要求12—15中任一项所述的服务器,其特征在于,
所述写入单元和所述读取单元通过基于操作系统的文件输入/输出方式对所述磁盘阵列进行所述写入和读取操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222114.1A CN102799394B (zh) | 2012-06-29 | 2012-06-29 | 一种实现高可用集群的心跳服务的方法及装置 |
PCT/CN2013/070155 WO2014000430A1 (zh) | 2012-06-29 | 2013-01-07 | 一种实现高可用集群的心跳服务的方法及装置 |
US14/584,342 US9658912B2 (en) | 2012-06-29 | 2014-12-29 | Method and apparatus for implementing heartbeat service of high availability cluster |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222114.1A CN102799394B (zh) | 2012-06-29 | 2012-06-29 | 一种实现高可用集群的心跳服务的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799394A CN102799394A (zh) | 2012-11-28 |
CN102799394B true CN102799394B (zh) | 2015-02-25 |
Family
ID=47198511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210222114.1A Active CN102799394B (zh) | 2012-06-29 | 2012-06-29 | 一种实现高可用集群的心跳服务的方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9658912B2 (zh) |
CN (1) | CN102799394B (zh) |
WO (1) | WO2014000430A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5687173B2 (ja) * | 2011-11-15 | 2015-03-18 | 株式会社日立製作所 | 通信システム及び方法、ハートビート代行サーバ |
CN102799394B (zh) * | 2012-06-29 | 2015-02-25 | 华为技术有限公司 | 一种实现高可用集群的心跳服务的方法及装置 |
CN103051470B (zh) * | 2012-11-29 | 2015-10-07 | 中标软件有限公司 | 一种集群及其磁盘心跳的控制方法 |
CN103209095B (zh) * | 2013-03-13 | 2017-05-17 | 广东中兴新支点技术有限公司 | 一种基于磁盘服务锁的裂脑预防的方法和装置 |
CN103684941B (zh) * | 2013-11-23 | 2018-01-16 | 广东中兴新支点技术有限公司 | 基于仲裁服务器的集群裂脑预防方法和装置 |
JP6183931B2 (ja) * | 2013-12-25 | 2017-08-23 | Necソリューションイノベータ株式会社 | クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 |
US9450852B1 (en) * | 2014-01-03 | 2016-09-20 | Juniper Networks, Inc. | Systems and methods for preventing split-brain scenarios in high-availability clusters |
CN103905247B (zh) * | 2014-03-10 | 2017-02-01 | 北京交通大学 | 一种基于多客户裁决的双机备份方法及系统 |
TWI560558B (en) * | 2015-06-08 | 2016-12-01 | Synology Inc | Method for managing a storage system, and associated apparatus |
JP6409812B2 (ja) * | 2016-04-01 | 2018-10-24 | 横河電機株式会社 | 冗長化装置、冗長化システム、及び冗長化方法 |
JP6662185B2 (ja) * | 2016-04-28 | 2020-03-11 | 横河電機株式会社 | 処理装置、代替処理装置、中継装置、処理システム及び処理方法 |
CN106452696A (zh) * | 2016-10-28 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种服务器集群的控制系统 |
CN108243031B (zh) * | 2016-12-23 | 2021-05-25 | 大唐移动通信设备有限公司 | 一种双机热备的实现方法及装置 |
US11115317B1 (en) | 2018-01-05 | 2021-09-07 | Open Invention Network Llc | EMS assisted split-brain resolution in virtual network function components |
CN108897645B (zh) * | 2018-06-12 | 2021-07-27 | 郑州云海信息技术有限公司 | 一种基于备用心跳磁盘的数据库集群容灾方法和系统 |
US11558454B2 (en) | 2018-07-31 | 2023-01-17 | Hewlett Packard Enterprise Development Lp | Group leader role queries |
CN109308239B (zh) * | 2018-09-26 | 2022-02-18 | 北京百度网讯科技有限公司 | 用于输出信息的方法和装置 |
CN109286525B (zh) * | 2018-09-28 | 2022-02-25 | 昆明能讯科技有限责任公司 | 一种基于mqtt通讯和主备之间心跳的双机备份方法 |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
CN114844809B (zh) * | 2022-04-18 | 2024-05-07 | 北京凝思软件股份有限公司 | 基于网络心跳和内核磁盘心跳的多因子仲裁方法、装置 |
CN115599316B (zh) * | 2022-12-15 | 2023-03-21 | 南京鹏云网络科技有限公司 | 分布式数据处理方法、装置、设备、介质和计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101234018A (zh) * | 2008-02-26 | 2008-08-06 | 中兴通讯股份有限公司 | 心跳检测方法、系统和中央处理单元 |
CN101465769A (zh) * | 2009-01-16 | 2009-06-24 | 华中科技大学 | 双控制器磁盘阵列的动态故障检测系统 |
CN102014416A (zh) * | 2010-12-03 | 2011-04-13 | 中兴通讯股份有限公司 | 一种对连接进行双向检测的方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421478B1 (en) * | 2002-03-07 | 2008-09-02 | Cisco Technology, Inc. | Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration |
US7587465B1 (en) * | 2002-04-22 | 2009-09-08 | Cisco Technology, Inc. | Method and apparatus for configuring nodes as masters or slaves |
US6721907B2 (en) * | 2002-06-12 | 2004-04-13 | Zambeel, Inc. | System and method for monitoring the state and operability of components in distributed computing systems |
US7420952B2 (en) * | 2002-10-28 | 2008-09-02 | Mesh Dynamics, Inc. | High performance wireless networks using distributed control |
JP4415610B2 (ja) * | 2003-08-26 | 2010-02-17 | 株式会社日立製作所 | 系切替方法、レプリカ作成方法、及びディスク装置 |
US9026575B2 (en) * | 2006-09-28 | 2015-05-05 | Alcatel Lucent | Technique for automatically configuring a communication network element |
US8098572B2 (en) * | 2009-02-03 | 2012-01-17 | Google Inc. | Interface monitoring for link aggregation |
CN102036349B (zh) * | 2009-09-29 | 2015-03-25 | 联想(北京)有限公司 | 维持终端和网络服务器连接的方法、终端及网络服务器 |
CN101916217B (zh) * | 2010-08-04 | 2014-08-13 | 中兴通讯股份有限公司 | 多控制器切换的方法、控制装置及系统 |
CN102799394B (zh) * | 2012-06-29 | 2015-02-25 | 华为技术有限公司 | 一种实现高可用集群的心跳服务的方法及装置 |
-
2012
- 2012-06-29 CN CN201210222114.1A patent/CN102799394B/zh active Active
-
2013
- 2013-01-07 WO PCT/CN2013/070155 patent/WO2014000430A1/zh active Application Filing
-
2014
- 2014-12-29 US US14/584,342 patent/US9658912B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101234018A (zh) * | 2008-02-26 | 2008-08-06 | 中兴通讯股份有限公司 | 心跳检测方法、系统和中央处理单元 |
CN101465769A (zh) * | 2009-01-16 | 2009-06-24 | 华中科技大学 | 双控制器磁盘阵列的动态故障检测系统 |
CN102014416A (zh) * | 2010-12-03 | 2011-04-13 | 中兴通讯股份有限公司 | 一种对连接进行双向检测的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150113340A1 (en) | 2015-04-23 |
US9658912B2 (en) | 2017-05-23 |
WO2014000430A1 (zh) | 2014-01-03 |
CN102799394A (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799394B (zh) | 一种实现高可用集群的心跳服务的方法及装置 | |
CN104932953B (zh) | 一种数据分发方法、数据存储方法、相关装置以及系统 | |
CN103136074B (zh) | 多个磁盘阵列系统的数据储存方法及数据储存系统 | |
US11157356B2 (en) | System and method for supporting data protection across FPGA SSDs | |
CN106933843B (zh) | 数据库心跳检测方法以及装置 | |
CN110018783B (zh) | 一种数据存储方法、装置及系统 | |
CN102567227B (zh) | 共享缓存设备的双控制器存储系统和方法 | |
CN101567211A (zh) | 一种提高磁盘可用性的方法和磁盘阵列控制器 | |
CN103942112A (zh) | 磁盘容错方法、装置及系统 | |
US20170123926A1 (en) | Ensuring crash-safe forward progress of a system configuration update | |
CN106919473A (zh) | 一种数据灾备系统及业务处理方法 | |
US12050778B2 (en) | Data restoration method and related device | |
WO2020233001A1 (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN103019623A (zh) | 存储盘处理方法及装置 | |
CN105487609A (zh) | 一种服务器 | |
CN110837444B (zh) | 一种存储器故障处理方法及装置 | |
CN103678025A (zh) | 一种磁盘阵列中的磁盘故障处理方法 | |
CN108595287A (zh) | 基于纠删码的数据截断方法及装置 | |
CN113590049B (zh) | 一种存储卷跨节点克隆的方法、装置、设备及可读介质 | |
CN102541693A (zh) | 数据的多副本存储管理方法和系统 | |
CN117111860B (zh) | 磁盘阵列降级时的io处理方法、装置及电子设备 | |
CN108345515A (zh) | 存储方法和装置及其存储系统 | |
CN113051428B (zh) | 一种摄像机前端存储备份的方法及装置 | |
CN105159846A (zh) | 一种支持虚拟化磁盘双控切换的方法和存储系统 | |
EP3316114A1 (en) | Data reading and writing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |