엘라스틱 서치 클러스터를 구축할 때 마스터후보 노드는 최소 3개 이상의 홀수개로 설정하는 것을 권장한다...!
그 이유는 Split Brain때문인데, 해당 개념을 알아보자.
(틀린 내용이 있을 경우 댓글로 알려주시면 감사하겠습니다)
먼저 마스터후보 노드를 1개만 두면, 해당 마스터 노드가 유실되었을 때 클러스터 전체가 멈춰버리기 때문에 1개만 두지는 않는다.
그렇다면 홀수개로 설정해야하는 이유는 무엇일까?
위 사진과 같이 만일 네트워크가 단절되는 경우, 하나의 ES 클러스터였던 것이 각각 다른 클러스터로 분리되어 동작하게 되는 경우가 발생할 수 있다.
이때, 각각의 클러스터로 동작할 때 데이터가 추가되거나 변경되면, 나중에 네트워크가 복구되고 다시 하나의 클러스터로 합쳐지면서 데이터 정합성 문제가 발생하게 된다. 이러한 현상을 Split Brain이라고 한다.
만일 마스터 후보 노드를 3개 이상의 홀수개로 둔다면, 하나의 클러스터가 분리될 때 필시 한쪽이 더 많은 마스터 후보노드를 가지게 된다.
이렇게 되었을 때 절반 이상의 마스터노드가 동작하고있는 클러스터만 운영되도록 설정하고, 나머지 클러스터는 동작을 멈추도록 설정한다.
그러면 이후에 네트워크가 복구되고 클러스터가 다시 올라올 때, 운영되고 있던 클러스터의 데이터 정보들만 node-6으로 업데이트해주면 정합성이 맞게 된다.
그림 출처: https://esbook.kimjmin.net/03-cluster/3.3-master-and-data-nodes
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] "Limit of total fields has been exceeded" 해결 (0) | 2023.04.26 |
---|---|
[Elasticsearch] ELK스럽게 데이터 수정하기 (역색인구조) (0) | 2023.04.24 |