Versions Compared

Key

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

...

bsr은 디스크 전체 영역을 대상으로 수행하는 기존 전체 동기화 방식을 파일시스템이 사용하는 영역에 대해서만 동기화하는 빠른 동기화(FastSync)로 개선하였습니다. bsr 은 FastSync 를 위해 파일시스템의 사용영역 정보를 취합하여 해당 사용영역을 OOS 로 기록하고 동기화를 수행합니다.FastSync 는 초기동기화를 위한 변경하였습니다. 예를 들어 1TB 디스크에서 100MB 만 사용하고 있다면 100MB 디스크 영역에 대해서만 동기화 하므로 기존 전체 동기화(1TB)에 비해 10배 빠르게 초기동기화를 마칠 수 있습니다. FastSync 는 다음과 같은 시점에 동작합니다.

  • bsradm primary --force

...

  • invalidate/invalidate-remote

...

  • bsradm verify

Note

주의할 점!

FastSync 는 초기 동기화를 수행하기 전 시점에 디스크 공간에서 파일시스템이 사용하는 정보를 우선 얻어야 하는데, 파일시스템이 훼손(깨짐)되어 있다면 사용영역에 대한 정보를 부정확하게 처리할 수 있습니다. 이를 인식하지 못하고 FastSync 가 처리될 경우 소스와 타깃의 정합성이 불일치하는 결과를 낳게 되므로 매우 조심해야 합니다.

따라서 bsr 에선 이런 상황에 대비하기 위해 bsradm primary --force 를 통해 초기 동기화를 수행하기에 앞서 파일시스템 무결성 검사를 먼저 의뢰하고(chkdsk or fsck) 그 결과에 문제가 없을 때 FastSync 가 동작하도록 합니다.

관리자는 bsr 초기동기화를 수행하기 전 파일시스템 무결성 검사를 수행하여 복제 디스크의 health 상태를 미리 파악해 둘 필요가 있습니다.

Info

예전 FullSync 방식으로 변경 하려면

bsrcon /set_fast_sync 0

현재 초기 동기화 방식을 알고 싶을 때

bsrcon /get_fast_sync

체크섬 기반 동기화

체크섬 데이터 요약을 사용하면 bsr의 동기화 알고리즘의 효율성을 더욱 개선할 수 있습니다. 체크섬 기반 동기화는 동기화하기 전에 블록을 읽고 현재 디스크에 있는 내용의 해시(hash) 요약을 구한 다음, 상대 노드로부터 같은 섹터를 읽어 구한 해쉬 요약 내용과 비교합니다. 해시 내용이 일치하면 해당 블럭에 대한 동기화 쓰기(re-write)를 생략하고 일치하지 않을 경우 동기화 데이터를 전송합니다. 이 방식은 동기화 해야될 블럭을 단순히 덮어쓰는 기존 방식에 비해 성능에서 유리할 수 있으며 연결이 끊어져 있는(disconnect 상태) 동안 파일 시스템이 섹터에 같은 내용을 다시 썼다면 해당 섹터에 대해선 재동기화를 생략하게 되므로 전체적으로 동기화 시간을 단축시킬 수 있습니다.

...