Versions Compared

Key

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

...

동기화가 백그라운드에서 동작하면 타깃의 데이터는 일시적으로 불일치(Inconsistent)한 상태가 됩니다. 이러한 Inconsistent 상태는 가능한 짧게 유지해야 정합성 보장 측면에서 좋기 때문에 동기화 속도가 충분하게 설정되어 있어야 유리합니다. 그러나 복제와 동기화는 같은 네트워크 대역을 공유하고 있으며 만약 동기화 대역이 높게 설정된다면 상대적으로 복제 대역은 적게 부여될 수 밖에 없습니다. 복제 대역이 낮아지면 로컬의 I/O latency에 영향을 주게 되고 결과적으로 운영 서버의 로컬 I/O 성능 저하를 가져오게 됩니다. 복제든 동기화든 어느 한쪽이 일방적으로 대역을 많이 점유하면 상대적으로 다른 쪽 동작에 영향을 주게 되므로 bsr 은 복제 대역을 최대한 보장하면서 동기화 대역을 복제 상황에 따라 적당히 조절하는 가변대역 동기화를 구현하고 있으며 이를 기본 정책으로 사용합니다. 이와 반대로 고정대역 동기화 정책은 복제에 관계없이 동기화 대역을 항상 보장하는 방식으로 서버 운영 중에 사용할 경우 로컬 I/O 성능의 저하를 가져올 수 있으므로 일반적으로는 사용이 권장되지 않고 특수한 상황에서만 사용해야 합니다.

Info

복제와 동기화

  • 복제는 로컬에서 발생하는 디스크의 변경 분 I/O 를 타깃에 실시간 반영하는 동작입니다. 변경 분 I/O가 로컬 디스크에 쓰여지는 문맥에서 복제가 수행 되므로 로컬 I/O 지연에 영향을 줍니다.

  • 동기화는 전체 디스크 볼륨 중 동기화 되지 않은 영역(out-of-sync)을 대상으로 소스 측 디스크의 데이터를 타깃의 데이터와 일치시키는 동작입니다. 0번 디스크 섹터를 시작점으로 하여 볼륨의 마지막 섹터 까지 순차적으로 처리됩니다.

이러한 차이를 명확하게 구분하기 위해 bsr은 복제와 동기화를 항상 구분하여 기술합니다.

가변대역 동기화

...

Info

대기노드의 최대 디스크 쓰기 속도 보다 높은 값으로 동기화 속도를 설정하는 것은 의미가 없습니다. 대기노드는 진행 중인 디바이스 동기화의 타깃이 되기 때문에 대기 노드가 허용하는 I/O 서브시스템의 쓰기 속도보다 동기화 속도가 더 빠를 수는 없습니다. 같은 이유로, 복제 네트워크에서 사용할 수 있는 대역폭보다 더 높은 값으로 동기화 속도를 설정하는 것도 의미가 없습니다.

고정대역 동기화

백그라운드에서 수행되는 재동기화를 위해 사용되는 최대 대역폭은 리소스의 resync-rate 옵션에 따라 결정됩니다. 해당 옵션은 다음과 같이 /etc/drbd.conf 리소스 구성의 disk 섹션에 포함되어 있습니다.

Code Block
resource <resource> {
  disk {
    resync-rate 40M;  
    c-min-rate 40M;  
    c-plan-ahead 0;  
    ...
  }
  ...
}

resync-rate, c-min-rate 설정은 초당 바이트 단위로 지정됩니다. 기본 단위는 Kibibyte이고 4096의 값은 4MiB로 해석됩니다.

Info

Important 

  • c-plan-ahead 파라미터가 양수 값으로 설정되어 있을 경우 동적으로 동기화 속도를 조절합니다. 이 값은 기본적으로 20 으로 설정되어 있으며 고정적인 동기화 속도를 위해서는 이 값을 0 으로 설정해야 합니다.

  • c-min-rate는 복제와 동기화가 동시에 진행될 때 최소한의 동기화 속도를 설정하기 위한 파라미터입니다. 이 값은 기본적으로 250k 로 설정되어 있으며 만약 고정적인 동기화 속도를 보장하려면 resync-rate와 동일한 값 으로 설정해야 합니다. 

가변대역 동기화

예를 들어, 다중 리소스가 복제/동기화 네트워크를 공유하는 구성일 경우 고정대역 동기화는 최적의 방법이라 할 수 없습니다. 동일 복제 네트워크를 공유하기 때문에 특정 복제 채널에 대해서 동기화율이 점유 당할 경우 고정 동기화율이 보장되지 않게 됩니다. 이 경우, 가변대역 동기화를 통해 각각의 복제 채널의 동기화율을 동적으로 조정 하도록 구성하여 동기화율이 점유당하는 것을 완화시킬 수 있습니다. bsr은 이 모드에서 초기 동기화 속도를 결정한 후 자동 제어 루프 알고리즘을 통해 지속적으로 동기화 속도를 조정합니다. 이 알고리즘은 포그라운드 복제가 가능하도록 충분한 대역폭을 보장하며, 백그라운드 동기화가 포그라운드 I/O에 미치는 영향을 크게 완화시킵니다.

가변대역 동기화를 위한 최적의 구성은 사용 가능한 네트워크 대역폭, 응용 프로그램 I/O 패턴 및 복제 링크 혼잡상황에 따라 크게 달라질 수 있으며, 또한 복제 가속기(DRX) 사용 여부에 따라 최적의 구성 설정이 달라질 수 있습니다.

혼잡 정책 설정

정합성 검증

스플릿 브레인

기타