Home 용어정리 5. 쿼럼(Quorum)
Post
Cancel

용어정리 5. 쿼럼(Quorum)

쿼럼(Quorum)

고가용성 하둡 아키텍쳐에 대해 공부하다보니, 쿼럼이라는 단어를 접하게 됐습니다.

QJM(Quorum Journal Manager)이 바로 그것입니다.

QJM에서는 저널노드를 최소 3대이상의 홀수대로 유지할 것을 권장합니다.

왜 저널노드는 3대 이상을 갖도록 권장하는 것일까요?

이유는 대단히 익숙합니다. 저널노드가 하나이면 그 저널노드는 단일 실패 지점(SPOF)이기 때문입니다.

그럼 두개여도 될텐데 왜 꼭 홀수개여야 할까요?

이는 이 QJM이 쿼럼(Quorum)이라는 구조를 따르기 때문입니다.

쿼럼은 번역하면 정족수입니다. 이를 다시 사전적으로 번역하면 ‘회의를 유효하게 만들기 위해 참석해야하는 최소 구성원 수’입니다. 이를 또 다시 저널노드에 적용하면, 저널노드 그룹이 정상적으로 작동하기 위해서 존재해야하는 최소 저널노드 수가 되겠죠.

쿼럼이라는 구조 하에서는 (n-1)/2 이상이 되어야 최소치를 충족한다고 이야기합니다.

예를들어 시스템에 4개의 저널 노드가 있는 경우 모든 것을 정상 실행하기 위해서는 2개이상의 저널노드를 유지해야합니다.

그럼 시스템에 3개의 저널 노드가 있는 경우는 어떨까요? 이경우 1개 이상의 저널노드가 있어야합니다.

여기서 좀 다른 시각을 바라볼 필요가 생깁니다. 4개의 저널노드가 있는 경우와 3개의 저널노드가 있는 경우 각각 저널노드의 장애를 허용하는 갯수는 몇개일까요?

답은 둘다 동일하게 2개입니다. 4개의 저널노드와 3개의 저널노드가 동일한 Fault tolerance를 갖는 다는 것이죠.

그러면 당연히 4개보단 3개가 최적입니다. 같은 fault tolerance를 제공하는데 굳이 4개일 필요가 전혀 없기 때문이죠. 즉, 4개의 노드는 3개의 노드와 비교했을 때 실질적으로 어떠한 이점도 제공해주지않고 되려 성능면에서 오버 헤드에 불과하다는 것입니다.

그래서 QJM은 실제로 시스템이 허용할 수 있는 실패 수를 최적으로 확보하기 위해, 다시 말하면 시스템의 안정성을 최대한 확보하기 위해 저널노드 수를 3개 이상의 홀수개로 권장하는 것 입니다.

참고로 주키퍼의 앙상블을 3개이상의 노드로 구성하는 것에도 이와 동일한 논리가 작용합니다.

This post is licensed under CC BY 4.0 by the author.

Python으로 Slack에 메세지 보내기

Hadoop Deep Inside - Ch.3 하둡 분산 파일 시스템(HDFS) (2)