用watchdog 保证服务器的高可用性

简介:

 watchdog 是一款优秀的系统监控工具。普通情况下,它看似无关紧要,但却能在危机关头力挽狂澜。因为它能够在系统资源即将耗尽或即将崩溃时主动重启系统,避免由于硬件罢工而导致的被动重启或宕机造成的数据损失和业务损失。这里将讨论软件watchdog ,而不是硬件watchdog 。


     watchdog 实际上是一个用于系统主动重启的计时器,默认倒计时为60秒,系统在60秒内往 /dev/watchdog 设备中进行一次写操作,如果成功则归零计时器,重新倒计时。如果在60秒内,没有任何写操作,watchdog 便认为系统发生严重故障,主动重启系统,以求自救而不是等死。

    在主动重启之前, 会执行以下一系列操作:

 
 
  1. a、关闭所有打开的文件 
  2. b、如果sendmail应用存在,配置文件中提供了管理员的email地址,将发封email给管理员 
  3. c、通知系统重启 
  4. d、将重启信息记入系统日志kill掉所有进程将重启信息记入wtmp 
  5. e、关闭倒计时,磁盘限额,交换分区 
  6. f、卸载所有非根文件系统 
  7. g、以只读方式重新装载根文件系统(这个十分重要,防止破坏系统,因为被动重启有可能破坏系统) 
  8. h、关闭网络接口 
  9. i、重启系统 




     内核级别的watchdog,通常是内核自带,除非编译,没有给用户配置的余地。另外还有用户接口,可以更方便的使用。

      watchdog 会根据配置检测系统平均负载,剩余内存,网络是否通畅等,为此我们可以轻松设置系统可用资源的上限,当满足某一条件则会触动重启机制,这可以方便的保护机器。例如,我们设置当剩余虚拟内存页面低于x,或15分钟平均负载高于y时,系统将自动重启,配合heartbeat,可以把灾难降至最低,特别是高负载带来的系统宕机。

这里以scientific linux 6和ubuntu 10.04为例:

1、安装

 
 
  1. #yum install watchdog 

 
 
  1. #apt-get install watchdog 



2、配置模块

a、查看模块信息
#modinfo softdog        #注意,由于是软件实现的watchdog,故称为softdog,而不是watchdog。

b、开机加载softdog模块(由于并非基础性模块,不用事先考虑系统启动顺序)

【centos 6 /scientific linux 6】:
 

 
 
  1. #cat /etc/sysconfig/modules/watchdog.modules  
  2.   
  3. #!/bin/sh  
  4. if [ ! -c /dev/watchdog];then  
  5.      /sbin/modprobe softdog >/dev/null 2>&1  
  6. fi  
  7.  
  8. #chmod +x  /etc/sysconfig/modules/watchdog.modules 



【ubuntu 10.04 】:
 

 
 
  1. #vi /etc/rc.local 
  2.  
  3. #/bin/sh -e 
  4. modprobe softdog 
  5. exit 0 


重启系统后,检查模块是否加载

#lsmod |grep softdog

或者查看/dev 目录下是否存在/dev/watchdog 设备

#ls -l /dev |grep watchdog

3、配置watchdog

vi /etc/watchdog.conf
 

 
 
  1. min-memory  = 10  
  2.  
  3. #注意,这里指内存页面数,而不是内存大小,内存大小等于页面大小乘以页面数目。 
  4.  
  5. #使用命令“ getconf PAGESIZE” 获得系统内存页面大小,我这里是4096K=4M,也就是说,这里设置的最低内存为4M x 10 = 40M 
  6.  
  7. #意即,当系统可用虚拟内存低于40M时,watchdog将主动重启。 
  8.  
  9. watchdog-device    = /dev/watchdog 
  10.  
  11. admin          = root    #发信收件人,这里是管理员。需要sendmail支持。 
  12. interval        = 10      #每间隔10秒钟往/dev/watchdog设备中执行一次写操作。 
  13. logtick          = 60     #睡眠时间,持续写日志到syslog很耗磁盘空间和CPU资源,此选项会隔一段时间写一次,节省资源。 
  14.  
  15. realtime       = yes   #实时监控,将watchdog 封入内存,防止在系统高负载时watchdog 意外退出。 
  16. priority         = 1      #优先级 



本文迁移自本人早先的百度空间文章

用watchdog 保证服务器的高可用性

 

另见本人在linuxtone 关于watchdog的文章有更深入的内容。

利用watchdog 实现智能监控










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1131910,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
负载均衡 应用服务中间件 nginx
服务器架构、分布式系统、负载均衡、微服务、高可用性
**分布式系统取代单体架构,以微服务实现高扩展性和灵活性。通过负载均衡技术增强性能,防止单点故障,结合冗余备份与故障切换保障高可用性,这种架构是支撑大规模在线业务的关键。**
138 3
|
弹性计算 容灾 定位技术
构建弹性高可用的云计算环境:ECS的扩展与高可用性设计
本文深入研究了云服务器ECS的自动伸缩和高可用性设计,重点关注了弹性伸缩原理与应用、自动伸缩策略、负载均衡器的使用,以及跨地域容灾架构的建立。通过实际代码示例,读者能够全面了解如何在云计算环境中实现弹性的资源管理和高可用性的应用架构。
424 0
|
Web App开发 监控 测试技术
|
机器学习/深度学习 分布式计算 Hadoop
三台PC服务器部署Hadoop HA(Hadoop 高可用性架构)
写在前边的话:         转载请注明出处:@http://blog.csdn.net/gamer_gyt,Thinkagmer 撰写         之前是在自己电脑上部署的hadoop集群,但并未涉及到HA配置,这次将集群迁移到PC服务器,但是问题来了,只有三台,但是我还想配置HA,PC服务器是CentOS6.5,原来想着在上边部署VM,从而部署HA集群,但经测试,未果,遂弃之,就想到了在三台机器上部署HA集群。
1398 0
|
6天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
39 9

热门文章

最新文章