Keepalived-VRRP虚拟路由冗余协议

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   ##密码
      }
      
      ##设置VIP即虚拟IP地址
      virtual_ipaddress {
       / brd  dev  scope  label 

配置的脚本

#!/bin/bash

kkk=`/usr/local/mysql/bin/mysqld -h127.0.0.1 -pmysql_passwd -Pmysql_port -N -s -e "show databases" 2>/dev/null`

if [ ! -z "$kkk" ]; then
    exit 0		##表示服务正常
else
    exit 1		##表示服务有报错
fi

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

你可能感兴趣的:(linux,keepalived,linux)