mysql MHA + keepalived 实现高可用

MHA实现了mysql 的自动故障切换,但是切换后还需要手工修改应用的访问ip。

原文:http://bananalighter.com/mysql-master-ha-solution-one-master-one-candidate-master-and-multiple-slaves-configuration/

本文将配置keepalived与MHA一起工作,实现对mysql应用的透明高可用。

一、确定工作模式

MHA是检测mysql进程状态,自动连接备用机进行切换。

keepalived是检测keepalived的进程状态,自动将虚拟IP切换到备机。

因此在故障切换时,需要先切换mysql,等备机的mysql服务可用以后切换虚拟IP。

二、工作方式

MHA完成mysql master的切换后,调用“master_ip_failover”脚本杀死keepalived进程,触发keepalived切换虚拟IP。

1.修改/etc/masterha_default.cnf

2.配置keepalived

直接使用官方源安装keepalived。

编辑/etc/keepalived/keepalived.conf

MASTER的配置文件:

candidate MASTER的配置文件

三、配置masterha的ip failover脚本

新建文件:/script/masterha/master_ip_failover

四、使用测试

1.起keepalived

2.起mysql(注意,mysql的master ip应该配主机地址)

3.停master的mysql

4.测试failover是否成功

使用其他机器通过虚地址228登陆mysql

能登陆,成功了。

5.检查两台备机的情况

candidate master(211):

已经成功升主。

slave(227):

已经将主切换为211.

测试成功,大功告成。

 

 

 

 

 

 

 

 

 

 

  1. 正常情况下没有问题, 如果master主机直接宕机的情况, keepalived会立即触发,vip也会立即应用到备用主机上。