打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
keepalived手册中未更新的功能挖掘及使用介绍(vrrp_script和track_script)
    用惯了openbsd的carp和交换机的vrrp/hsrp,对keepalived的vrrp模式特别亲切,有什么问题的时候一般都能第一时间先考虑用它。

如果有什么新的使用需求,我的使用习惯一般是看手册,不过,近段时间有几个使用场景,把手册翻了个遍,就是没有找到有对应的配置选项,感觉很是郁闷。不过,因为一个问题偶尔去看了一下源代码,发现我想要的功能早就有了,只是没更新手册罢了,真是有点柳岸花明的感觉。

下面是手册中未更新的两个小功能:
1、vrrp_script和track_script
track_script指定检查脚本,定期运行它们来改变优先级,并最终引发主备切换。如果配过交换机的vrrp/hsrp部分的话,应该对这个功能比较熟悉
2、notify_stop
keepalived停止运行前运行notify_stop指定的脚本

下面是我这边应用上面两个功能介绍:
1、两台双master台数据库,用keepalivd的vrrp模式给客户端提供一个HA的虚拟IP
这个要求检查mysql数据库的状态,如果mysql出现问题,就降低优先级,这样虽然机器正常,也会引发新一轮的master选举,以保证mysql服务的高可用性

先定义两个检查脚本
vrrp_script chk_mysqld {
   script "/usr/bin/mysqladmin -uganglia extended-status -pganglia_status | grep -qSlave_running"
   interval 10 # check every 10 seconds
   weight-40   # if failed, decrease 40 ofthe priority
  fall     # require 2 failures for failures
  rise     # require 1 sucesses for ok
}

vrrp_script chk_schedown {
   script "if [ -f /var/run/down]; then exit 1; else exit 0; fi"
   interval 10 # check every 10 seconds
   weight-40   # if failed, decrease 40 ofthe priority
  fall     # require 2 failures for failures
  rise     # require 1 sucesses for ok
}
上面的chk_schedown脚本,给管理员提供一个切换的地方,如果管理员在master上手工touch/var/run/down,这样,流量会比这台机器上切走了。

在vrrp对应的地方使用它
vrrp_instance VI_1 {
    track_script{
      chk_mysqld
      chk_schedown
    }
}

2、为一些后台cron脚本提供高可用性
有些后台脚本,如给用户发短信或邮件,它需要在一台机器上运行,但是不能同时在多台机器上运行。如果只配在某台机器上,当它出现问题的时候,这些后台脚本就停止运行了。

这边的做法是,利用notify和notify_stop脚本,在MASTER机器上生成一个状态文件,所有机器都配同样的cron配置和定时运行同样的脚本,不同的是脚本在运行时首先检查是不是master,如果不是,则直接退出。这样多台机器都会定期运行后台脚本,但只有一台真正执行。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
nginx高可用
Keepalived+Nginx实现高可用(HA)
keepalived学习文档
生产环境之Nginx高可用方案
keepalived之vrrp_script详解
我的keepalived的配置排錯過程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服