一种实现heartbeat高可用性的装置的制造方法_2

文档序号:9396766阅读:来源:国知局
inux内核不仅为各种不同类型的watchdog硬件电路提供了驱动,还提供了一个基于定时器的纯软件watchdog驱动。驱动源码位于内核源码树drivers/char/watchdog目录下。
[0035]具体地,可以在/etc/ha.d/ha.cf配置文件中启用watchdog选项。这样,Heartbeat将每隔相当于deadtime长的时间写入/dev/watchdog文件(或设备),因此,出现任何导致Heartbeat更新watchdog设备失败的事情,一旦watchdog超时周期(默认是一分钟)过期,watchdog将启动内核恐慌。本实施例将内核恐慌设置为重新启动程序。
[0036]硬件watchdog必须有硬件电路支持,设备节点/dev/watchdog对应着真实的物理设备,不同类型的硬件watchdog设备由相应的硬件驱动管理。软件watchdog则由一内核模块softdog.ko通过定时器机制实现,/dev/watchdog并不对应着真实的物理设备,只是为应用提供了一个与操作硬件watchdog相同的接口。
[0037]作为一种【具体实施方式】,在任一时刻,只能有一个watchdog驱动模块被加载,管理/dev/watchdog设备节点。如果系统没有硬件watchdog电路,可以加载软件watchdog驱动 softdog.ko。
[0038]本发明所提供的实现heartbeat高可用性的装置可以在/etc/ha.d/ha.cf配置文件中加入watchdog/dev/watchdog,即可自动启用watchdog功能。
[0039]在主节点上可通过〃killall_9heartbeat〃命令关闭heartbeat进程。由于是非法关闭heartbeat进程,因此heartbeat所控制的资源并没有释放。备份节点在很短一段时间没有收到主节点的响应后,就会认为主节点出现故障,进而接管主节点资源。在这种情况下,就出现了资源争用情况,两个节点都占用一个资源,造成数据冲突。
[0040]针对这个情况,本发明所提供的实现heartbeat高可用性的装置,通过Linux提供的内核监控模块watchdog,将watchdog集成到Heartbeat中。如果Heartbeat异常终止,或者系统出现故障,watchdog都会自动重启系统,从而释放集群资源,避免了数据冲突的发生。
[0041]本实施例还可以进一步包括:
[0042]提示模块,用于向用户提示重新启动系统的信息。
[0043]具体地,可以在执行“killall_9heartbeat” 时,在 /var/log/messages 中看获得如下 message:“Softdog:WDT device closed unexpectedly.WDT will not stop !,,系统就会马上重启,接着就会释放集群资源,增强系统高可用性。
[0044]本发明所提供的实现heartbeat高可用性的装置,可以借助watchdog机制来有效监控自身健康状况。一旦节点失效就会在规定的时间内触发内核硬性复位,从而及时释放手中的资源,同时还可以防止集群“脑裂”的发生,提升了 heartbeat的高可用性。
[0045]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0046]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【主权项】
1.一种实现heartbeat高可用性的装置,其特征在于,包括heartbeat组件以及watchdog 模块; 其中,所述heartbeat组件用于每隔预定时间间隔对所述watchdog模块进行写操作; 所述watchdog模块用于当预设周期内没有被执行写操作时,触发重新启动系统的操作;其中,所述预定时间间隔小于等于所述预设周期。2.如权利要求1所述的实现heartbeat高可用性的装置,其特征在于,还包括: 启动模块,用于启动所述watchdog模块进入工作状态。3.如权利要求2所述的实现heartbeat高可用性的装置,其特征在于,所述watchdog模块具体通过独立于内核的硬件计时器实现。4.如权利要求3所述的实现heartbeat高可用性的装置,其特征在于,所述硬件计时器为 MAX813、5045 或頂P 813 芯片。5.如权利要求2所述的实现heartbeat高可用性的装置,其特征在于,所述watchdog模块具体通过内核模块结合定时器实现。6.如权利要求2所述的实现heartbeat高可用性的装置,其特征在于,所述预设周期为一分钟。7.如权利要求6所述的实现heartbeat高可用性的装置,其特征在于,Linux内核为所述watchdog模块提供相应的驱动。8.如权利要求1至7任一项所述的实现heartbeat高可用性的装置,其特征在于,所述watchdog模块的驱动在同一时刻只有一个被加载。9.如权利要求8所述的实现heartbeat高可用性的装置,其特征在于,还包括: 提示模块,用于向用户提示重新启动系统的信息。
【专利摘要】本发明公开了一种实现heartbeat高可用性的装置,包括heartbeat组件以及watchdog模块;其中,所述heartbeat组件用于每隔预定时间间隔对所述watchdog模块进行写操作;所述watchdog模块用于当预设周期内没有被执行写操作时,触发重新启动系统的操作;其中,所述预定时间间隔小于等于所述预设周期。本发明所提供的实现heartbeat高可用性的装置,在heartbeat异常终止,或者系统出现故障的情况下,watchdog模块能够自动重启系统,释放集群资源,避免了数据冲突的发生,从而提升了heartbeat的高可用性。
【IPC分类】G06F11/07
【公开号】CN105117300
【申请号】CN201510493574
【发明人】李延彬
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2015年12月2日
【申请日】2015年8月12日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1