The invention provides a method and a device for realizing a heartbeat, among them, the method includes: a first value according to the execution of the first periodic heartbeat write operation, first write operation heartbeat count value is written in order to share storage space; to detect overload of the node, the node state switching from normal to non normal, stop the execution of the first write operation to obtain the new order of the heart, the first write operation heartbeat count M, the node of the heart cycle update for a value of second, among them, second greater than the first value; in accordance with the second values to write periodic execution of heart operation in second, and will write the order sent to count in addition to the other node node outside the second write operation heartbeat count, as the node which is written in order to start writing, the order of the counting value for M or M+1.
【技术实现步骤摘要】
心跳实现方法及装置
本申请涉及存储
,特别涉及一种心跳实现方法及装置。
技术介绍
在共享文件系统中,多个节点(例如,主机)组成一个集群,该集群中的所有节点可以访问同一存储空间,任一节点读写该存储空间中的文件时,其它节点仍可以访问该文件,节点间通过分布式锁协商读写权限。在共享文件系统中,采用读写心跳机制来判定节点是否在线。具体的,在如图1所示的共享文件系统中包括节点1(节点ID为1)、节点2(节点ID为2)和节点3(节点ID为3),这3个节点可以访问存储空间中的同一逻辑盘(或称为卷),从该逻辑盘的固定基地址位置开始执行读写心跳操作,例如,该基地址位置为该逻辑盘4M字节位置,每一个节点写心跳的偏移地址为4字节(即写心跳内容占用4字节),则各个节点写心跳的方法如下:节点1在4M~(4M+4)字节位置写入本节点的sequence(顺序)计数值1,节点2在(4M+4)~(4M+8)字节位置写入本节点的sequence计数值1,节点3在(4M+8)~(4M+12)字节位置写入本节点的sequence计数值1;然后,节点1在4M~(4M+4)字节位置将本节点的sequen ...
【技术保护点】
一种心跳实现方法,其特征在于,所述方法应用于共享文件系统中的节点,所述方法包括:按照第一值周期性的执行第一写心跳操作,所述第一写心跳操作为向共享的存储空间中写入顺序计数值;在检测到本节点的负载过载时,将本节点的状态从正常切换为非正常,停止执行所述第一写心跳操作,获取所述第一写心跳操作的最新顺序计数值M,将本节点的心跳周期更新为第二值,其中,所述第二值大于所述第一值;按照所述第二值周期性的执行第二写心跳操作,并将写入的顺序计数值发送给除本节点以外的其它节点,所述第二写心跳操作为向本节点中写入顺序计数值,其中,写入的顺序计数值的起始值为M或M+1。
【技术特征摘要】
1.一种心跳实现方法,其特征在于,所述方法应用于共享文件系统中的节点,所述方法包括:按照第一值周期性的执行第一写心跳操作,所述第一写心跳操作为向共享的存储空间中写入顺序计数值;在检测到本节点的负载过载时,将本节点的状态从正常切换为非正常,停止执行所述第一写心跳操作,获取所述第一写心跳操作的最新顺序计数值M,将本节点的心跳周期更新为第二值,其中,所述第二值大于所述第一值;按照所述第二值周期性的执行第二写心跳操作,并将写入的顺序计数值发送给除本节点以外的其它节点,所述第二写心跳操作为向本节点中写入顺序计数值,其中,写入的顺序计数值的起始值为M或M+1。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测到任一其它节点的状态从正常切换为非正常时,若本节点的心跳周期为所述第一值,则将本节点的心跳周期更新为所述第二值。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在接收到其它节点发来的顺序计数值之后,保存该其它节点发来的顺序计数值;在执行读心跳操作时,判断本节点中保存的该其它节点的顺序计数值在预定时间内是否发生了改变,若是,则确定该其它节点在线,否则,确定该其它节点不在线。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测到本节点的负载恢复正常时,将本节点的状态从非正常切换为正常;当本节点的状态为正常时,判断所有其它节点的状态是否均为正常;若是,则在本节点当前执行的是所述第二写心跳操作时,停止执行所述第二写心跳操作,获取所述第二写心跳操作的最新顺序计数值N,将本节点的心跳周期更新为所述第一值,按照所述第一值周期性的执行所述第一写心跳操作,其中,执行所述第一写心跳操作时写入的顺序计数值的起始值为N或N+1;在本节点当前执行的是所述第一写心跳操作时,若本节点的心跳周期为所述第二值,则将本节点的心跳周期更新为所述第一值。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取本节点的负载信息;当获取一种负载信息时,通过以下方式检测本节点的负载是否过载:若获取到的负载信息的数值大于预设阈值,则确定本节点的负载过载,否则,确定本节点的负载没有过载;通过以下方式检测本节点是否恢复正常:若获取到的负载信息的数值不大于所述预设阈值,则确定本节点的负载恢复正常,否则,确定本节点的负载没有恢复正常;当获取两种以上负载信息时,通过以下方式检测本节点的负载是否过载:若获取到的每一个负载信息的数值均大于对应的预设阈值,则确定本节点的负载过载,否则,确定本节点的负载没有过载;通过以下方式检测本节点是否恢复正常:若获取到的每一个负载信息的数值均不大于对应的预设阈值,则确定本节点的负载恢复正常,否则,确定本节点的负载没有恢复正常。6.一种心跳实现装置,其特征在于,所述装置应用于共享文件系统中的节点中,所述装置包括:检测单元,用于检测本节点的负载情况;状态切换单元,用于在所述检测单元检测到本节点的负载过载时,将本节点的状态从正常切换为非正常;写心跳执行单元,用于按照第一值周期性的执行第一写心跳操作,所述...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。