Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

bsr은 복제 데이타 생성을 식별하기 위해 생성 식별자(GI, Generation Identifiers)를 사용합니다. 이것은 bsr 내부 메카니즘에서 아래와 같은 용도로 사용됩니다.

  • 두 노드가 실제 클러스터의 멤버인지 결정할 때 (같은 클러스터 내의 노드가 아닌 우연한 연결에 대한 식별)

  • 노드 간 백그라운드 재동기화의 방향을 결정할 때

  • 전체 재동기화가 필요한지 혹은 부분 재동기화로 충분한지 결정할 때

  • 스플릿 브레인(이하 SB)을 식별할 때

생성 식별자

bsr은 다음의 경우에서 새로운 데이터 생성(Data Generation)이 시작되었음을 표시합니다.

  • 초기 전체 동기화 시

  • disconnected 된 리소스가 Primary 역할로 승격할 때

  • Primary 역할의 리소스가 disconnecting 될 때

따라서, 리소스가 Connected 연결 상태에 있고 양 노드의 디스크 상태가 UpToDate 이면 양 노드의 현재 GI는 동일하다 라고 할 수 있습니다. 반대의 경우도 마찬가지입니다.
모든 새로운 데이터 생성은 8 바이트의 UUID(universally unique identifier) 로 식별합니다. UUID의 최하위 비트는 노드의 역할을 표현하며 Primary는 1, Secondary는 0으로 설정됩니다. 

GI 튜플

bsr은 로컬 리소스 메타 데이타 내에 현재와 과거의 데이터 생성(data generation) 정보를 기본적으로 4개(Tuple)로 관리합니다.

  • Current UUID - 로컬노드의 현재 data generation에 대한 GI(생성 식별자)입니다. 리소스가 Connected 상태이고 동기화가 된 상태라면 이 Current UUID 는 양 노드 동일합니다.

  • Bitmap UUID - 디스크상의 동기화 비트맵의 변화를 추적하는 UUID입니다. 디스크의 동기화 비트맵 자체를 보면, 이 식별자는 disconnected 모드 상태에서만 관련이 있습니다. 만일 리소스가 Connected 라면 이 UUID는 항상 비어(zero)있게 됩니다.

  • Two Historical UUIDs - 현재의 Current UUID의 이전의 상태였던 data generation 식별자들이며 2개를 기억하고 있습니다. 

이 4가지 모두를 묶어서 "generation identifier tuple" 또는 짧게 "GI 튜플" 이라고 합니다.

GI 운영

GI 상태 식별


  • No labels