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

  1. 的真实IP为10.10.36.112, 虚拟IP为10.10.36.201和10.10.36.202,mysql
  2. 的真实IP为10.10.36.113,虚拟IP同样是10.10.36.201和10.10.36.202。
    安装完mmm后首先要对mmm monitor进行配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    cat /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
    接着是配置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
    24
    25
    26
    27
    28
    29
    30
    cat /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.112上的agent上的mmm_agent.conf的配置
    1
    2
    3
    cat /etc/mysql-mmm/mmm_agent.conf
    include mmm_common.conf
    this mysql_db1
    下面是10.10.36.113上的agent的mmm_agent.conf的配置
    1
    2
    3
    cat /etc/mysql-mmm/mmm_agent.conf
    include mmm_common.conf
    this mysql_db2
    这些都配置完成了,首先是启动2个mysql服务,同时都启动slave。然后各自启动mmm_agent服务。最后是启动mmm_monitor服务。
    启动完成后mmm_monitor进行相关事务:
    首先是启动监控2个agent服务,启动方式为mmm_contorl set_online mysql_db1以及mmm_control set_online mysql_db2
    启动结果我们可以通过mmm_control show来进行展示,也可以检查监控的状态,mmm_contorl checks来检测现在监控的状态。