Pacemaker Corosync 이해 > Cluster 자료실

본문 바로가기

사이트 내 전체검색

뒤로가기 Cluster 자료실

Pacemaker Corosync 이해

페이지 정보

작성자 kwazii 작성일 21-12-13 15:58 조회 4,379 댓글 2

본문


Corosync


corosync는 클러스터의 엔진으로서 멤버쉽, 메세징, 쿼럼 등의 클러스터 infracture를 제공하며,

노드와 노드 간에 전달되는 토큰의 순서,안정성,흐름을 제어합니다.




통신 방식


RHEL6.1까지는 UDPM(UDP-Multicast)방식이기 때문에 동일한 네트워크(multicast 구간) 안에서만 구성이 가능하였지만,

RHEL6.2 이상부터 UDPU(UDP-Unicast)방식을 지원하기 때문에 서로 간에 네트워크 통신이 가능한 환경이면 물리적인 위치의 제약을 받지 않고 클러스터 구성이 가능하게 되었습니다.


RHEL7에서 기본 설정은 UDP-Unicatst 방식으로 상대 노드의 5405 포트에 지속적으로 UDP패킷을 발송합니다.

UDP/5405 패킷을 캡쳐 해보면 아래와 같이 메세지를 주고 받는 것을 확인할 수 있습니다.


tcpdump -nn -i ens224 'port 5405'

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on ens224, link-type EN10MB (Ethernet), capture size 262144 bytes

13:14:10.697323 IP 192.168.254.100.5405 > 192.168.254.200.5405: UDP, length 74

13:14:10.697456 IP 192.168.254.200.5405 > 192.168.254.100.5405: UDP, length 74

13:14:10.716960 IP 192.168.254.100.50624 > 192.168.254.200.5405: UDP, length 87

13:14:10.878291 IP 192.168.254.100.5405 > 192.168.254.200.5405: UDP, length 74

13:14:10.878484 IP 192.168.254.200.5405 > 192.168.254.100.5405: UDP, length 74

13:14:11.060302 IP 192.168.254.100.5405 > 192.168.254.200.5405: UDP, length 74




Timeout 시간 변경 (RHEL7 or RHEL8)


Timeout 값은 1초(default) 이므로 1초 넘게 통신이 되지 않으면 펜싱이 발생하게 됩니다.

이는 일시적인 네트워크나 CPU부하 시 또는 네트워크가 열악한 환경에서 의도치 않은 펜싱을 발생 시킬 수 있으므로 클러스터 구성 시 해당 timeout값을 최소 5초로 설정 하는 것을 권장합니다.


** 클러스터 재시작이 필요하지 않습니다 **


1) 현재 Timeout 값 확인

# corosync-cmapctl | grep totem.token

runtime.config.totem.token (u32) = 1000   ## 1초(밀리세컨 단위)


2) 모든 노드의 corosync.conf에서 Timeout값 설정

# vi /etc/corosync/corosync.conf

...

totem {

    version: 2

    secauth: off

    cluster_name: mycluster

    transport: udpu

    token: 5000                   ## 해당 값 추가 (밀리세컨 단위)

}

...


3) corosync 리로드

# pcs cluster sync            ## 한쪽 노드만 설정을 변경했다면, 변경한 노드에서 해당 명령어 실행하여 수정된 내용을 모든 노드로 전파 

# pcs cluster reload


4) 변경 확인

# corosync-cmapctl | grep totem.token

runtime.config.totem.token (u32) = 5000

 

댓글목록 2

최고관리자님의 댓글

최고관리자 작성일

좋은글 감사합니다. ^^

darkrmeo님의 댓글

darkrmeo 작성일

/etc/corosync/corosync.conf 변경 후 sync까지되고 양노드에 totken: 5000 으로 변경된게 보이는데.
reload 하고  corosync-cmapctl | grep totem.token 하면 값이 그대로네요 .. 왜이럴까요

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : (주)리눅스데이타시스템 / 대표 : 정정모
서울본사 : 서울특별시 강남구 봉은사로 114길 40 홍선빌딩 2층 / tel : 02-6207-1160
대전지사 : 대전광역시 유성구 노은로174 도원프라자 5층 / tel : 042-331-1161

PC 버전으로 보기