본문 바로가기
Database/MySQL

Mysql MMM이란 (Multi-Master Manager)

by devstep 2021. 10. 6.

Mysql MMM이란

  • MMM은 Multi Master Manager로 약자로, Mysql장애 시 자동으로 failover(대체 시스템 작동)를 해주는 솔루션이다.
  • 오픈 소스 기반으로 Perl로 되어 있다.

MMM왜 필요한가?

Mysql서버를 Master-Slave로 이중화하여도 Master장애 발생 시

자동으로 Failover기능이 수행되지 않기 때문에 MMM을 도입하여 서비스 장애를 최소화함으로 DB가용성을 보장하게 한다.

MMM의 구조

  • MMM Monitor : MMM Agent 서버의 상태를 체크하고 상태에 따라 역할(reader, writer)을 관리

  • MMM Agent : MMM 에서Master(active), Master(standby) 역할을 하는 구성원. Master DB서버 자체.

  • MMM VIP : 유동적으로 Master(active) 역할을 변경할 수 있도록 구성하는 virtual IP

  • Slave는 1개 이상으로도 구성할 수 있다.

  • Master(Active)에는 Write, Read가능

  • Master(Standby), Slave에는 Read 만 가능.

주요 기능

  1. Health Check : Mysql과 Server의 상태를 체크한다.
    • 일정한 간격으로 test query수행
    • server ping 체크
    • mysqld ping 체크
  2. 자동 Failover 기능 수행
    • Master(active) 장애 발생 시 Mastser(standby)에 데이터 정합성을 위한 replicate 작업을 하고
    • VIP를 Mastser(standby)로 이동시킨다.
    • 장애가 발생한 기존 Master(active)를 복구한 후에는 Master(standby)로 운영한다

Master DB에 발생할 수 있는 장애 종류

아래 장애들이 발생 했을 때 자동 Failover가 가능하다.

  1. process 무한 증가로 인한 hang
  2. memory 부족으로 인한 hang
  3. disk 부족으로 인한 hang
  4. network 단절로 인한 장애
  5. Mysql 데몬 kill 발생 시
  6. 서버 shutdown 시

댓글