Nginx + Keepalived 의 뇌 분열 문 제 는 어떻게 처리 / 예방 합 니까? ① Keepalived 부터 복습 하기
Keepalived 는 강력 한 보조 도구 로 고장 전환 과 건강 검사 기능 을 제공 하여 사용 가능 한 성능 수 요 를 실현 한다
.
원 리 는 VRRP (가상 경로 중복 프로 토 콜) 열 백업 프로 토 콜 을 사용 하여 소프트웨어 형식 으로 리 눅 스 서버 의 다 중 장치 열 준비 기능 을 실현 하 는 것 으로 처음에 LVS 를 대상 으로 디자인 된
이다.
VRRP 는 공유 기 를 대상 으로 하 는 백업 솔 루 션 으로 여러 대의 공유 기로 하나의 열 준비 팀 을 구성 하고 공 통 된 가상 IP 를 통 해 대외 적 으로 서 비 스 를 제공한다. 모든 열 준비 팀 은 같은 시간 에 한 대의 Master 만 서 비 스 를 제공한다. 다른 공유 기 (Backup) 는 불필요 한 상태 에 있다. 유일 하 게 해 야 할 일 은 Master 가 고장 이 났 는 지 감청 하 는 것 이다. 대신 에(우선 순위 가 교체 순 서 를 결정 한다) 가상 IP 주 소 를 계승 하 는 것 을 드리프트
라 고도 부른다.
Keepalived 는 VRRP 프로 토 콜 을 바탕 으로 하 는 열 준비 방식 으로 서버 간 의 고장 전환 을 잘 완성 하고 단일 고장 문 제 를 해결 할 수 있 습 니 다. 각 열 준비 팀 은 여러 대의 서버 가 있 을 수 있 습 니 다. 가장 자주 사용 하 는 것 은 쌍 기 열 준비 (가상 IP 의 이동 에 따라 실제 구현) 입 니 다. 각종 응용 서비스
에 사용 할 수 있 습 니 다. ② 뇌 파열 현상 은 무슨 뜻 입 니까? 뇌 분열 현상 은 고가 용 구조 에 나타난다
앞의 작은 복습 을 통 해 알 수 있 듯 이 사용 가능 한 클 러 스 터 에서 Keepalived 안의 노드 는 상대방 의 생존 상 태 를 감청 하고 Master 가 다운 되면 오래 기다 린 스페어 타이어 가 상위
가 됩 니 다.
그러나 만약 에 네트워크 고장 문제 가 발생 하면 예 를 들 어 인터넷 이 내 게 뽑 히 고 인터넷 중독 을 끊 어 준다. 이때 노드 간 에 갑자기 Master 의 생존 상 태 를 감청 하지 못 하고 서로 연락 도 끊 는 다. 이것 은 어떤 결 과 를 초래 할 수 있 습 니까?
당연 하지. 우리 가 가장 사랑 하 는 방화벽 도 이런 상황 을 초래 할 수 있어 ~
이렇게 하면 사용 가능 한 체제 에서 노드 가 서로 대 체 될 것 이다. 즉, 원래 한 노드 에 방문 한 자원 이 여러 노드 에 의 해 동시에 방문 된다. 이 과정 이 지속 되 고 다른 체제 로 조율 하고 통제 하지 않 으 면 현재 존재 하 는 데이터 가 불완전 성 을 초래 할 확률 이 높다 (여기 서 나 는 갑자기 my sql 의 사무 특성 도 생각 났 다)
그리고 대외 적 으로 제공 하 는 서비스 에 도 이상 이 생 길 수 밖 에 없다!
③ 이런 현상 을 어떻게 예방 할 것 인가?
이 고가 용 집단 에서 일정한 확률 로 뇌 분열 현상 이 나타 날 수 있다 면 가장 직접적 으로 생각 할 수 있 는 것 은 제3자 수단 을 통 해 이런 현상 을 예방 하 는 것 이다
예 를 들 어 두 노드 사이 에 의견 차이 가 나타 나 서로 상위 권 을 쟁탈 하기 시 작 했 을 때 이때 제3자 중재 성격 의 체제 가 있 으 면 최종 적 으로 누구의 말 을 들 을 지 결정 할 수 있다
.
이 제3 자 는 사실 매우 간단 하 다. 바로 우리 만능 Shell 스 크 립 트 이다. 다음은 간단하게 작성 방향