[Database] Couchbase XDCR

Cover image

Couchbase XDCR

  • 최근 진행해야하는 작업 중 하나가, 기존 Couchbase 서버가 있는 데이터 센터에서 서버 부하 해결 및 안정성을 위해 다른 데이터 센터에 데이터를 복제를 해야할 필요성이 존재합니다.
  • 회사에서 작업하는 주 목적은 데이터 서버에 있는 Couchbase 서버가 모두 죽었을 때, 정상적으로 작동하도록 구성하는 것이 목표입니다.
  • 이를 위해서 Cross Data Center Replication (약어, XDCR)에 대해 정리합니다.

XDCR이란.

  • XDCR(Cross Data Center Replication)은 클러스터 간의 데이터를 복제하며, 데이터 센터 장애에 대한 보호 기능과 고성능 데이터 액세스 기능을 제공합니다.
  • XDCR은 source 클러스터의 특정 버킷에서 대상 클러스터의 특정 버킷으로 데이터를 복제합니다. XDCR agent를 통해 Database Change Protocol을 사용하여 버킷에서 다른 타켓 버킷으로 데이터를 넘길 수 있습니다.

XDCR과 클러스터 내부 복제와의 차이

  • 클러스터 내부 복제의 경우, 클로스터 노드 전체에 데이터를 복제하나 XDCR의 경우 다른 데이터센터에 있는 여러 클러스터에 데이터를 복제합니다.
  • 클러스터 내부 복제의 경우, 단일 버킷에 대해 수행되지만 XDCR은 복제를 위해 두 개의 버킷이 필요합니다. (하나는 복제 데이터 제공 소스 클러스터 버킷, 다른 하나는 수신 받을 대상의 클러스터)
  • 클러스터 내 복제는 버킷 생성에서 구성되지만, XDCR은 소스 버킷과 대상 버킷을 모두 생성 후에 구성됩니다.

클러스터(cluster)

  • 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합, 해당 위에서는 서버들의 집합

버킷(bucket)

  • 일반적으로 데이터가 영역으로 분할되는 document 유형입니다.

XDCR 절차

사전 작업

  • XDCR의 대상이 될 원격 클러스터에 대한 References를 정의합니다.

  • 소스 버킷에서 지장된 대상 버킷으로 변경내용을 전송하는 복제를 정의하고 시작합니다.

  • 복제를 모니터링합니다.

다음의 옵션을 사용할 수 있습니다.

  • Couchbase Web Console
  • CLI
  • REST API(Web Console, CLI)

XDCR Direction, Topology

  • 크게 전략은 단방향(Unidirectionally)와 양방향(Bidirectionally)로 구성됩니다.
  • 향후 진행할 작업은 양방향 XDCR을 구성할 방향이다.

Unidirectionally

Unidirectionally

  • 지정된 소스 버킷에 포함된 데이터가 지정된 대상 버킷에 복제되며, 일반적으로 백업 용도로 사용됩니다.

Bidirectionally

Bidirectionally

  • 지정된 소스 버킷에 포함된 데이터는 대상 버킷에 복제되고, 반대의 방향의 경우에도 적용됩니다. 해당 두 버킷을 모두 데이터 서비스용으로 사용할 수 있으며, 사용자에 좀 더 빠른 데이터 액세스를 제공할 수 있습니다.
  • 이러한 양방향 XDCR은 두 데이터 센터 이상으로도 작업할 수 있습니다.

image


마무리.

간략하게, XDCR에 대해 작성했습니다. 향후, 해당 작업 완료 후 추가적인 게시글을 작성할 예정입니다.


출처