Keepalived

编程入门 行业动态 更新时间:2024-10-12 10:17:26

<a href=https://www.elefans.com/category/jswz/34/1749822.html style=Keepalived"/>

Keepalived

Keppalived概念:keepalived是以VRRP协议为基础实现的,VRRP全称VirtualRouterRedundancyProtocol,中文名为虚拟路由冗余协议,VRRP的出现就是为了解决静态路由的单点故障问题,VRRP是通过一种竞选机制来将路由的任务交给某台VRRP路由器的。

在两个负载均衡调度器上安装Keepalived以实现高可用的目的。
两个调度器之间通过VRRP协议来保证高可用性,当一台调度器宕机时,另一台备用的立即接替原主机服务,当主机被修复之后又将服务返还给主机。

Keepalived故障切换原理:在主节点正常工作的时候,会不断地向备节点广播心跳消息,用来告诉备节点自己还活着,当主节点发生故障的时候,备节点就无法收到主节点广播的消息,即可判定主节点发生故障,进而调用自身的接管程序,接管主节点的IP资源及服务。而当主节点被修复时,备节点会释放主节点故障时自己所接管的IP资源和服务,恢复到原来备用的角色。

两个节点都为BACKUP节点,优先级一样,谁先启动谁就是主节点

配置文件详解

global_defs {	##全局定义,对整个Keepalived起作用router_id MySQL-HA	##运行Keepalived的机器的标识
} ##配置虚拟路由器
vrrp_instance 名字 {state MASTER/BACKUP  ##主/备interface IFACE_NAME  ##绑定为当前虚拟路由器使用的物理接口;virtual_router_id VRID  ##当前虚拟路由器的惟一标识,范围是0-255;priority 100  ##当前主机在此虚拟路径器中的优先级;范围1-254;advert_int 1  ##vrrp通告的时间间隔;主备间通告时间检查的时间间隔,单位为s,默认1s##配置认证authentication {auth_type AH|PASS		##加密认证|明文认证auth_pass <PASSWORD>  ##密码}##设置VIP即虚拟IP地址virtual_ipaddress {<IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>192.168.200.17/24 dev eth1192.168.200.18/24 dev eth2 label eth2:1}##配置要监控的网络接口,一旦接口出现故障,则转为FAULT状态;track_interface {eth0eth1nopreempt:定义工作模式为非抢占模式;preempt_delay 300:抢占式模式下,节点上线后触发新选举操作的延迟时长;}}##配置业务进程脚本
vrrp_script check_run {	
script "/home/mysql/mysql_check.sh"		##设置脚本文件名
interval 60		##设置脚本执行的时间间隔
fall 2		##定义检测失败的最大次数,表示当请求失败几次时就认为节点资源故障
rise 1		##定义请求成功的次数,表示当进行几次请求成功后就认为节点资源恢复正常
}vrrp_sync_group VG1 {
group {		##设置同一组中的vrrp实例名
VI_1
}
}
##vrrp_sync_group配置VRRP同步组。不使用Sync Group的话,如果机器有两个网段,一个内网一个外网,每个网段开启一个VRRP实例。假设VRRP配置为检查内网,那么当外网出现问题时,VRRPD认为自己仍然健康,那么不会触发Master和Backup的切换,从而导致问题。Sync Group解决这个问题,可以把两个实例都放进一个Sync Group,这样的话,Sync Group里面任何一个实例出现问题都会发生切换vrrp_instance VI_1 {state BACKUP		##实例出事状态interface ens32  	##实例绑定的网卡virtual_router_id 51		##VRID标记,值为0-255priority 90  	##优先级advert_int 1	##检查间隔nopreempt		##不发生抢占authentication {		##认证类型和密码auth_type PASS		##认证类型auth_pass 1234		##铭文认证密码}##vrrp_instance配置VRRP实例。VRRP实例表示在上面开启了VRRP协议。这个实例说明了VRRP的一些特性,比如主从、VRID等等。可以在每个网卡上开启一个实例。VRRP实例主要定义vrrp_sync_group里面的每个组的漂移IP等。track_script {		##设置追踪脚本,调用vrrp_script使之生效check_run		##调用vrrp_script中定义的脚本}##定义通知脚本notify_master /home/mysql/master.sh		##当切换到master时执行的脚本notify_stop /home/mysql/stop.sh		##vrrp停止以后执行的脚本notify_backup /home/mysql/backup.sh		##当前节点转为备节点时触发的脚本;notify_fault /home/mysql/fault.sh		##当前节点转为“失败”状态时触发的脚本;notify /home/mysql/general.sh		##通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知;virtual_ipaddress {		##指定漂移地址172.16.1.100/24	##不加掩码,默认是32位的}
}

配置的脚本

#!/bin/bashkkk=`/usr/local/mysql/bin/mysqld -h127.0.0.1 -pmysql_passwd -Pmysql_port -N -s -e "show databases" 2>/dev/null`if [ ! -z "$kkk" ]; thenexit 0		##表示服务正常
elseexit 1		##表示服务有报错
fi

当查看数据库里有哪些库时报错时,keepalived就会自动转移VIP到正常的backup节点

更多推荐

Keepalived

本文发布于:2024-02-25 00:54:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1697253.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Keepalived

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!