今天我们将介绍利用keepalived构建高可用MySQL-HA,两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务功能来实现MySQL故障时自动切换。 AD: 192.168.1.202关于MySQL-HA,目前有多种解决方案,比如heartbeat、drbd、mmm、共享存储,但是它请看如下
今天我们将介绍利用keepalived构建高可用MySQL-HA,两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务功能来实现MySQL故障时自动切换。
AD:
192.168.1.202关于MySQL-HA,目前有多种解决方案,比如heartbeat、drbd、mmm、共享存储,但是它们各有优缺点。heartbeat、drbd配置较为复杂,需要自己写脚本才能实现MySQL自动切换,对于不会脚本语言的人来说,这无疑是一种脑裂问题;对于mmm,生产中很少有人用,且mmm管理端需要单独运行一台服务器上,要是想实现高可用,就得对mmm管理端做HA,这样无疑又增加了硬件开支;对于共享存储,个人觉得MySQL数据还是放在本地较为安全,存储设备毕竟存在单点隐患。使用MySQL双master+keepalived是一种非常好的解决方案,在MySQL-HA中,MySQL互为主从关系,这样就了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务功能来实现MySQL故障时自动切换。
下面,我把即将上线的一个生产中的架构与大家分享一下,看一下这个架构中,MySQL-HA是如何实现的,拓扑如下
测试
停止MySQL服务,看keepalived健康检查程序是否会触发我们编写的脚本
三、测试
MySQL远程登录测试
我们找一台安装有MySQL客户端的windows,然后登录VIP,看是否能登录,在登录之两台MySQL服务器都要授权允许从远程登录
后话:,都不具备绝对的完美,就像的MySQL-HA一样,keepalived只能做到对3306的健康检查,但是做不到比如像MySQL复制中的slave-SQL、slave-IO进程的检查。所以要想做到一些细致的健康检查,还得需要借助额外的工具,比如nagios,然后用nagios实现短信、邮件报警,从而能够有效地解决问题。
【编辑推荐】
tags:192.168.1.20