Versions Compared

Key

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

...

Code Block
bsrdadm primary <resource>

초기 동기화

리소스가 초기 기동된 상태에서는 디스크의 상태가 양 노드 Inconsistent 상태이며 이 상태는 기본적으로 디스크를 승격할 수 없는 상태 입니다. 따라서 리소스에 대한 최초 승격은 강제옵션으로 승격하고 강제승격 이후 자동적으로 초기 동기화로 이어집니다. 강제 승격은 다음과 같이 수행합니다.

Code Block
bsrdadm primary --force <resource>
Info

복제 클러스터 내의 모든 노드가 연결된 상태에서 Primary 역할을 가질 수 있는 노드는 하나만 존재할 수 있습니다. 그러나 노드 간 연결이 단절될 경우 상황에 따라 특정시점에 Primary 역할을 가졌던 노드가 2 이상이 될 수 있습니다. 이러한 상태를 스플릿 브레인 상태라고 합니다.

이와 관련한 자세한 내용은 스플릿 브레인 항목을 참고하세요.

Info

리눅스 환경의 경우에는 승격을 하기 전에 볼륨에 대한 한 후 볼륨을 사용하기 위해서 마운트 과정이 요구됩니다. 요구되지만, 윈도우즈 환경에선 쉘 수준에서 볼륨에 대한 자동 마운트가 운영체제의 쉘 수준에서 자동으로 수행되기 때문에 별도의 마운트 작업이 필요치 않습니다.

...

Info

리눅스 환경의 경우 강등을 수행하기 전 볼륨에 대한 마운트 해제의 과정이 요구됩니다. 윈도우즈 환경에선 강등명령 자체적으로 마운트 해제와 강등을 같이 내부적으로 마운트 해제를 선 수행하기 때문에 별도의 마운트 해제 과정이 필요치 않습니다.

...

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

Info

복제와 동기화

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

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

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

...