Table of Contents |
---|
Info |
---|
DRX 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. 지원 플랫폼
...
2 이상 버전에 대한 사용자 가이드 입니다. |
필요성
WAN 환경에서는 실시간 복제 데이터를 전송하는데 있어서 다음과 같은 점들이 장애요소 입니다.
- WAN 구간 전송 대역폭은 로컬 I/O 복제 대역에 비해 매우 낮기 때문에 데이터 처리량이 저하되어 기본적으로 복제지연이 있습니다.
- WAN 에서의 전송 프로토콜(TCP/IP)은 전송 지연 및 패킷 손실이 발생될 수 있기 때문에 재 전송에 따른 지연이 심화될 수 있습니다.
이 문제들이 해소되지 못한 채 WAN 복제를 운영할 경우, 심각한 복제 지연을 피할 수 없으며 복제 지연에 따른 반복적인 동기화 상태로의 진입은 최신 복제 상태로 유지하기 어렵게 됩니다.
DRX는 낮은 전송대역에서 복제를 수행하기 위한 충분한 수준의 데이터 버퍼링을 구현하여 복제 I/O 부하를 완충하는 기능을 수행합니다. 또한 데이터 압축을 통한 실시간 데이터 중복제거를 구현하여 TCP 프로토콜이 처리해야 할 데이터 전송 비용을 최소화 시키고 WAN 구간 상의 물리적인 복제 전송시간을 단축 시킵니다. 이는 전통적인 WAN 최적화의 접근방식이며 이에 더해 압축, 암호화(AES 128 bit) 실시간 전송을 다채널로 구현하여 최적의 다채널 복제 가속을 구현합니다.
복제는 데이터를 전송함에 있어서 버퍼링을 직접 수행하기 보다는 DRX 버퍼링을 사용하여 이를 완수합니다. 커널 계층에서 대용량의 버퍼링을 수행하는 것은 시스템에 영향을 줄 수 있기 때문에 별도의 프록시(drx)로 연계하여 버퍼링 하는 것이 적절합니다.
다음 그림은 DRX와 복제 간 연동 모습입니다.
Drawio | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
네트워크 구성
DRX는 기본적으로 로컬 DRX와 원격 DRX의 2 프록시 구조로 구축합니다. 2 프록시 구간 내에서 버퍼링, 압축, 암호화의 기능을 구현하므로 복제 환경에 투명하게 기능 합니다. 이러한 투명성은 복제 환경과의 연동 시 유연함을 제공하여 다음 그림과 같이 다양하게 구성할 수 있는 뛰어난 확장성을 제공합니다.
- 로컬 구성 방식: 운영중인 환경에 복제와 DRX를 모두 설치하여 운영합니다.
- 전용 구성 방식: 별도의 DRX 전용 머신을 통해 다 채널 복제와 연동 운영할 수 있습니다.
- 복합 구성 방식: 로컬 방식과 전용 방식을 혼합하여 운영할 수 있습니다.
Drawio | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|