关闭

keepalived配置文件简要说明

1150人阅读 评论(8) 收藏 举报

Keepalived配置keepalived主要有三个模块:
分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

keepalived配置文件
keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

这里写图片描述

global_defs
邮件报警,由于我单独写了一个脚本,执行发送邮件的功能,所以这里就不过多介绍了,可参考的发邮件博客:keepalived双机热备故障时发送邮件
文档后面会讲邮件报警这个的

vrrp_script
用来做健康检查的,当时检查失败时会将vrrp_instance的priority减少相应的值。同时告诉keepalived在什么情况下切换,所以可以有多个vrrp_script

vrrp_script check_nginx {
            script "/usr/local/keepalived-1.3.4/nginx_check.sh"
            interval 3
            weight -2
}

script : 自己写的检测脚本。这里的脚本命令是nginx_check.sh
interval 3 : 每3s检测一次
weight -2 : 检测失败,则相应的vrrp_instance的优先级会减少2个点
script一般有两种写法: (这里在安装keepalived的时候,已经写好了)
1.通过脚本执行的返回结果,改变优先级,keepalived继续发送通告消息,backup比较优先级再决定
2.脚本里面检测到异常,直接关闭keepalived进程,backup机器接收不到advertisement会抢占IP ,我们采用的是第二种:
这里可以看一下我的nginx_check.sh

这里写图片描述

nxPidNum=`ps -C nginx --no-header |wc -l`
keepalivedPidNum=`ps -C keepalived --no-header |wc -l`             
if [ $nxPidNum -eq 0 ];then                             
    /usr/local/nginx-1.10.3/sbin/nginx  
    sleep 3  
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then  
       killall keepalived                     
    elif [$keepalivedPidNum -eq 0 ];then
       service keepalived start
    fi  
elif [ $keepalivedPidNum -eq 0 ];then
    service keepalived start
fi

提示:
1.优先级不会不断的提高或者降低
2.可以编写多个检测脚本并为每个检测脚本设置不同的weight(在配置中列出就行)
3.不管提高优先级还是降低优先级,最终优先级的范围是在[1,254],不会出现优先级小于等于0或者优先级大于等于255的情况
4.在MASTER节点的 vrrp_instance 中 配置 nopreempt ,当它异常恢复后,即使它 prio 更高也不会抢占,这样可以避免正常情况下做无谓的切换

vrrp_instance
vrrp_instance VI_1 {
state MASTER #状态只有MASTER和BACKUP两种,并且要大写,MASTER为工作状态,BACKUP是备用状态。
interface eth0
virtual_router_id 30 #虚拟路由标识,同一个vrrp_instance的MASTER和BACKUP的vitrual_router_id 是一致的,同一组.
priority 200 #优先级,同一个vrrp_instance的MASTER优先级必须比BACKUP高。对于上面vrrp_script修改的优先级,就是这个
advert_int 1 #MASTER 与BACKUP 负载均衡器之间同步检查的时间间隔,单位为秒。
authentication {
auth_type PASS #验证authentication。包含验证类型和验证密码。类型主要有PASS、AH 两种,通常使用的类型为PASS,\
auth_pass 1111 据说AH 使用时有问题。验证密码为明文,同一vrrp 实例MASTER 与BACKUP 使用相同的密码才能正常通信。
}
track_script {
check_nginx
}在 vrrp_script 部分指定的名字。定期运行它们来改变优先级,并最终引发主备切换。
virtual_ipaddress { #虚拟ip地址,可以有多个地址,每个地址占一行,也就是咱们上图画的150的ip
192.168.23.150
}
}
默认配置中还有一些其他的,但是我们用不到,所以就不做阐述了

0
0
查看评论

keepalived配置文件详解

keepalived既可以作为HA热备,也能作健康检查。 1,安装keepalived 2,把配置文件复制到/etc/keepalived/路径下,cp /usr/share/doc/keepalived/examples/ldirectord.conf.example /etc/keepali...
  • jibcy
  • jibcy
  • 2012-08-03 10:50
  • 28086

keepalived 配置文件参数详解

global_defs 全局配置 vrrpd 1. vrrp_script添加一个周期性执行的脚本。脚本的退出状态码会被调用它的所有的VRRP Instance记录。 2. vrrp_sync_group将所有相关的VRRP实例定义在一起,作为一个VRRP Group,如果组内的任意...
  • mofiu
  • mofiu
  • 2017-08-03 18:53
  • 1008

Keepalived配置文件说明

#全局定义块 global_defs { notification_email { email email } notification_email_from email smtp_server host smtp_connect_timeout num lvs_id string...
  • torycatkin
  • torycatkin
  • 2014-07-20 17:44
  • 311

keepalived.conf配置详解

文章转自: http://luov.net/2012/09/keepalived-config.html http://www.07net01.com/linux/keepalived_confpeizhixiangjie_60939_1359451887.html globa...
  • shmnh
  • shmnh
  • 2014-12-18 05:34
  • 1200

【Linux运维-集群技术进阶】keepalived工作原理和配置文件解析

keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障,它可以自动检测集群中服务器的健康状况,比如主从模式时,当主服务器发生故障时,Keepalived会根据服务器的VRRP优先级来选举一个从服务器成为主服务器,实现主...
  • u010028869
  • u010028869
  • 2016-01-27 21:35
  • 2282

简述策略模式

事例一个每天打饭的时候,都会打一个荤菜和一个素菜和一人饭。饭固定,一个人一块,素菜也是固定的,只要1.6元而荤菜则根据不同菜品和不同重量来计算。鸭肉需要1.5块一两,鸡肉需要2块一两,猪肉1.8块一两。换算到java中,我们要计算中午饭多少钱,可以用如下方式。public class PriceCl...
  • ddxxii
  • ddxxii
  • 2017-09-17 19:46
  • 184

修改Keepalived配置文件位置以及重定向Keepalived日志的输出路径

上一篇博文主要讲述了如何使用Keepalived实现tomcat服务器的双机热备。这篇博文是对上一篇博文的扩展,主要讲述如何修改Keepalived的默认配置文件的路径以及重定向Keepalived日志的输出路径。关于如何安装keepalived以及keepalived的安装路径问题,请参考上一篇博...
  • u013256816
  • u013256816
  • 2015-10-23 08:58
  • 13137

简述23种java设计模式之策略模式(strategy)

通过学习java设计模式,了解到之一的策略模式,我们通过一个 简单的例子来分析一下策略模式及他的好处。 首先我们举一个鸭子的例子,我们先创建一个鸭子类Duck,并写两个它的功能。注意我们把这个类写成抽象类,因为我们后面要有不同的鸭子来继承它。这里我写了一个抽象方法,为了后面继承实现时的一些逻辑操作...
  • HeBiaoBiaoBiao
  • HeBiaoBiaoBiao
  • 2016-10-11 19:03
  • 504

keepalive 在openstack nova kvm中的应用

在一些项目中,会遇到到HA相关的问题,而keepalive是一个应用广泛的功能模块,随着openstack在云计算中的普通,越来越多的项目迁移进了openstack创建的kvm环境中。
  • linzhaolove
  • linzhaolove
  • 2016-02-27 14:05
  • 1715

简单DMA介绍

http://blog.csdn.net/eastmoon502136/article/details/8502087     最早接触DMA的时候是大三的微机原理,当时不是很理解,什么DMA模式啊,只知道是传输速度快,不经过CPU,但是到底是怎么样的不经过CPU呢?还是不理...
  • fzs333
  • fzs333
  • 2015-12-23 20:44
  • 898
    个人资料
    • 访问:144183次
    • 积分:11500
    • 等级:
    • 排名:第1598名
    • 原创:188篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4088条
    博客专栏