til
TIL: MHA - MySQL Master High Availability
주먹불끈
2024. 2. 22. 22:05
개요
외부 스터디를 하다 MHA를 알게되었다. 이에 간단히 정리를 해둔다. 참고링크와 ChatGPT에 기반하여 정리하여 본다.
참고 링크: https://hoing.io/archives/9175
MHA
MHA(Master High Availability)는 MySQL 데이터베이스의 고가용성을 위해 설계된 솔루션이다. 현 Facebook의 Yoshinori Matsunobu가 개발였으며, GPL v2 라이센스 기반 오픈소스이다. MHA의 주 목적은 MySQL 서버의 마스터 장애 발생 시 자동으로 또는 수동으로 슬레이브 서버를 새로운 마스터로 승격시켜 서비스 중단 시간을 최소화하고 데이터의 지속적인 가용성을 보장하는 것이다.
MHA 주요 특징
- 자동 장애 복구: 마스터 서버에 장애가 발생하면 자동으로 슬레이브 중 하나를 새 마스터로 승격시키고, 나머지 슬레이브 서버들의 복제 설정을 새 마스터에 맞게 조정한다.
- 데이터 손실 최소화: 슬레이브 서버들 중 가장 최신의 데이터를 보유한 서버를 새 마스터로 선택한다.
- 빠른 장애 복구 시간: 장애 복구 프로세스를 자동화하여 수동 복구에 비해 복구 시간을 크게 단축시킨다.
MHA 구성 요소
- MHA Manager: 장애 감지, 복구 작업 실행, 마스터 승격 등의 작업을 담당한다. 이 컴포넌트는 관리 노드에서 실행된다.
- MHA Node: 각 MySQL 서버(마스터 및 슬레이브)에 설치되며, 로컬 복제 로그를 관리하고, 필요 시 MHA Manager에 의해 실행된 작업을 수행합니다.
MHA 사용 시 고려 사항
- 네트워크 구성: MHA를 효과적으로 사용하기 위해서는 신뢰할 수 있는 네트워크 인프라가 필요하며, 마스터와 슬레이브 간에는 지연 시간이 최소화되어야 한다.
- 백업 및 모니터링: 고가용성 환경에서는 정기적인 백업 및 강력한 모니터링 솔루션도 중요하다. MHA는 장애 복구를 자동화하지만, 모든 가능성에 대비한 별도의 백업은 필수이다.
- 테스트 및 검증: 실제 운영 환경에 MHA를 도입하기 전에, 광범위한 테스트를 통해 복구 절차가 기대대로 작동하는지 검증해야 한다.
참고. GPL v2 라이센스
GPL v2는 오픈 소스 소프트웨어 라이센스로, 소프트웨어의 자유로운 사용, 복사, 배포를 허용한다. 하지만 모든 수정된 버전과 파생 작업은 동일한 GPL v2 조건 하에 공개되어야 하며, 이는 "Copyleft" 조건을 통해 자유 소프트웨어의 자유를 보존하기 위함이다. 라이센스 하에 배포된 모든 소프트웨어는 동일한 라이센스 조건을 따라야 하며, 이때문에 다른 라이센스와의 호환성 문제가 발생할 수 있다.
반응형