欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 【原创】使用keepalived虚拟IP(VIP)实现MySQL的高可用故障转移

【原创】使用keepalived虚拟IP(VIP)实现MySQL的高可用故障转移

2024/10/24 23:26:38 来源:https://blog.csdn.net/qq_36724501/article/details/140753908  浏览:    关键词:【原创】使用keepalived虚拟IP(VIP)实现MySQL的高可用故障转移

1. 背景

A、B服务器均部署有MySQL数据库,且互为主主。此处为A、B服务器部署MySQL数据库实现高可用的部署,当其中一台MySQL宕机后,VIP可自动切换至另一台MySQL提供服务,实现故障的自动迁移,实现高可用的目的。具体流程如下图所示:

在这里插入图片描述
Keepalived官网:Keepalived

通过Keepalived的VIP不仅仅能实现数据库的故障转移,还可以实现很多其他的高可用故障转移业务,可自由发挥,以下是详细的部署安装教程。

2. 安装

2.1. 安装keepalived

# 安装keepalived
yum install keepalived -y 
# 设置开机启动
systemctl enable keepalived

3. 配置与启动

3.1. 配置Master

! Configuration File for keepalived# 全局配置
global_defs {# 路由ID,当前计算机结点标识符,需要保证全局唯一router_id keep_16
}vrrp_strict check_mysql_alive {script "/etc/keepalived/check_mysql_alive.sh"    # 检测脚本位置interval 2                                       # 每隔2s执行一次检测脚本weight 10                                        # 脚本运行成功,权重+10
}# 计算机结点
vrrp_instance VI_1 {# 当前节点状态,MASTER/BACKUPstate MASTER# 当前实例绑定的网卡interface ens33# 虚拟路由ID,需保证主备节点一致virtual_router_id 51# 优先级/权重,优先级高的在master挂掉之后就能成为master,一般保证主节点的优先级最高priority 100# 主备之间同步检查的时间间隔(心跳),默认1sadvert_int 1# 认证授权的密码,防止非法节点进入,需要保证主备一致authentication {auth_type PASSauth_pass 1111}# 追踪脚本,当前实例vrrp_instance实例化以后便会运行track_script {check_mysql_alive    # 对应vrrp_strict定义的名称}# 虚拟IP(VIP)virtual_ipaddress {192.168.3.20}
}

3.2. 配置Backup

# 全局配置
global_defs {# 路由ID,当前计算机结点标识符,需要保证全局唯一router_id keep_26
}# 计算机结点
vrrp_instance VI_1 {# 当前节点状态,MASTER/BACKUPstate BACKUP# 当前实例绑定的网卡interface ens33# 虚拟路由ID,需保证主备节点一致virtual_router_id 51# 优先级/权重,优先级高的在master挂掉之后就能成为master,一般保证主节点的优先级最高priority 80# 主备之间同步检查的时间间隔(心跳),默认1sadvert_int 1# 认证授权的密码,防止非法节点进入,需要保证主备一致authentication {auth_type PASSauth_pass 1111}# 虚拟IP(VIP),主备一致virtual_ipaddress {192.168.3.20}
}

3.3. 启动与测试

如上配置完成之后,启动Keepalived

systemctl start keepalived

在Server A服务器上,手动停止mysql,模拟mysql数据库宕机,查看keepalived日志,可见keepalived检测到mysql_check.sh返回非0,将keepalived置为fault,并将vip转移到Server B
在这里插入图片描述
在备用服务器Server B上,可以看到keepalived状态变为master:
在这里插入图片描述

4. FAQ

4.1. 注意

1、VIP需要采用内网中与部署服务器同一网段不会被使用空闲的一个内网IP,vip使用真实地址可通过查看arp路由表。

# 查看ARP路由表
arp

2、失败请检查日志,Keepalived默认日志文件路径为

/var/log/keepalived.log

3、内网环境需要支持VRRP协议

4.2. 配置防火墙

若测试不通过,在防火墙上开启富策略,放通keepalived广播消息发送地址192.168.3.20(这里放通整个/24网段),同时开通直连策略,放通vrrp协议

#开通富策略,放通广播消息
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 destination address=192.168.3.20/24 protocol value=ip accept'
#在直连策略中放通vrrp协议
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens224 --destination 192.168.3.20 --protocol vrrp -j ACCEPT
firewall-cmd --reload
firewall-cmd --list-all

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com