리플리케이션
Last updated
Last updated
Active-Active, Active-Standby 클러스터 구성에서는 서버 부분은 다중화할 수 있어도 저장소 부분은 다중화하지 않는 단점이 있다. 이런 상황을 대응하기 위해, DB 서버와 저장소 세트를 복수로 준비하는 것을 '리플리케이션(Replication)' 라고 한다.
리플리케이션은 DB 서버와 저장소가 동시에 사용 불능일 때, 서비스를 지속하는 것이 가능하다는 점에서 가용성이 높은 아키텍처이다.
디스크를 다중화하는 RAID
저장소 내부의 컴포넌트(대부분 하드디스크)를 다중화하는 기술을 'RAID(Redundant Array of Independent Disks)' 라고 한다. 기본적으로 클러스터링과 동일하게 단일 장애점을 제거하여, 디스크를 병렬로 나열해 한 개가 망가져도 데이터 소실이 발생하지 않게 하는 것이다.
리플리케이션에서 중요한 점은 Active 측 저장소의 데이터는 항상 사용자로부터 갱신된다는 것이다. 이 때문에 Standby 측 데이터에도 갱신을 반영하여 최신화하지 않으면 Active 측과의 데이터 정합성을 유지할 수 없다.
리플리케이션에서는 Active DB 서버에서 갱신된 데이터를 일정 주기로 Standby DB 서버에 동기화한다. 이때 Standby 갱신 주기를 얼마로 할 것인가와 성능 사이에 트레이드오프가 발생한다.
리플리케이션 구성은 '피라미드형'으로 만들 수 있어, '데이터가 오래되도 참조만 하면 된다'는 처리를 손자나 증손자 세트에서 하여 부모에 걸리는 부하를 분산할 수있다.
부모는 주인, 아들은 노예?
동기화하는 측의 부모(Active) 데이터베이스를 '마스터', 동기화되는 측의 자식(Standby) 데이터베이스를 '슬레이브' 라고 부르고, 이러 리플리케이션을 '마스터 슬레이브 방식' 이라고 지칭한다.
또한, 양쪽 모두 마스터인 쌍방향 리플리케이션 구조인 '멀티 마스터 방식' 도 존재한다.