MySQL + KeepaLived 高可用
1. 基础环境
两台服务器,MySQL互为主从
MASTER 的 IP:10.0.0.11
BACKUP 的 IP:10.0.0.12
2.MASTER 实操
yum -y install keepalived cd /etc/keepalivedcp keepalived.conf keepalived.conf.bakvim keepalived.conf
vrrp_instance VI_1 { state MASTER # 主机的初始身份:MASTER/BACKUP interface eth0 # VIP绑定网卡设备 virtual_router_id 51 # 路由广播ID,同步ID可以接受广播 priority 100 # 优先级,越大优先级越高,主的初始优先级必须要大于备份的主机 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.90 # VIP地址 }}virtual_server 10.0.0.90 3306 { # 虚拟服务器,IP地址是VIP,端口是对应服务的端口 delay_loop 6 nat_mask 255.255.255.0 protocol TCP real_server 10.0.0.11 3306 { # 真实服务器的ip和端口 weight 1 notify_down /tmp/kill.sh # 检测到down状态时要执行的脚本,内容为停止keepalived TCP_CHECK { # 健康检查模块,通过TCP检查 connect_port 3306 # TCP要检查的端口 connect_timeout 3 # 超时时间 nb_get_retry 3 # 重试次数 delay_before_retry 3 # 检查轮询周期时间 } }}
配置文件结束,保存退出
创建脚本
vim /tmp/kill.sh
#!/bin/bashservice keepalived stop
重启 keepalived 服务
service keepalived restart
查看 VIP 是否生成
ip a
3. BACKUP 实操
yum -y install keepalived cd /etc/keepalivedcp keepalived.conf keepalived.conf.bakvim keepalived.conf
vrrp_instance VI_1 { state BACKIP # 主机的初始身份:MASTER/BACKUP interface eth0 # VIP绑定网卡设备 virtual_router_id 51 # 路由广播ID,同步ID可以接受广播 priority 90 # 优先级,越大优先级越高,主的初始优先级必须要大于备份的主机 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.0.0.90 # VIP地址 }}virtual_server 10.0.0.90 3306 { # 虚拟服务器,IP地址是VIP,端口是对应服务的端口 delay_loop 6 nat_mask 255.255.255.0 protocol TCP real_server 10.0.0.12 3306 { # 真实服务器的ip和端口 weight 1 notify_down /tmp/kill.sh # 检测到down状态时要执行的脚本,内容为停止keepalived TCP_CHECK { # 健康检查模块,通过TCP检查 connect_port 3306 # TCP要检查的端口 connect_timeout 3 # 超时时间 nb_get_retry 3 # 重试次数 delay_before_retry 3 # 检查轮询周期时间 } }}
配置文件结束,保存退出
创建脚本
vim /tmp/kill.sh
#!/bin/bash
service keepalived stop
重启 keepalived 服务
service keepalived restart
查看 VIP 是否生成
ip a
4. 高可用测试
master 服务器上启动 MySQL keepalived
service mysql restart
service keepalived restart
此时表示 master 服务器正在正常使用
service mysql stop
MySQL 停止,代表服务器宕机,此时去查看 Backup 的 IP
master 的 IP,已经漂浮到了 Backup 上,此时,Backup 是主