Versions Compared

Key

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

...

bsr은 Inconsistent 데이터와 Outdated 데이터를 구분합니다. Inconsistent 데이터란 어떤 방식으로든 접근이 불가능하거나 사용할 수  없는 데이터를 말합니다. 가장 흔한 대표적인 예로 동기화 진행 중인 타겟 쪽 데이터가 Inconsistent 상태 입니다. 타겟 쪽 데이터는 동기화가 진행중일 때 일부는 최신이지만 동기화가 진행 중인 타깃 데이터는 일부는 최신 이지만 일부는 지난 시점의 데이터 이므로 이를 하나의 시점인 데이터로 간주하는 것이 불가능합니다. 그런 경우에서는 디바이스가 파일시스템이 있는 경우 그 파일시스템은 한 시점의 데이터로 간주할 수 없습니다. 또한 이 때에는 장치에 적재 되었을 파일시스템이 마운트(mount)될 수 없거나 파일시스템 자동 체크 조차도 수행되지 못하는 할 수 없는 상태 일 수 있습니다.

하지만 Outdated 데이터는 Secondary 노드에서 정합성은 Outdated 디스크 상태는 데이터의 일관성은 보장되지만 Primary 노드와 최신의 데이터로 동기화되지 않은 않았거나 이를 암시하는 데이터 입니다. 이런 경우는 임시적이든 영구적이든 복제 링크가 중단할 경우 발생합니다. 연결이 끊어진 Oudated 데이터가 별 문제없는 상태라고 기대할 수 있겠지만 이것은 데이터는 결국 지난 시점의 데이터 입니다. 이런 이기 때문에 이러한 상태의 데이터에서 서비스가 되는 것을 막기 위해 bsr은 Outdated 데이터를 가진 노드가 역할을 승격노드에 대해 승격(promoting a resource) 하는 하는 것을 기본적으로 허용하지 않습니다. 그러나 필요하다면(긴급한 상황에서) Outdated 데이터를 강제로 승격할 수는 있습니다. 이와 관련하여 bsr은 네트워크 단절이 발생하자마자 외부 응용프로그램이 측에서 즉시 Secondary노드를 Outdated 상태가 되도록 만들 수 있는 인터페이스를 갖추고 있습니다. 그런 상태가 될 경우 bsr은 Primary 역할로 노드가 전환되는 것을 거부하며, 응용프로그램이 outdated 데이터를 사용하는 것을 막습니다. Outdated 상태가 Outdated 상태가 된 리소스에서 해당 복제링크가 다시 연결된다면 Outdated 상태 플래그는 자동으로 지워지며 백그라운드로 동기화(background synchronization) 가 진행됩니다가 완료되어 최종 최신 데이터(UpToDate)로 갱신됩니다.

Primary 가 Crash 되었거나 연결이 단절된 Secondary 노드는 디스크 상태가 Outdated 일 수 있습니다. Outdated 된 노드를 Primary 로 승격하고자 한다면 --force primary 를 통해 강제 승격 할 수 있습니다.

운송 동기화

디스크를 직접 가져와서 구성하는 운송 동기화(Truck based replication)는 아래와 같은 상황에 적합합니다.

...