Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

1.1. 사용 목적

DRX(Data Replication Xcelerator)는 WAN 구간(원거리) 데이터 복제를 위한 DRBD 연동 프록시 솔루션 입니다.

DRBD의 비동기 방식(A type) 복제는 기본적으로 동기 방식에 비해 로컬 I/O 응답 성능이 좋습니다. 그러나 비동기 복제는 복제 데이터를 원격으로 전송한 시점에 복제를 수행한 것으로 간주하고 로컬 I/O 를 완료하기 때문에 데이터 전송의 성공 여부에 따라 로컬 I/O 응답성능에 영향이 있을 수 있습니다. 만약 송신버퍼에 여유공간이 없어서 TCP 소켓 버퍼로 데이터 복사가 지연되면 로컬 I/O의 대기(block)가 발생하게 됩니다. 즉, 송신 버퍼의 크기와 버퍼의 여유공간이 로컬 I/O 응답성능에 영향을 주게 됩니다. 일반적으로 TCP 소켓 송신 버퍼는 제한된 크기를 가지기 때문에 소켓 버퍼의 여유공간은 다량의 복제 데이터를 처리하기에는 상시 부족하며 따라서 로컬 I/O 쓰기 요청이 급격히 발생하게 되면 복제가 동반된 로컬 I/O의 응답성능 저하는 피하기 어렵습니다. 이러한 I/O 응답성능 저하 문제는 DRX의 버퍼링 메커니즘을 사용하여 극복할 수 있습니다. 

DRX는 DRBD 송신부와 TCP 소켓 채널을 직접 연결하여 Primary 노드의 변경된 데이터를 즉시 수용하고 DRX 내부에서 버퍼링함으로써 로컬 I/O가 대기하는 문제를 해소하고 로컬 응용프로그램의 쓰기 성능저하 현상을 큰폭으로 개선합니다.

DRX의 버퍼링은 시스템이 제공하는 메모리 아키텍처 상의 주소 공간과 사용 가능한 실제 물리메모리의 한도 내에서 자유롭게 구성할 수 있습니다. 만약 DRX의 버퍼 크기를 초과하는 데이터를 수용해야 하는 혼잡(full)상황에 이를 경우 DRX는 이에 대해 능동적으로 처리하지 않기 때문에 DRBD 가 스스로 혼잡을 인지하고 지연복제(Ahead mode)로 구동할 수 있도록 설정해야 합니다. 통상 DRX 와 DRBD를 연동할 경우 지연복제 모드를 기본구성으로 하는 것은 필수적입니다.

또한 DRX는 원격지 데이터의 가용성 증대를 위해 데이터 가속(압축)기능을 제공하여 타겟 RPO(Recovery Point Objective)를 큰 폭으로 개선할 수 있습니다. 그리고 원거리 복제의 특성상 고객의 중요 데이터가 WAN 구간을 경유하여 노출되는 상황에 대비할 수 있도록 데이터 암호화 기능을 동시에 제공합니다.

다음 그림은 DRX와 DRBD 간 버퍼링 연동 모습입니다.

  • DRX 버퍼링은 WAN 구간을 경유하기 이전 시점에 로컬 DRX로 부터 수행되며 원격 DRX에선 버퍼링 할 필요가 없습니다.

1.2. 고려 사항

DRX는 DRBD를 설치한 시스템에서 동작하거나 전용 서버에 설치하여 동작합니다. 또한 DRX 인스턴스는 여러 노드에 분산된 DRBD 디바이스에 프록시 역할을 할 수 있습니다. 일반적으로 송신 시점에 데이터 패킷이 몰릴 경우를 대비하여 DRBD의 Activity Log를 충분한 용량으로 미리 설정해야 합니다. 만약 송신 시점에 과도한 데이터 패킷이 처리되는 도중 Primary 노드가 손상되어 Primary 노드가 재 기동 된다면 다량의 Activity Log가 OOS로 설정되어 장시간 동안 재 동기화 될 수 있습니다. 이러한 장시간 동기화가 발생하는 게 우려된다면 DRBD의 csums-alg 설정을 활성화하는 것이 좋습니다.

1.3. 지원 플랫폼

플랫폼OS 버전
WindowsWindows 2008 이상 64비트
LinuxCentOS 6.4 이상 64비트