가장 큰 차이점은 MMM(Multi-Master Replication Manager For MySQL)는 데이터 정합성이 보장되지 않을 수 있고, MHA(MHA for MySQL)은 데이터 정합성이 보장된다.
MMM의 구조는 아래와 같다.
Active 마스터와 Standby 마스터가 양방향 복제하고 Active 마스터만 읽기작업을 한다.
Active 마스터가 다운되면 VIP를 Standby 마스터에 할당하고 Slave의 마스터를 변경한다.
데이터 정합성이 보장되지 않는 경우는, 아래와 같은 경우에서 일어날 수 있다.
읽기 노드 중 한 곳에서 응답을 받으면 OK를 반환하게 되어있는 데, 해당 응답이 Standby 마스터가 아니라 슬레이브이고, 이 타이밍에 Active 마스터가 장애가 일어나면
위 같은 상황이 발생할 수 있다.
다음으로 MHA구조에 대해서 알아보자.
Master + Slave 구조로 모두 단 방향 복제이다.
마스터가 장애가 일어나면 가장 최신에 동기화된 슬레이브가 마스터로 승격된다.
MHA모니터가 노드 간에 차이나는 데이터를 반영시켜서 일관성을 보장한다.
# Refer
댓글 없음:
댓글 쓰기