...
DRX 를 구성하는 환경에 대한 다음 항목들의 사전조사를 통해 버퍼 운영 정책을 결정하고 DRX 가 구동하는데 적합한 사양과 설정을 결정합니다.
2.1. 운영환경 사전조사
2.1.1. 운영체제
- Windows 2008 이상 64비트, Linux CentOS 6.4 이상 64비트 플랫폼을 지원합니다.
2.1.2. 운영머신 최소 사양
- 최소 1GHz 이상의 x86/x64 호환 프로세서(2GHz 이상 권장), 최소 4 core 이상 권장
- 최소 4G 이상 물리메모리
- 최소 10GB 용량 디스크
2.1.3. 복제 리소스 개수
- 최대 100 채널
2.1.4. 운영서버 I/O 부하 측정
다음의 절차를 통해 운영서버의 I/O 부하도를 측정합니다.
- 운영서버 복제 대상 디스크의 읽기/쓰기 I/O 데이터 측정 (최소 1~4주 기준 평균/peak I/O)
- 측정 방법
- Windows : 성능모니터 도구 이용 디스크 I/O 데이터 취합
- Linux: iostat 등 유틸리티 이용 디스크 I/O 데이터 취합
- 측정결과에 따라 버퍼운영 정책 결정
- 2.3. 버퍼 운영 정책 참고
- 압축, 암호화 정책 결정
2.1.5. 복제 대역
- 최소 10Mbps~100Mbps 요구
2.2. DRX 구성 방식
운영환경의 I/O 부하도 및 압축 사용 여부에 따라 구성방식을 결정합니다. 로컬 구성 방식이 일반적이나 복제 부하가 크고 WAN 구간 가속이 필요할 경우 전용 구성 방식을 권장합니다.
2.3. 버퍼 운영 정책
- DRX의 물리적 버퍼 사양 계측을 위해 네트워크 대역, 운영 머신 I/O 부하도에 대한 사전조사가 필요합니다.
- 사전 조사 항목
- 운영머신의 리소스당 평균 I/O 양
- 최대 I/O 양
- 최대 I/O 지속시간
- 운영 머신의 평균 I/O 와 최대 I/O 의 수치는 적절한 버퍼링 환경을 구축하기 위한 근거 자료가 됩니다.
- 사전 데이터 미확보 시 하기 3번 case 기준의 권장 버퍼 사양에 따라 구성 후 운영 및 버퍼 크기에 대한 조정(튜닝) 과정이 필요 합니다.
case | 버퍼 | 비고 | |
---|---|---|---|
1 | 평균 I/O < 대역폭 < 최대 I/O | (최대 I/O - 대역폭) * 최대 I/O 지속시간 | 예) 평균 50MB/s I/O, 100Mbps 대역폭, 최대 200MB/s, 최대 I/O 10초간 지속 (200MB/s - 약 10MB/s) * 10초 = 약 2GB |
2 | 대역폭 < 평균 I/O < 최대 I/O |
| |
3 | 평균 I/O < 최대 I/O < 대역폭 |
| 예)1Gbps 대역폭, 1G Buffer = 최대 100MB/s I/O를 약 10초간 유지 가능 |
2.3.1 혼잡 정책
- 혼잡상태란 복제부하가 가중되어 DRX의 버퍼링할 여유공간이 남아 있지 않아 버퍼링이 불가한 상태를 의미합니다.
- 혼잡(congestion)정책: DRX의 버퍼가 혼잡상태에 진입할 경우 DRBD에서 대응하는 정책입니다.
- 혼잡정책 설정 방법
Code Block title drbd.conf resource r0 { proxy { memlimit 1G: } net { on-congestion pull-ahead; congestion-fill 950M; } }
- memlimit : DRX 버퍼
- on-congestion : 혼잡정책 설정
- congestion-fill : 혼잡인지 시점 설정, 위 예시에서 950M 바이트 데이터가 버퍼링되는 시점을 혼잡시점으로 인지
- 혼잡상황에서의 DRBD의 대응 정책은 3가지이며 WAN 구간 비동기 복제 운영 시에는 Ahead 모드의 설정을 권고 합니다.
- Block: 버퍼가 비워질 때 까지(버퍼의 큐잉할 수 있을 때까지) I/O 대기 합니다. (기본값)
- Disconnect: 복제 연결을 단절합니다. (StandAlone 상태로 진입), Linux DRBD 미지원
- Ahead: 지연 복제 모드 진입. (복제 연결은 유지하되 복제는 중단, 로컬 I/O 는 oos 로 기록), 혼잡 해제 시 oos 에 대한 리싱크 수행.
2.3.2. 버퍼 조정 가이드
- DRBD의 Ahead 모드(지연복제) 비동기 복제 구성을 전제로 합니다.
- 복제 연결이 유지되는 구간의 측정치에 대해서만 고려합니다.
- 24~72시간 기준으로 다음의 방법을 통해 DRBD가 Ahead 모드로 진입하는 회수(혼잡 진입 회수)를 취합합니다.
- drbd 로그상의 "Congestion-fill threshold reached" 의 출력 회수 취합
- drbdsetup events2 명령을 통한 Ahead 진입 회수 확인
- 취합한 혼잡진입 회수를 기준으로 버퍼의 크기 사양의 적절성을 판단합니다.
- 혼잡빈도가 잦은 경우 후속 리싱크 구간의 증가로 인해 원격지 데이터가 Inconsistent 가 되는 빈도가 높을 경우 버퍼 크기의 증설을 고려합니다.
- 버퍼를 증설 했음에도 혼잡구간이 빈도가 낮아지지 않을 경우 압축에 대해 고려합니다.
2.3.3. 물리 메모리 사양
- WAN 100Mbps 대역폭, 최대 I/O 200MB/s , 최대 I/O 지속시간 10초 기준
...