...
- DRBD의 Ahead 모드(지연복제) 비동기 복제 구성을 전제로 합니다.
- 복제 연결이 유지되는 구간의 I/O 측정치에 대해서만 계측될 수 있도록 합니다. 복제연결 단절 구간에 대한 I/O 측정치는 고려대상이 아닙니다.
- 다음의 방법을 통해 DRBD가 Ahead 모드로 진입하는 회수(혼잡 진입 회수)를 취합합니다.
- drbd 로그상의 "Congestion-fill threshold reached" 의 출력 회수 취합
- drbdsetup events2 명령을 통한 Ahead 진입 회수 확인
- 취합한 혼잡진입 회수를 기준으로 버퍼 크기를 재조정합니다. 혼잡빈도가 잦은 경우 버퍼의 크기는 더욱 증설되어야 합니다.
- 버퍼를 증설 했음에도 혼잡구간이 빈도가 낮아지지 않을 경우 압축에 대해 고려합니다.
2.3.3. 물리 메모리 사양
다음의 표는 DRX의 물리 메모리 사양은 리소스 개수와 최대I/O, 대역폭에 따라 가변적입니다. 다음은 최대I/O 가 대역폭보다 클 경우의 DRX의 물리메모리 사양에 대한 계산식 입니다.
- 리소스 개수 * (최대 I/O(MB/s) - 대역폭(MB/s)) * 최대 I/O 지속시간 (초) + (리소스 개수 * 압축/암호화 버퍼(100MB)) + DRX 기본메모리(100MB)
최대 I/O 가 대역폭에 비해 항상 낮다면 리소스 당 버퍼의 크기를 1GB 수준으로 계산하여 물리 메모리 사양을 결정합니다.
- 리소스 개수 * 1GB + (리소스 개수 * 압축/암호화 버퍼(100MB)) + DRX 기본메모리(100MB)
다음은 WAN 100Mbps 대역폭, 최대 I/O 200MB/s , 최대 I/O 지속시간 10초 기준의 예시로 작성되었습니다일 경우를 상정하여 물리메모리 사양을 결정하는 예시 입니다. 이 예시에서 1개의 복제 리소스 운영에 대해 요구되는 메모리는 2.1GB(4GB 권장)이며 최대 I/O가 10초 이상 지속될 시 혼잡 상태로 진입하게 됩니다.
리소스 개수 | DRX 기본 메모리 | 송신 버퍼용 메모리 | 압축/암호화 버퍼 | 메모리 요구사양 | 운영서버 메모리 권장 사양 |
---|---|---|---|---|---|
1 | 100MB | 1 * (200MB-10MB) * 10초 = 1.9GB | 1 * 약 100MB | 2 .1GB | 4GB 이상 |
5 | 100MB | 5 * (200MB-10MB) * 10초 = 9.5GB | 5 * 약 100MB | 10.1GB | 16GB 이상 |
10 | 100MB | 10 * (200MB-10MB) * 10초 = 19GB | 10 * 약 100MB | 20.1GB | 32GB 이상 |
20 | 100MB | 20 * (200MB-10MB) * 10초 = 38GB | 20 * 약 100MB | 40.1GB | 64GB 이상 |
50 | 100MB | 50 * (200MB-10MB) * 10초 = 95GB | 50 * 약 100MB | 100.1GB | 128GB 이상 |
100 | 100MB | 100 * (200MB-10MB) * 10초 = 190GB | 100 * 약 100MB | 200.1GB | 256GB 이상 |
...
- 최대 I/O 가 대역폭보다 낮은 수치일 경우 계산 수식상 음수가 될 수 있으므로 이럴 경우 "최대 I/O(MB/s) - 대역폭(MB/s)"의 값은 최소한 1MB/s이상의 값으로 계산합니다.
...
대역폭은 근본적으로 가변적 수치입니다. WAN 구간 대역폭은 일반적으로 보장 대역폭이 아닌 네트웍 상황에 따라 변동이 심한 가변대역의 특성을 가지기
...
때문에 통상 WAN 대역폭은 10~100Mbps 정도의 대역으로 간주하여 1MB/s ~10MB/s 로 추산하는 것이 버퍼링 관점에서 적당합니다.
...
또한 일정 기간 내에 측정한 최대 I/O가 복제 대역폭보다 낮다고 해서 DRX 버퍼링을 고려하지 않는 것은 바람직 하지 않습니다. 운영환경의 애플리케이션의 특성에 따라 최대 I/O가 불특정 시점에 급등하는 상황이 있을 수 있기 때문에 이런 상황에 대비하여 DRX 버퍼에 여유공간을 두고 구성하는것이 바람직 합니다.