mysql-mmm 实现服务的高可用性

mysql-mmm 实现服务的高可用性

                MMM(Master-Master replication manager for Mysql)是一套灵活的脚本程序,用来
对mysql replication 进行监控和故障迁移,并能管理mysql Master-Master 复制的配置(同一时间只有一个节点是可写的)。附带的工具套件可以实现多个slaves 的read 负载均衡,因此你可以使用这个工具移除一组服务器中复制延迟较高的服务器的虚拟IP,它还可以备份数据,两节点之间再同步等等。
             Mysql-mmm 是一套脚本程序,基于perl 实现,通过不同的perl 脚本实现对mysql 服务器的管理与维护。它仅仅是一个管理程序,自己本身并不提供mysql 服务功能。被管理的mysql server 机需要安装相关的agent 脚本,mysql-mmm 的监控端可以监管所以安装过此脚本的mysql server。当出现多台可写mysql server 时,mmm 可以保证在同一时间点只使用一台mysql server 进行写入操作,以保证数据有效性,防止写入冲突。所以它并不适用于有大并发写入要求的生产环境。相反,当有多台可读mysql server 存在时,它可以通过一些其他软件的配合,实现负载均衡方式的读取,大大提高mysql server 的读性能。在运行过程中,如果某一台mysql server 处于不可用状态时,mmm 可以将原有操作请求迁移至其他可用mysql,从而实现服务的高可用性。包括写请求迁移,读请求迁移,主从同步的master 迁移。Mysql-mmm 同时也提供了一套很好用的运维管理工具,可以实现简单快捷的数据备份与维护。简化管理员的日常维护成本。

mysql-mmm组成与原理

Mysql-mmm 的管理功能主要通过三个脚本来实现

mmm_mond


        监控进程,负责所有的监控工作,决定和处理所有节点角色活动 。此脚本需要在监管
机上运行。


mmm_agentd


        运行在每个mysql 服务器上的代理进程,完成监控的探针工作和执行简单的远端服务
设置 。此脚本需要在被监管机上运行。


mmm_control 

 一个简单的脚本,提供管理mmm_mond 进程的命令


mysql-mmm 的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读
VIP,通过监管的管理,这些IP 会绑定在可用mysql 之上,当某一台mysql 宕机时,监管
机会将VIP 迁移至其他mysql。在整个监管过程中,需要在mysql 中添加相关授权用户,以便让mysql 可以支持监理机的维护。授权的用户包括一个mmm_monitor 用户和一个mmm_agent 用户,如果想使用mmm 的备份工具则还要添加一个mmm_tools 用户。

你可能感兴趣的:(mysql,mysql-mmm)