공유할 서비스 선택

TECH


TECH

OS [Linux] split-brain 현상

페이지 정보

작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 8,229회 좋아요 0회 작성일 20-03-16 23:12

본문

- Split-brain 설명 및 해결

 

소개

  Split-brain은 의학용어에서 파생된 단어로 뇌가 두개로 분할되는 증상으로

  cluster를 2 node 구성했을때 서로 통신이 되지 않아 자신이 유일한 노드로 인식해

  공유 resource와 같은 자원이 충돌을 일으키게 되는 현상이다.

 

환경

   • RHEL 6.1 이상 (클러스터 구성된서버)

   • RHEL 7버전 이상 (클러스터 구성된서버)

   • RHEL 8버전 이상 (클러스터 구성된서버)

   • 클러스터가 2노드로 구성된 경우

 

구성

     05e05d9f35c1d8edaf21395c2204ead7_1584867454_5966.png

    • 예시 클러스터 구상도입니다.

  

이슈

    • cluster 구성 서버에서 Split-barain발생으로 resource충돌

  

    보통의 클러스터 하면 이런 구상도를 생각하게 될텐데 Split-brain이란 단어 자체를 클러스터에 대입을 해보면 이해가 쉽게 됩니다. 

    클러스터를 뇌로 대입해서 설명을 드리겠습니다.  

    도미노를 세울때 양 뇌가 서로 다른 명령을 내려 세우던 도미노가 무너지거나 중간에 도미노가 빠지는 등의 오류가 생기게 됩니다.

    클러스터 또한 마찬가지입니다 2개의 노드가 서로 다른 명령을 내리거나 중복되는 내용을 스토리지가 비정상적인 작동으로 인식을 하게 됩니다.

 

    05e05d9f35c1d8edaf21395c2204ead7_1584604667_1234.png 

    클러스터의 구성도입니다 위 그림은 클러스터 노드가 서비스 네트워크로 통신을 하고 사용자 및 스토리지 까지 서비스 네트워크를 이용하고있습니다.

    05e05d9f35c1d8edaf21395c2204ead7_1584604681_6765.png 

    이 클러스터 구성은 1번 노드의 네트워크가 끊어진다고 해도 split-brain이 발생하지 않고 2번노드에서 정상적인 작동을 합니다

    split-brain이 발생하지 않는다면 그냥 클러스터를 이렇게 구성하면 되는거 아닌가 싶지만 모든 부하를 하나의 네트워크에 사용할경우 

    비용이 많이 발생할수 있기때문에 네트워크를 분할해 구성을 합니다.

    05e05d9f35c1d8edaf21395c2204ead7_1584606338_7035.png 

    이 클러스터 구성이 스플릿 브레인이 발생할수있는 구성도 입니다. 스플릿 브레인이 자주 발생하는 현상은 아니지만 

    위와 같은 구성도에서 heart-beat대역으로 통신하던 1번 node가 연결이 끊어지게되면서 fenceing이 일어나 1번 node가 재부팅이 되고 

    cluster에 다시 올라오지 않는다면 split-brain이 일어나지 않지만 fenceing이 일어나지 않거나 재부팅이 되서 비 정상적으로 cluster에 올라오게 되면 

    heart-beat대역에서 서로 통신이 되지 않는 상태에서 자신만이 유일한 노드라고 인식해 두개의 노드가 모두 active로 스토리지에 접근하게 되는걸 split-brain이라고 합니다.

 

    05e05d9f35c1d8edaf21395c2204ead7_1584606348_3301.png 

    구성도를 봐서 그냥 두개다 active로 있는게 무슨 문제인지 싶지만 스토리지를 cluster로 구성해 사용하게 될 경우 동시 접근을 하게되어 

    중복 주소를 할당하거나 서비스 데이터를 중복 전송 혹은 완전히 스토리지가 깨지게 되는 현상이 있을수 있습니다.

 

    05e05d9f35c1d8edaf21395c2204ead7_1584606415_1972.png 

    제가 사용하는 테스트 환경에서 강제적으로 스플릿 브레인 현상을 일으켜 봤습니다.

    스플릿 브레인이 일어나 두개의 노드 모두 active로 vip를 노드 두개가 다 가지고 있어 할당 받고 있는게 확인됩니다.

 

해결 방안

    split-brain현상이 발생하지 않게 하는 방법은 통신이 되지 않는 환경에서 두개의 노드를 다 살아 있지 않게 하면 됩니다.

예시)

    - fenceing이 일어난후 node에서 cluster가 자동으로 올라오지 않게 설정한다.

    - node를 홀수로 구성한다.

 

 

참조 문서

  

  - 클러스터 구축 효과

    http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=43&sca=OS&page=3

 

 

 

 

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
165 OS OSworker 아이디로 검색 전체게시물 10-31 21
RHSB-2026-016 Use-after-free - kernel IPv4 (CVE-2026-98432) 보안취약점 안내

카테고리 : OS

21 0
작성자 : OSworker 26/10/31
164 OS OSworker 아이디로 검색 전체게시물 10-24 28
로그인 없이 뚫린다‥'PHP 결함'에 전 세계 비상 #CVE-2026-109618 #CVE-2026-109619 #php2shell

카테고리 : OS

28 0
작성자 : OSworker 26/10/24
163 OS OSworker 아이디로 검색 전체게시물 10-13 21
앞으로 SSL 47일 시대가 옵니다~!

카테고리 : OS

21 0
작성자 : OSworker 26/10/13
162 OS OSworker 아이디로 검색 전체게시물 09-30 26
cgroup을 통해 특정 사용자의 리소스(CPU, MEM)를 제한하는 방법

카테고리 : OS

26 0
작성자 : OSworker 26/09/30
161 OS OSworker 아이디로 검색 전체게시물 09-24 27
OpenJdk Life Cycle 에 대해 알려드립니다.

카테고리 : OS

27 0
작성자 : OSworker 26/09/24
160 OS OSworker 아이디로 검색 전체게시물 09-18 33
Red Hat Enterprise Linux 6 를 아직도 지원 받을수 있습니다. !! 알고계셨나요?

카테고리 : OS

33 0
작성자 : OSworker 26/09/18
159 OS OSworker 아이디로 검색 전체게시물 08-15 47
Kernel Kpatch 에 대해 추가 설명을 드리고자 합니다. #RHEL9 RHEL10 #CVE

카테고리 : OS

47 0
작성자 : OSworker 26/08/15
158 OS OSworker 아이디로 검색 전체게시물 07-31 57
타임머신 기반 리눅스 시스템 복구 도구, 오픈소스 툴 Timeshift 가이드

카테고리 : OS

57 0
작성자 : OSworker 26/07/31
157 OS OSworker 아이디로 검색 전체게시물 07-22 48
RHEL Long-Life (LL) Add-on term extensions 에 대해 설명 드리려 합니다.

카테고리 : OS

48 0
작성자 : OSworker 26/07/22
156 OS OSworker 아이디로 검색 전체게시물 07-11 55
KVM 취약점이 나왔습니다. CVE-2026-53359 에 대해 알아보겠습니다.

카테고리 : OS

55 0
작성자 : OSworker 26/07/11
Total 165건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top