OS [Linux] fence loop 설명 및 방지
페이지 정보
작성자 LeeHyongDong 아이디로 검색 전체게시물 댓글 0건 조회 5,572회 좋아요 2회 작성일 20-07-28 09:31본문
fence Loop 설명 및 방지
문제
1. 클러스터 fence device 구성후 HeartBeats 구간 케이블 절제
2. 1번 노드 reboot 완료후 cluster가 자동으로 실행됨 ( corosync, pacemaker 데몬 enable )
3. HeartBeats 구간 케이블 절제 상태 유지
4. 양쪽 노드 reboot 및 fencing 무한 반복
환경
1. RHEL 7 or 8
2. 2node cluster
3. corosync, pacemaker 데몬 enable
4. 양쪽 노드에서 fence device에 통신이 가능한 상태
Fence Loop란
Fence Loop란 클러스터가 fencing진행후 문제가 해결되지 않은상태로 node가 기동되 클러스터에서 fencing을 반복하는 것을 Fence Loop라고 합니다.
문제 해결
환경과 같이 구성이 된 상황에서 HeartBeat가 끊어진상태를 유지할경우 해당 노드가 fencing되어 reboot이 진행됩니다.
하지만 pacemaker는 여전히 문제가 있는것으로 판단을 하여 반대쪽 노드에서 fencing이 진행 되어 문제가 해결될때까지 펜싱루프가 진행됩니다.
fence loop를 막는 방법중 2개의 방법을 설명 드리겠습니다.
1. corosync, pacemaker 데몬 disable
명령어 ( 양쪽 노드 )
# pcs cluster disable
or
# systemctl disable corosync ; systemctl disable pacemaker
해당 방법을 권고드리며 진행을 할경우 reboot이후 cluster가 자동으로 실행되지 않습니다.
문제를 해결한 후 관리자가 수동으로 cluster를 기동해야 합니다.
2. fence action설정 off 변경
한쪽의 노드 fence설정을 off로 설정합니다. delay 설정한 노드가 있다면 다른 노드에 pcmk_off_action="off" 옵션을 추가합니다.
# pcs stonith update fence_name pcmk_off_action="off"
해당 방법을 진행할 경우 노드에서 fencing이 진행되면 서버의 전원을 종료하며
문제가 해결된 다음 관리자가 서버의 전원을 키면 자동으로 cluster가 기동됩니다.
근본 원인
● 클러스터 상호 연결에 노드의 통신을 방해하는 문제가 발생하고 노드 중 하나가 pacemaker를 시작할 때
펜싱 루프가 양쪽 노드에서 발생할 수 있습니다.
● 네트워크 이슈가 발생하면 클러스터 노드 모두 다른 노드가 누락 된 것을 확인하고 차단하려고합니다.
둘 다 네트워크를 통해 각 펜싱 장치에 도달 할 수 있고 다른 펜싱 장치가 다른 노드를 차단합니다.
● 제외 된 노드(1번 노드)가 재부팅되면 기존 노드(2번 노드)가 해당 클러스터에 다시 참여할 때까지 기다립니다.
제외 된 노드(1번 노드)가 일정 시간 대기 한 후에 기존 노드(2번 노드)가 알 수없는 상태 (네트워크를 통해 여전히 상태체크를 못하기 때문에)에 있다고 판단하고
차단하려고 시도합니다. 그런 다음 제외 되었던 노드(1번 노드)는 기존 노드(2번 노드)를 재부팅하며 서비스에서 제외시키며
관리자의 수동 개입이 발생하여 문제를 해결할 때까지 계속 반복됩니다.
참조
2노드 클러스터 fence loop
https://access.redhat.com/mt/ko/solutions/272913
기동 및 장애 확인 방법
http://www.chlux.co.kr/bbs/board.php?bo_table=board02&wr_id=90&sca=OS
댓글목록
등록된 댓글이 없습니다.