mysql-mmm配置
最近一周主要是对mysql的mmm进行的相关测试。
它的官方网站是mysql-mmm.org
mmm其实是一个针对mysql双master的一个套件,是完全使用perl来写的。主要作用是监控2个mysql的状态和在出现问题的情况下进行IP漂移切换。不能算是完全意义上的mysql高可用。只是在传统的双master基础上加个监控和漂移,这个完全可以自己写程序来实现。因为mmm在切换过程中也会导致当前连接的丢失,而且这种模式在innodb的情况下出现故障后恢复是一个非常麻烦的问题。
mmm的主要架构是这样的,一个是mmm
monitor服务器,它来负责监控和切换,所以它的配置文件主要是进行设置如何进行监控。2个mysql服务器是客户端。但是需要配置上虚IP,所以每个mysql服务器最少有3个IP,一个真实的IP,2个虚IP。mmm monitor就是进行切换虚IP的,而不是实际的IP
安装过程就不详细说了,主要是要安装一堆perl包,如果可以cpan的话完全可以用cpan来安装,不然就自己下tar包安装,最后做个rpm包来进行安装。
下面就是整个配置流程:
首先对2个mysql配置好了双master,就是互为主备的那种模式。
首先我们定义一下各个机器的IP,mmm monitor的IP是10.10.36.111, mysql
- 的真实IP为10.10.36.112, 虚拟IP为10.10.36.201和10.10.36.202,mysql
- 的真实IP为10.10.36.113,虚拟IP同样是10.10.36.201和10.10.36.202。
安装完mmm后首先要对mmm monitor进行配置接着是配置mmm_common.conf,这个文件在monitor和agent上都是一样的。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24cat /etc/mysql-mmm/mmm_monitor.conf
include mmm_common.conf
check_period 1
trap_period 2
timeout 2
check_period 1
trap_period 2
timeout 2
ip 127.0.0.1
pid_path /var/run/mmm_mond.pid
bin_path /usr/lib/mysql-mmm/
status_path /var/lib/misc/mmm_mond.status
ping_ips 10.10.36.113,10.10.36.112
monitor_user mmm_monitor
monitor_password mmm_monitor_password
debug 0下面这个是10.10.36.112上的agent上的mmm_agent.conf的配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30cat /etc/mysql-mmm/mmm_common.conf
active_master_role writer
cluster_interface eth0
pid_path /var/run/mmm_agentd.pid
bin_path /usr/lib/mysql-mmm/
replication_user mmm_repl
replication_password mmm_repl_password
agent_user mmm_agent
agent_password mmm_agent_password
ip 10.10.36.112
mode master
peer mysql_db2
ip 10.10.36.113
mode master
peer mysql_db1
hosts mysql_db1,mysql_db2
ips 10.10.36.201
mode exclusive
hosts mysql_db1,mysql_db2
ips 10.10.36.202
mode balanced下面是10.10.36.113上的agent的mmm_agent.conf的配置1
2
3cat /etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this mysql_db1这些都配置完成了,首先是启动2个mysql服务,同时都启动slave。然后各自启动mmm_agent服务。最后是启动mmm_monitor服务。1
2
3cat /etc/mysql-mmm/mmm_agent.conf
include mmm_common.conf
this mysql_db2
启动完成后mmm_monitor进行相关事务:
首先是启动监控2个agent服务,启动方式为mmm_contorl set_online mysql_db1以及mmm_control set_online mysql_db2
启动结果我们可以通过mmm_control show来进行展示,也可以检查监控的状态,mmm_contorl checks来检测现在监控的状态。