CN105681074A - 一种增强双机集群可靠、可用性的方法及装置 - Google Patents

一种增强双机集群可靠、可用性的方法及装置 Download PDF

Info

Publication number
CN105681074A
CN105681074A CN201511008960.3A CN201511008960A CN105681074A CN 105681074 A CN105681074 A CN 105681074A CN 201511008960 A CN201511008960 A CN 201511008960A CN 105681074 A CN105681074 A CN 105681074A
Authority
CN
China
Prior art keywords
heart beating
message
superblock
dish
cluster
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
CN201511008960.3A
Other languages
English (en)
Other versions
CN105681074B (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.)
BEIJING TOYOU FEIJI ELECTRONICS Co Ltd
Original Assignee
BEIJING TOYOU FEIJI ELECTRONICS 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 BEIJING TOYOU FEIJI ELECTRONICS Co Ltd filed Critical BEIJING TOYOU FEIJI ELECTRONICS Co Ltd
Priority to CN201511008960.3A priority Critical patent/CN105681074B/zh
Publication of CN105681074A publication Critical patent/CN105681074A/zh
Application granted granted Critical
Publication of CN105681074B publication Critical patent/CN105681074B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种增强双机集群可靠、可用性的方法,适用于大数据集群存储,属于集群存储技术领域。本发明针对传统双机集群中,心跳信息的传递只通过网络或者串口实现,当串口和网络故障后,集群之间的心跳信息就无法传递,导致集群脑裂,互相争抢资源,从而导致数据出现不一致性。为解决此问题,设计实现一种基于集群之间的共享磁盘进行心跳信息传递的方法及装置,通过在磁盘上预留空间作为心跳盘,当心跳网络故障时通过心跳盘进行通讯,避免了脑裂的发生,增强了集群的一致性,保证了集群的高可靠性和高可用性。

Description

一种增强双机集群可靠、可用性的方法及装置
技术领域
本发明涉及一种增强双机集群可靠、可用性的方法及装置,特别涉及一种双机存储系统使用后端共享存储时提高其可靠、可用性的方法及装置,适用于双机集群存储系统,属于集群海量数据存储技术领域。
背景技术
在现代存储领域,为了提高存储数据的可靠性和改善存储系统的输入、输出性能,人们设计了多种数据存储方案,这些数据存储方案通常是各种类型的独立磁盘冗余阵列(RedundantArraysofIndependentDisks,RAID)。通过使用特定的硬件或软件,RAID把多个物理存储设备如磁盘,联合起来,形成一个统一的逻辑存储设备对应用系统提供存储服务。为了提高应用系统的可用性,人们设计了集群方案,通过集群技术对外提供服务;此时集群内各节点服务器通过心跳网络通讯进行心跳传递。目前应用广泛的是双机应用集群,集群的通讯大多通过串口或以太网络进行,当串口或网络出现故障,没有其他的心跳机制来保障集群心跳通信,集群将处于脑裂状态,即双机都认为对方已失效,将接管对方的业务及资源,由此带来双机均操纵对方的共享磁盘空间,出现写入同一个磁盘位置或者文件,不可避免地造成数据的一致性问题,此时集群无法正常工作,集群的可靠性及可用性极大降低。下面对RAID中常用的技术术语进行解释:
条带:又称为Stripe,是磁盘阵列不同磁盘上的位置相关的分块集合,是组织不同磁盘上条块的单位。
条带化:又称为Striping,是指把一段连续数据分割成相同大小的数据块,把每段数据分别写入到磁盘阵列的不同磁盘上的方法。
共享磁盘:后端通过光纤和以太网通道将磁盘阵列的LUN映射到节点上或者SAS通道链接JBOD上的磁盘,这些磁盘对于所有的前端节点均可见和读写。
节点:传统概念中的一个控制器,为本文中提到的一个节点。
XOR运算:异或运算。
比较常用的RAID有RAID0、RAID1、RAID5、RAID6、RAID10、RAID50和RAID60等。其中RAID0不具有冗余能力,RAID1只是对磁盘做了镜像。其它五种阵列分别有多个磁盘组成,它们以条带的方式向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个磁盘上。传统的阵列在数据量较小的情况得到了广泛应用。
集群:一般情况下,程序运行在一个节点上,集群则是将运行在多个节点上的程序,同一时间选择某一个节点上的程序为用户提供服务,而正在服务的节点损坏或者下电维护时,将应用切换到其他节点工作,达到连续服务的目的。
双机:单独一个节点运行时为单机,两个节点协调工作为双机。
心跳:节点之间的用于表示自己还存活的信息传递。
发明内容
本发明的目的是为解决由于集群节点间的网络故障带来的数据不可靠、系统不可用问题,提出一种增强双机集群可靠、可用性的方法。
本发明的思想是采用控制器和磁盘分离的方式部署双机集群系统,通过设置心跳盘来进行心跳信息传递,从而解决因为心跳网络故障而导致的节点会认为对方失效的问题。
本发明的目的是通过以下技术方案实现的:
一种增强双机集群可靠、可用性的方法,包括以下内容:
在后端共享磁盘中保留一部分共享空间用于设置心跳盘;
当心跳网络正常时按照原双机集群的工作模式通过心跳网络传递心跳消息;
当心跳网络发生故障时启用心跳盘传递心跳消息,当心跳网络恢复后,按照原双机集群的工作模式通过心跳网络传递心跳消息,停止使用心跳盘传递心跳消息。
作为优选,所述心跳盘分为两个信息区,分别存储两个节点的信息,每个信息区分为集群超级块、写超级块、消息区以及保留区四部分;集群超级块用于标识集群,包括心跳盘标记、集群名称和集群UUID;写超级块用于标识当前写入消息的条数SEQ以及最近写入消息的时间;消息区用于存储具体的消息,其为长度M的环形队列,每个消息结构体为校验码、时间戳和消息数据本身;保留区用于当消息区所在块为坏块时,从中分割出一定空间作为消息区;
所述传递心跳消息通过在2个节点启用2个同样的线程:发送线程和接收线程实现,二者的工作过程如下:
发送线程:首先根据本节点所在集群的信息写入集群超级块,初始化写超级块,然后间隔预设写入时间阈值T1向本节点对应的信息区写入一个消息,写前将需要发送的消息打包,即封装成所述消息结构体,然后写入消息区,写入位置由写超级块中的SEQ和消息区大小M决定,当SEQ为M的整数倍时从头覆盖写入,然后更新写超级块的SEQ值为SEQ+1;
接收线程:首先读取对方节点对应的信息区的集群超级块,验证有效后,初始化已读消息个数sequence为0,然后轮询读取对方的写超级块,如果读到的写超级块SEQ大于本节点程序中的sequence,则读取对方的消息区中序号从sequence到SEQ-1的消息,并更新sequence为SEQ;对于读取到的每一条心跳信息,验证消息的校验码和时间戳,若不能通过完整性校验验证或者消息的时间戳与系统当前时间超过一定的时间差T,说明该消息无效,丢弃此消息;当经过预设读取时间间隔T2没有读取到对方有效的消息时,则判定对方节点失效,开始接管对方的资源和业务;否则,判定对方节点有效,继续读取心跳信息。
作为优选,为提高心跳盘的向后兼容性,所述集群超级块还包括版本号。
作为优选,为增强系统的可靠性,设置多个心跳盘,每个心跳盘占用一个磁盘的部分空间,当启用心跳盘时,首先使用第一个,当第一个失效时使用第二个,以此类推。
作为优选,所述使用心跳盘的顺序为按照用户预设的顺序或按照预设的考虑了磁盘IO的算法选择。
一种增强双机集群可靠、可用性的装置,基于心跳盘,包括控制模块、心跳写入模块和心跳读取模块,3个模块同时部署于2个节点上,控制模块分别与心跳写入模块和心跳读取模块相连,心跳写入模块和心跳读取模块分别与心跳盘相连;
所述心跳盘分为两个信息区,分别存储两个节点的信息,每个信息区分为集群超级块、写超级块、消息区以及保留区四部分;集群超级块用于标识集群,包括心跳盘标记、集群名称和集群UUID;写超级块用于标识当前写入消息的条数SEQ以及最近写入消息的时间;消息区用于存储具体的消息,其为长度M的环形队列,每个消息结构体为校验码、时间戳和消息数据本身;保留区用于当消息区所在块为坏块时,从中分割出一定空间作为消息区;
所述控制模块用于在心跳网络故障后启动心跳写入模块,向心跳盘中不断写入心跳信息,同时启动心跳读取模块,从心跳盘中不断读取心跳信息,并根据心跳读取模块读取的心跳信息判断对方节点是否有效,如有效,当探测到心跳网络恢复时,停止本节点的心跳写入模块和心跳读取模块的运行,心跳信息通讯切换到心跳网络;如无效,通知原双机集群接管模块接管对方节点的资源和业务;
所述心跳写入模块用于将心跳盘标识和集群标识初始化后写入心跳盘集群超级块,然后间隔预设写入时间阈值T1按照所述消息的结构打包一个心跳消息,根据当前消息的条数计算出该心跳消息的写入位置,将心跳消息写入到心跳盘相应位置,并更新写超级块,更新写入的心跳信息条数和时间戳;
所述心跳读取模块用于读取心跳盘中写超级块信息,验证通过后通过定时轮询从心跳盘中读取心跳信息,并更新本地已读取的心跳信息条数sequence。
作为优选,为提高心跳盘的向后兼容性,所述集群超级块还包括版本号。
作为优选,为增强系统的可靠性,设置多个心跳盘,每个心跳盘占用一个磁盘的部分空间,当启用心跳盘时,首先使用第一个,当第一个失效时使用第二个,以此类推。
作为优选,所述使用心跳盘的顺序为按照用户预设的顺序或按照预设的考虑了磁盘IO的算法选择。
作为优选,所述从心跳盘中读取心跳信息为读取自sequence到写超级块的SEQ-1所对应的所述消息队列中的心跳消息。
作为优选,控制模块所述判断对方节点是否有效通过以下过程进行:对于读取到的每一条心跳信息,验证消息的校验码和时间戳,若不能通过完整性校验验证或者消息的时间戳与系统当前时间超过一定的时间差T,说明该消息无效;当经过预设读取时间间隔T2没有读取到对方有效的消息时,则判定对方节点失效;否则,判定对方节点有效。
有益效果
双机存储技术可以灵活部署,重心在于软件的实现,可以采用控制器和磁盘分离的方式进行部署,避免机架掉电问题。当一个机架掉电,即此机架上的一个节点掉电后,可将存储业务切换到另一机架上的节点,继续提供对外服务。在双机集群中增加心跳盘,当双机节点有一方心跳网络链路异常时,通过心跳盘传递消息进行心跳传递,由此增加了一个稳定的心跳信息传送通道,达到增强双机稳定性和可用性的目的。对比现有技术,本发明通过在双机集群中增加心跳盘,相比较于只有网络或串口作为通信端口的集群,增加了一个稳定的心跳信息传送通道,并且心跳盘可为任意多个磁盘,使得双机集群满足用户持续稳定性和可用性的需求。
附图说明
图1为本发明实施例双机集群消息传递示意图;
图2为本发明实施例消息区的详细定义;
图3为本发明实施例双机集群存储整体架构示意图;
图4为本发明实施例的一种心跳盘结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。
本实施例以由24块磁盘组成的共享磁盘的双机集群为例对本发明方法进行详细说明。
一:取双机之一作为主控节点,在其上对24块磁盘创建RAID存储池,即共享磁盘,在池上分别创建裸设备卷和文件系统数据集,裸设备卷通过光纤或iSCSI协议方式(不限于此二方式)对外映射,文件系统数据集通过CIFS或NFS协议(不限于此二方式)对外提供访问;在创建RAID存储池时,在被选取用作心跳通信的磁盘上预留一部分区域用作心跳盘存储心跳信息,本实施例中将从磁盘的起始位置开始的4MB的位置作为起始位置划出1G空间作为心跳盘的存储心跳信息空间;
将心跳盘的空间平均划分为2部分,如图1所示,前500M作为节点1的信息区,存储节点1的心跳信息,后500M作为节点2的信息区,存储节点2的心跳信息;一般而言,划分的空间大小远远高于需要存储的心跳信息所占用的空间,预留出的多余空间主要用于当前心跳信息区出现坏块不能读写时,从中再划分出一块空间作为有效心跳信息区,如图2所示,信息区包括集群超级块、写超级块、消息、保留区;节点1和节点2分别读取对方的心跳信息用于判别对方是否真正失效。
二:心跳盘的选择,由于心跳盘所在的磁盘亦有可能失效,为了保证系统的高可用性,设计上可以选择使用所有系统磁盘作为心跳盘,但考虑到空间利用率,设计上初始会使用其中至少2块磁盘创建心跳盘;通常存储系统的业务访问量都比较大,为使业务IO和心跳盘之间不相互影响,设计上优先选择业务量小的磁盘,如空闲盘或热备盘;
三:心跳信息IO优化,为了避免与业务IO的相互影响,发挥系统的最佳性能,只有当心跳网络出现故障时,才开始写入心跳信息,且写心跳信息时,首先往第一块心跳盘写入,当第一块心跳盘出现异常情况(损坏、人为拔掉或更换磁盘)后,再往第二块心跳盘写入,以此类推,直到最后一块心跳盘;读取心跳信息也与写入一致,只有当心跳网络发生故障时,各节点首先读取第一块心跳盘的心跳信息,当该盘失效后,读取第二块心跳盘的心跳信息,以此类推。而启用心跳盘的顺序,既可以按照用户预设的顺序,也可以根据当前磁盘IO采用一定算法进行选择。当心跳网络恢复后,按照原双机集群的工作模式继续通过心跳网络传递心跳消息,停止使用心跳盘传递心跳消息,即停止向心跳盘写入消息和读出消息的过程。
四:信息区设计,对于每个信息区,如图2所示,存储如下内容:
集群超级块,用于保存集群标记信息,表示此信息区与当前集群是否匹配,在节点每次读取消息前首先根据该信息判别该盘是否是其心跳盘,本实施例中集群超级块包含心跳盘标记、集群名称和集群UUID计3项内容;为提高心跳盘的向后兼容性,还可增加版本号内容。
写超级块,用于记录当前写入的心跳信息的条数和时间,至少包括条数标记SEQ和时间戳两项内容。条数标记为当前写入的心跳信息的总条数,心跳盘中消息存放区域是一定的,心跳信息写满心跳盘的心跳信息空间后,会从头再写,此时超级块中记录消息的序号SEQ并不会从0重新开始,而是会一直递增,假设写满空间时的消息条数为M,当SEQ为M的整数倍时心跳消息从头写入,即当前欲写入的心跳信息的位置序号为SEQ除以M所得的余数,数学公式为SEQ%M;时间戳记录最近一次写入的心跳信息的时间。每当节点欲写入一个消息时即根据条数标记获取到写入位置,并于写入成功后更新条数标记和时间戳,其中条数标记=条数标记+1,时间戳为当前时间;
消息区,保存了实际的消息内容,包括了校验码,时间戳以及消息内容。校验码为消息内容的摘要,用于在读取时对消息内容进行完整性校验,确保信息写入后未被篡改;时间戳为系统当前时间,双重验证,确保信息未过期;消息内容则详细记录了写入信息节点的心跳信息,如节点当前状态、节点名称、节点运行时间等信息。本实施例中,校验码采用CRC校验算法获取。
磁盘的寿命是一定的,在不停的读写磁盘同一区域,很容易导致磁盘损坏,导致这一区域出现坏块,无法读写,为保证信息区在磁盘出现坏块时读写不受影响,划分了保留区,对于每个节点,保留区初始空间为496MB,一旦当前写入消息区域空间出现坏块时,便从保留区中拿出第二块4MB空间继续使用,直到最后一块空间,从而延长了心跳盘的可用性。
当心跳网线出现故障时,心跳磁盘开始工作,如图4所示,首先根据本节点所在集群的信息写入集群超级块,初始化写超级块,然后间隔预设写入时间阈值T1向本节点对应的信息区写入一个消息,写前将需要发送的消息打包,即封装成所述消息结构体,然后写入消息区,写入位置由写超级块中的SEQ和消息区大小M决定,当SEQ为M的整数倍时从头覆盖写入,然后更新写超级块的SEQ值为SEQ+1;
读取对方的消息时,首先读取对方节点对应的信息区的集群超级块,验证有效后,初始化已读消息个数sequence为0,然后轮询读取对方的写超级块,如果读到的写超级块SEQ大于本节点程序中的sequence,则读取对方的消息区中序号从sequence到SEQ-1的消息,并更新sequence为SEQ;对于读取到的每一条心跳信息,验证消息的校验码和时间戳,若不能通过完整性校验验证或者消息的时间戳与系统当前时间超过一定的时间差T,说明该消息无效,丢弃此消息;当经过预设读取时间间隔T2没有读取到对方有效的消息时,则判定对方节点失效,开始接管对方的资源和业务;否则,判定对方节点有效,继续读取心跳信息。
实验结果:
本实验中,搭建了一个双机集群,如图3所示,后端为SASJBOD,24块SATA硬盘,支持链路冗余,前端的两个节点通过SAS卡各用1根SAS线缆链接到SASJBOD上构成心跳盘链路,两个节点均能对24块磁盘进行读写,使用此24片盘进行测试;两个节点通过心跳网线传递心跳信息,在每个节点上各选择11块盘分别创建RAID5存储池,剩下的两块盘为两个存储池各自创建一个热备盘,,在创建RAID时预留心跳盘需要写入的磁盘空间,在与其他保留空间冲突时给予提醒。存储池分别为POOLA和POOLB。选择2块热备盘作为心跳盘,并在存储池上分别创建裸设备和文件系统数据集,裸设备通过光纤或iSCSI协议的一个或多个分别将POOLA在节点1和POOLB在节点2对外映射,文件系统数据集通过CIFS、NFS、HTTP、HTTPS和FTP协议的一个或多个在存储池所在的节点上对外提供访问。
心跳网络工作正常时,资源存储池POOLA属于节点1,资源存储池POOLB属于节点2,拔掉心跳网线,使得心跳网络故障,此时心跳控制模块分别在节点1和2上启动心跳信息写入模块,将心跳信息以一定时间T1写入心跳磁盘中,并分别启动心跳信息读取模块,从心跳磁盘中以间隔一定时间T2的轮询方式读取心跳信息,两个节点继续通过心跳磁盘进行通信,业务主机端的IO没有中断;再拔出一块心跳盘,系统仍然正常运行,心跳盘成功地进行了心跳信息的传输,增强了集群的可用性,证明了本发明的有效性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,或者对其中部分技术特征进行等同替换,这些改进和替换也应视为本发明的保护范围。

Claims (10)

1.一种增强双机集群可靠、可用性的方法,其特征在于:包括以下内容:
在后端共享磁盘中保留一部分共享空间用于设置心跳盘;
当心跳网络正常时按照原双机集群的工作模式通过心跳网络传递心跳消息;
当心跳网络发生故障时启用心跳盘传递心跳消息,当心跳网络恢复后,按照原双机集群的工作模式通过心跳网络传递心跳消息,停止使用心跳盘传递心跳消息。
2.根据权利要求1所述的一种增强双机集群可靠、可用性的方法,其特征在于:所述心跳盘分为两个信息区,分别存储两个节点的信息,每个信息区分为集群超级块、写超级块、消息区以及保留区四部分;集群超级块用于标识集群,包括心跳盘标记、集群名称和集群UUID;写超级块用于标识当前写入消息的条数SEQ以及最近写入消息的时间;消息区用于存储具体的消息,其为长度M的环形队列,每个消息结构体为校验码、时间戳和消息数据本身;保留区用于当消息区所在块为坏块时,从中分割出一定空间作为消息区;
所述传递心跳消息通过在2个节点启用2个同样的线程:发送线程和接收线程实现,二者的工作过程如下:
发送线程:首先根据本节点所在集群的信息写入集群超级块,初始化写超级块,然后间隔预设写入时间阈值T1向本节点对应的信息区写入一个消息,写前将需要发送的消息打包,即封装成所述消息结构体,然后写入消息区,写入位置由写超级块中的SEQ和消息区大小M决定,当SEQ为M的整数倍时从头覆盖写入,然后更新写超级块的SEQ值为SEQ+1;
接收线程:首先读取对方节点对应的信息区的集群超级块,验证有效后,初始化已读消息个数sequence为0,然后轮询读取对方的写超级块,如果读到的写超级块SEQ大于本节点程序中的sequence,则读取对方的消息区中序号从sequence到SEQ-1的消息,并更新sequence为SEQ;对于读取到的每一条心跳信息,验证消息的校验码和时间戳,若不能通过完整性校验验证或者消息的时间戳与系统当前时间超过一定的时间差T,说明该消息无效,丢弃此消息;当经过预设读取时间间隔T2没有读取到对方有效的消息时,则判定对方节点失效,开始接管对方的资源和业务;否则,判定对方节点有效,继续读取心跳信息。
3.根据权利要求2所述的一种增强双机集群可靠、可用性的方法,其特征在于:为提高心跳盘的向后兼容性,所述集群超级块还包括版本号。
4.根据权利要求1-3任一所述的一种增强双机集群可靠、可用性的方法,其特征在于:为增强系统的可靠性,设置多个心跳盘,每个心跳盘占用一个磁盘的部分空间,当启用心跳盘时,首先使用第一个,当第一个失效时使用第二个,以此类推。
5.根据权利要求4所述的一种增强双机集群可靠、可用性的方法,其特征在于:所述使用心跳盘的顺序为按照用户预设的顺序或按照预设的考虑了磁盘IO的算法选择。
6.一种增强双机集群可靠、可用性的装置,其特征在于:基于心跳盘,包括控制模块、心跳写入模块和心跳读取模块,3个模块同时部署于2个节点上,控制模块分别与心跳写入模块和心跳读取模块相连,心跳写入模块和心跳读取模块分别与心跳盘相连;
所述心跳盘分为两个信息区,分别存储两个节点的信息,每个信息区分为集群超级块、写超级块、消息区以及保留区四部分;集群超级块用于标识集群,包括心跳盘标记、集群名称和集群UUID;写超级块用于标识当前写入消息的条数SEQ以及最近写入消息的时间;消息区用于存储具体的消息,其为长度M的环形队列,每个消息结构体为校验码、时间戳和消息数据本身;保留区用于当消息区所在块为坏块时,从中分割出一定空间作为消息区;
所述心跳写入模块用于第一次将集群超级块初始化后写入心跳盘,并每次计算出心跳信息位置,将心跳信息写入到心跳盘相应位置,并更新超级块,更新写入的心跳信息条数;
所述控制模块用于在心跳网络故障后启动心跳写入模块,向心跳盘中不断写入心跳信息,同时启动心跳读取模块,从心跳盘中不断读取心跳信息,并根据心跳读取模块读取的心跳信息判断对方节点是否有效,如有效,当探测到心跳网络恢复时,停止本节点的心跳写入模块和心跳读取模块的运行,心跳信息通讯切换到心跳网络;如无效,通知原双机集群接管模块接管对方节点的资源和业务;
所述心跳写入模块用于将心跳盘标识和集群标识初始化后写入心跳盘集群超级块,然后间隔预设写入时间阈值T1按照所述消息的结构打包一个心跳消息,根据当前消息的条数计算出该心跳消息的写入位置,将心跳消息写入到心跳盘相应位置,并更新写超级块,更新写入的心跳信息条数和时间戳;
所述心跳读取模块用于读取心跳盘中写超级块信息,验证通过后通过定时轮询从心跳盘中读取心跳信息,并更新本地已读取的心跳信息条数sequence。
7.根据权利要求6所述的一种增强双机集群可靠、可用性的装置,其特征在于:为提高心跳盘的向后兼容性,所述集群超级块还包括版本号。
8.根据权利要求6所述的一种增强双机集群可靠、可用性的装置,其特征在于:为增强系统的可靠性,设置多个心跳盘,每个心跳盘占用一个磁盘的部分空间,当启用心跳盘时,首先使用第一个,当第一个失效时使用第二个,以此类推。
9.根据权利要求8所述的一种增强双机集群可靠、可用性的装置,其特征在于:所述使用心跳盘的顺序为按照用户预设的顺序或按照预设的考虑了磁盘IO的算法选择。
10.根据权利要求6-9任一所述的一种增强双机集群可靠、可用性的装置,其特征在于:所述从心跳盘中读取心跳信息为读取自所述sequence到所述写超级块的SEQ-1所对应的所述消息队列中的心跳消息。
CN201511008960.3A 2015-12-29 2015-12-29 一种增强双机集群可靠、可用性的方法及装置 Active CN105681074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511008960.3A CN105681074B (zh) 2015-12-29 2015-12-29 一种增强双机集群可靠、可用性的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511008960.3A CN105681074B (zh) 2015-12-29 2015-12-29 一种增强双机集群可靠、可用性的方法及装置

Publications (2)

Publication Number Publication Date
CN105681074A true CN105681074A (zh) 2016-06-15
CN105681074B CN105681074B (zh) 2018-11-09

Family

ID=56189676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511008960.3A Active CN105681074B (zh) 2015-12-29 2015-12-29 一种增强双机集群可靠、可用性的方法及装置

Country Status (1)

Country Link
CN (1) CN105681074B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873918A (zh) * 2017-02-27 2017-06-20 郑州云海信息技术有限公司 一种虚拟化系统中的存储设置方法及装置
CN107249036A (zh) * 2017-06-30 2017-10-13 郑州云海信息技术有限公司 一种存储集群系统的仲裁方法、装置及存储系统
CN107786374A (zh) * 2017-10-19 2018-03-09 郑州云海信息技术有限公司 一种Oracle集群文件系统及其实现fence的方法
CN108897645A (zh) * 2018-06-12 2018-11-27 郑州云海信息技术有限公司 一种基于备用心跳磁盘的数据库集群容灾方法和系统
CN109240845A (zh) * 2018-09-05 2019-01-18 郑州云海信息技术有限公司 一种心跳磁盘异常的处理方法、装置和存储介质
CN112367198A (zh) * 2020-10-30 2021-02-12 新华三大数据技术有限公司 主备节点切换方法及装置
CN112822078A (zh) * 2021-02-26 2021-05-18 浪潮云信息技术股份公司 一种不同网域中各节点raft心跳上报的实现方法
CN113377702A (zh) * 2021-07-06 2021-09-10 安超云软件有限公司 两节点集群启动的方法及装置、电子设备和存储介质
CN113595836A (zh) * 2021-09-27 2021-11-02 云宏信息科技股份有限公司 一种高可用集群的心跳检测方法、存储介质和计算节点
WO2022037171A1 (zh) * 2020-08-20 2022-02-24 苏州浪潮智能科技有限公司 一种数据请求方法、设备以及介质
CN117992501A (zh) * 2024-04-03 2024-05-07 本原数据(北京)信息技术有限公司 数据库集群脑裂预防方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250421A1 (en) * 2007-03-23 2008-10-09 Hewlett Packard Development Co, L.P. Data Processing System And Method
CN103051470A (zh) * 2012-11-29 2013-04-17 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103593266A (zh) * 2013-11-12 2014-02-19 浪潮(北京)电子信息产业有限公司 一种基于仲裁盘机制的双机热备方法
CN105045533A (zh) * 2015-07-09 2015-11-11 上海爱数软件有限公司 适用于双控高可用存储系统的磁盘心跳收发方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080250421A1 (en) * 2007-03-23 2008-10-09 Hewlett Packard Development Co, L.P. Data Processing System And Method
CN103051470A (zh) * 2012-11-29 2013-04-17 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103593266A (zh) * 2013-11-12 2014-02-19 浪潮(北京)电子信息产业有限公司 一种基于仲裁盘机制的双机热备方法
CN105045533A (zh) * 2015-07-09 2015-11-11 上海爱数软件有限公司 适用于双控高可用存储系统的磁盘心跳收发方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106873918A (zh) * 2017-02-27 2017-06-20 郑州云海信息技术有限公司 一种虚拟化系统中的存储设置方法及装置
CN107249036A (zh) * 2017-06-30 2017-10-13 郑州云海信息技术有限公司 一种存储集群系统的仲裁方法、装置及存储系统
CN107786374A (zh) * 2017-10-19 2018-03-09 郑州云海信息技术有限公司 一种Oracle集群文件系统及其实现fence的方法
CN108897645A (zh) * 2018-06-12 2018-11-27 郑州云海信息技术有限公司 一种基于备用心跳磁盘的数据库集群容灾方法和系统
CN108897645B (zh) * 2018-06-12 2021-07-27 郑州云海信息技术有限公司 一种基于备用心跳磁盘的数据库集群容灾方法和系统
CN109240845A (zh) * 2018-09-05 2019-01-18 郑州云海信息技术有限公司 一种心跳磁盘异常的处理方法、装置和存储介质
WO2022037171A1 (zh) * 2020-08-20 2022-02-24 苏州浪潮智能科技有限公司 一种数据请求方法、设备以及介质
CN112367198A (zh) * 2020-10-30 2021-02-12 新华三大数据技术有限公司 主备节点切换方法及装置
CN112367198B (zh) * 2020-10-30 2022-07-01 新华三大数据技术有限公司 主备节点切换方法及装置
CN112822078A (zh) * 2021-02-26 2021-05-18 浪潮云信息技术股份公司 一种不同网域中各节点raft心跳上报的实现方法
CN112822078B (zh) * 2021-02-26 2023-01-13 上海沄熹科技有限公司 一种不同网域中各节点raft心跳上报的实现方法
CN113377702A (zh) * 2021-07-06 2021-09-10 安超云软件有限公司 两节点集群启动的方法及装置、电子设备和存储介质
CN113377702B (zh) * 2021-07-06 2024-03-22 安超云软件有限公司 两节点集群启动的方法及装置、电子设备和存储介质
CN113595836A (zh) * 2021-09-27 2021-11-02 云宏信息科技股份有限公司 一种高可用集群的心跳检测方法、存储介质和计算节点
CN117992501A (zh) * 2024-04-03 2024-05-07 本原数据(北京)信息技术有限公司 数据库集群脑裂预防方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN105681074B (zh) 2018-11-09

Similar Documents

Publication Publication Date Title
CN105681074A (zh) 一种增强双机集群可靠、可用性的方法及装置
US10613934B2 (en) Managing RAID parity stripe contention
US7904647B2 (en) System for optimizing the performance and reliability of a storage controller cache offload circuit
CN102024044B (zh) 分布式文件系统
US8560772B1 (en) System and method for data migration between high-performance computing architectures and data storage devices
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
CN105843557B (zh) 冗余存储系统、冗余存储方法和冗余存储装置
CN102662607B (zh) 一种raid6级别混合磁盘阵列及其性能加速和可靠性提高方法
CN105472047B (zh) 存储系统
CN100524235C (zh) 存储网络中的恢复操作
US20110047437A1 (en) Apparatus, system, and method for graceful cache device degradation
CN105872031B (zh) 存储系统
US20150370713A1 (en) Storage system and storage control method
US20100325376A1 (en) Apparatus and Method to Maintain Write Operation Atomicity Where a Data Transfer Operation Crosses a Data Storage Medium Track Boundary
CN101351760A (zh) 用于在高电源效率的大容量可扩展存储系统中存取辅助数据的方法和系统
WO2013157032A1 (en) Storage subsystem and data management method of storage subsystem
CN102483686A (zh) 数据存储系统和用于操作数据存储系统的方法
CN106557143B (zh) 用于数据存储设备的装置和方法
CN106168920B (zh) 控制包括只读闪速数据存储设备的独立磁盘冗余阵列
JP4939205B2 (ja) データ記憶システムに配置された記憶アレイを再構成するための装置及び方法
US7702948B1 (en) Auto-configuration of RAID systems
CN108205573B (zh) 一种数据分布式存储方法及系统
CN103605582B (zh) 一种基于写重定向的纠删码存储重构优化方法
CN102135862B (zh) 一种磁盘存储系统及其数据访问方法
EP4145265A2 (en) Storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant