...
When a connection is established between nodes, the two nodes exchange the currently available GI, and perform appropriate actions accordingly. There are several actions here.
양쪽의 Current UUID가 비어 있는 경우
양쪽 Current UUID가 비어 있는 것으로 감지하였다면, 이런 경우는 보통 새롭게 리소스를 구성하고 동기화가 시작된 적이 없는 상황입니다. 여기서는 동기화가 자동으로 진행되지 않으며 수동으로 동기화를 시작해주어야 합니다.한쪽 노드의 Current UUID가 비어 있는 경우
상대 노드의 Current UUID는 비어있고 자신의 것은 그렇지 않은 것을 감지하였다면, 이런 경우는 보통 새롭게 구성된 리소스에서 전체 동기화를 바로 시도한 상태이고, 로컬노드가 동기화의 소스로 선택된 경우입니다. bsr 내부적으로는 on-disk sync bitmap의 모든 비트를 설정하는데 디바이스 전체를 out-of-sync로 간주하겠다는 의미입니다. 그리고 소스로써 동기화를 시작합니다. 반대의 경우는 (로컬 UUID가 비어있고, 상대가 비어있지 않을 때) bsr이 동일한 절차를 진행하겠지만 로컬 노드가 타겟으로 동기화 되는 것만 다릅니다.양쪽의 Current UUID가 동일한 경우
자신의 Current UUID와 상대의 UUID가 비어있지 않고 동일한 것을 감지하였다면, 이런 경우는 보통 Secondary 역할 중 disconnected 모드가 되고 disconnected 중에 어떤 노드에서도 승격이 없었던 리소스에 대해서 발생하는 경우이며 동기화가 필요하지 않은 상태이며 동기화가 진행되지도 않습니다.Bitmap UUID가 상대 노드의 Current UUID와 일치하는 경우
자신의 Bitmap UUID가 상대의 Current UUID와 같고 상대의 Bitmap UUID 가 비어있음을 감지하였다면, 이런 경우는 정상적인 상태이며 Secondary 역할일 때 장애 상황이 생겨서 Primary 역할로 승격시킨 경우입니다. 이것은 상대 노드는 Primary가 된 적이 없으며 그 전까지는 동일한 data generation으로 작업되었음을 의미합니다. bsr은 로컬노드를 동기화 소스로 설정하고 백그라운드 재동기화를 할 수 있도록 준비 합니다.
반대로 로컬노드가 자신의 Bitmap UUID는 비어있고 상대의 Bitmap이 자신의 Current UUID와 동일하다는 것을 인지한다면 이것도 정상적이며 로컬 노드의 실패 이후에 발생한 것입니다. bsr은 로컬노드를 동기화 타겟으로 놓고 백그라운드 재동기화를 준비합니다.Current UUID가 상대 노드의 Historical UUID와 일치하는 경우
자신의 Current UUID가 상대 노드의 Historical UUID와 일치하는 것을 감지하였다면, 이는 다음과 같은 상황을 의미합니다. 2개의 데이타 셋(data sets)이 공통의 이전 세대 내용을 공유하는 동안, 상대 노드는 최신의 데이터를 가지지만 Bitmap 정보는 지난 시점의 것이기에 사용할 수 없다는 것을 의미합니다. 따라서 일반적인 동기화로는 충분하지 못할 수 있습니다. 이런 경우 bsr은 디바이스 전체를 out-of-sync 로 마킹을 하고 로컬 노드를 동기화 타겟이 되게하여 전체 백그라운드 재동기화를 시도합니다. 이와 반대로 로컬 노드의 Historical UUID 중에 상대의 Current UUID와 매칭되는 경우에는 로컬 노드를 동기화 소스가 되게하고 그 외에는 동일한 절차를 수행합니다.Bitmap UUID는 일치, Current UUID는 불일치하는 경우
자신의 Current UUID와 상대의 Current UUID와는 다르고 Bitmap UUID는 일치하는 것을 감지하였다면 스플릿 브레인(Split-brain)이 발생한 것입니다. 양 노드는 disconnect 상태로 남겨지고 자동해결이 설정되어 있지 않는 한 작업자가 직접 수동으로 스플릿 브레인 상황을 해결해야 합니다.Current / Bitmap UUID 모두 불일치 하는 경우
자신의 Current, Bitmap UUID가 각각의 상대 UUID와 다른 것을 감지하였다면 이전의 생성 내용과도 관련이 없는 스플릿 브레인 상황입니다. 따라서 자동복구 설정이 되어있다 하더라도 의미가 없습니다. bsr은 disconnect 되어 StandAlone 상태가 되고 작업자가 직접 스플릿 브레인 상황을 해결해야 합니다.어떠한 UUID도 일치하지 않는 경우
마지막으로, 두 노드의 GI 튜플에서 매칭되는 것이 한가지도 없다면 관련없는 데이타라고 경고를 남기고 disconnect 합니다. 이것은 전혀 관련 없는 노드간에 연결될 것을 대비한 안전조치입니다Both node’s current UUIDs are empty
If both Current UUIDs are detected as empty, this is usually the case with new resource configuration and synchronization has never started. Synchronization does not proceed automatically here and you must start synchronization manually.the Current UUID of one node is empty
If the current UUID of the other node is empty and it detects that it is not, this is usually the case when a full synchronization was attempted immediately from the newly configured resource, and the local node was selected as the source of synchronization. bsr internally sets all used area bits of the on-disk sync bitmap, and then start syncing as source. In the opposite case (when the local UUID is empty and the opponent is not empty) bsr will go through the same procedure, but only the local node is synchronized to the target.When both node’s current UUIDs are the same
If your current UUID and your partner's UUID are not empty and are the same, this usually happens when you are disconnected in the secondary role and there is no promotion to any node during disconnected. Synchronization is not required and synchronization is not in progress.Bitmap UUID matches the current UUID of the other node
If Bitmap UUID is the same as peer's Current UUID and peer's Bitmap UUID is empty, then this is normal and a failure occurs when local are in the Secondary role and promoted to the Primary role. This means that the peer node has never been Primary and has been working with the same data generation until then. bsr sets the local node as the synchronization source and prepares it for background resynchronization. Conversely, if the local node's Bitmap UUID is empty, and the peer's Bitmap is equal to its Current UUID, this is also normal and occurred after the local node failed. bsr sets the local node as the synchronization target and prepares for background resynchronization.Current UUID matches the historical UUID of the peer node
If your Current UUID matches the Historical UUID of the other node, it means the following. While two data sets share a common previous generation content, it means that the other node has the latest data, but the Bitmap information cannot be used because it is from the past. Therefore, normal synchronization may not be enough. In this case, bsr marks the entire device out-of-sync and attempts a full background resynchronization by making the local node a synchronization target. Conversely, if there is a case in which the historical UUID of the local node matches the peer’s Current UUID, the local node becomes the synchronization source, and the same procedure is performed otherwise.Bitmap UUID matches, Current UUID does not match
If your Current UUID is different from peer's Current UUID and the Bitmap UUID matches, then a split-brain has occurred. Both nodes are left disconnected and the administrator must manually resolve the split brain situation unless auto-resolve is enabled.If both Current/Bitmap UUID are mismatched
If Current and Bitmap UUIDs are different from each other's UUID, this is a split brain situation that is not related to the previous creation. Therefore, even if automatic recovery is set, it has no meaning. The bsr is disconnected and becomes StandAlone, and the split brain situation must be resolved by the administrator.If none of the UUIDs match
Finally, if there is no match in the GI tuples of the two nodes, it disconnects with a warning that it is irrelevant data. This is a safety measure in case you are connecting between nodes that are not related at all.