keepalive的工作原理:

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组

这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内

其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了

这时就需要根据VRRP的优先级来选举一个backup当master。这样就可以保证路由器的高可用了

三个模块的作用:

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、

维护及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式,vrrp模块是来实现VRRP协议的

Keepalived健康检查方式配置

MySQL高可用

请先配置:

基础环境:

基于MySQL互为主从(双主、主主)

主的操作

1.在keepalived主服务器上安装keepalived

yum -y install keepalived

2.编辑配置文件

vim /etc/keepalived/keepalived.conf

内容更改如下:

vrrp_instance VI_1 {
state MASTER\\初始状态:MASTER/BACKUP
interface eth0\\生成VIP的网卡设备
virtual_router_id 51\\广播的路由ID
priority 100\\优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.xxx.181\\VIP地址
}
}
virtual_server 192.168.xxx.181 3306 {\\虚拟机服务器
delay_loop 6
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.xxx.120 3306 {\\真实服务器
weight 1
notify_down /root/kill.sh\\当检测的真实服务器器3306端口不可用时,要执行的脚本
TCP_CHECK {
connect_timeout 3
connect_port 3306\\检测的端口
nb_get_retry 3
delay_before_retry 3
}
}
}

以后的配置不需要可以删除

3. 生成停止mysql的脚本

vim /root/kill.sh

内容:

#!/bin/bash

service keepalived stop

4.脚本保存退出后重启keepalived

service keepalived restart

5.查看VIP是否生成

ip a

备份主机的操作

操作和主基本一致,需要更改的有:初始状态、优先级、真实服务器ip地址

1.复制主的keepalived的配置文件到服务器

scp 192.168.xxx.120:/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

2.编辑配置文件

vim /etc/keepalived/keepalived.conf

注意如下配置:

vrrp_instance VI_1 {
state BACKUP
interface eth0
priority 90 #记住要小于master的优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.xxx.181\\VIP地址
}
}
virtual_server 192.168.xxx.181 3306 {\\虚拟机服务器
delay_loop 6
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.xxx.121 3306 {\\真实服务器
weight 1
notify_down /root/kill.sh\\当检测的真实服务器器3306端口不可用时,要执行的脚本
TCP_CHECK {
connect_timeout 3
connect_port 3306\\检测的端口
nb_get_retry 3
delay_before_retry 3
}
}
}

以后的配置不需要可以删除

3. 生成停止mysql的脚本

vim /root/kill.sh

内容:

#!/bin/bash

service keepalived stop

4.更改完毕后重启keepalived

service keepalived restart

测试

停止主的mysql查看 VIP是否漂移到备份主机上,如成功漂移则是配置成功。