日期:2014-05-16  浏览次数:20665 次

mysql-mmm+amoeba+keepalived实现mysql高可用和读写分离(一)

mysql-mmm+amoeba+keepalived架构简介:利用mysql-mmm来实现mysql的高可用,利用amoeba来实现读写分离,利用keepalived来实现amoeba程序的高可用。从而从整体上实现mysql的高可用行。

一、MMM简介:

MMMMaster-Master Replication Manager for MySQLmysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。

MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。MMM不仅能提供浮动IP的功能,更牛的是如果当前的主服务器挂掉后,会将你后端的从自动转向新的主服务器进行同步复制,不用手工更改同步资料。

MMM项目来自 Googlehttp://code.google.com/p/mysql-master-master

官方网站为:http://mysql-mmm.org

Mmm主要功能由下面三个脚本提供

l mmm_mond 负责所有的监控工作的监控守护进程,决定节点的移除等等

l mmm_agentd 运行在mysql服务器上的代理守护进程,通过简单远程服务集提供给监控节点

l mmm_control 通过命令行管理mmm_mond进程

二、mysql-mmm架构的搭建

1、 先来看下本文的架构图:

master1出现故障的时候,架构图会自动屏蔽master1,并自动将slave1slave2更改成从master2更新,架构图变成如下:

2、 先介绍下本文的环境:

系统环境:CentOS release 5.432bit

function

ip

hostname

server id

Monitor