용어 정리
Heartbeat
- 클러스터의 각 노드는 다른 멤버에게 자신의 정상동작 상태에 대한 multicast heartbeat 를 전송한다.
기본적으로 하나의 클러스터 노드는 10초동안 다른 노드의 heartbeat 신호가 전송되지 않으면
dead 상태로 판단하게 된다.
Heartbeat 용으로 사용되는 interface는 /etc/cluster/cluster.conf 파일에 설정되어 있다.
- 클러스터 구성에 대해 redhat support와 논의한 결과 노드간 cross-connect 은 사용되지 않고
heartbeat 연결을 위해 private VLAN으로 구성된 스위치 연결을 권고하고 있다.
또한 fencing 연결을 구성하는데에도 동일한 네트워크 인터페이스를 사용하도록 권고하고 있다.
Quorum
- 클러스터에서 발생 할 수 있는 가장 위험한 상황은 두 노드가 동일한 시점에 active가 되는 것이다.
두 노드는 공유 스토리지를 사용하고 있기 때문에 이런 경우 두 클러스터 노드가 공유 스토리지의
특정 Data를 Write 할 수 있고 결국에는 Data Corruption 이 발생한다.
- 두 노드가 모두 active가 된 상황을 Split Brain 이라고 부르며 각 노드가 다른 멤버로부터 heartbeat 신호를
받지 못할 때 발생 한다.
두 노드가 더 이상 통신하지 않기 때문에 두 노드는 해당 문제가 다른 노드의 것인지 자기 자신의 것인지 구분하지 못한다.
한 예로, Heartbeat Network 장애로 인해 Passive Node 가 Active Node로 부터 Heartbeat 을 받지 못하는 상황을 생각 할 수 있다.
이런 경우 만약 해당 Passive Node 는 클러스터서비스를 시작하게 되면 Split-Brain 상황이 되는 것이다.
- 대부분의 클러스터들은 이런 상황을 막기 위해 Quorum Disk 를 사용한다.
Quorum 디스크란 두 노드가 동시에 접근 할 수 있는 작은 공유 디스크 이다.
현재 Active되어 있는 노드는 해당 Quorum Disk 에 주기적으로 Write를 발생시킨다. (일반적으로 2초마다)
Passive 노드는 Quorum Disk를 체크하면서 Active 노드가 최신 상태로 갱신되는지 확인한다.
- 한 노드가 파트너 노드로 부터 Heartbeat 신호를 받지 못하게 되면 Quorum disk를 통해 파트너 노드의 정보가
업데이트되고 있는지 살핀다.
만약 Active 상태의 파트너 노드가 여전히 정보갱신을 하고 있다면 Passive 노드는 Active 노드의 정상 상태를 파악하고
클러스터 서비스를 시작하지 않는다.
- Red Hat 클러스터는 Quorum Disk 를 지원하지만 Red Hat support 에서는 Quorum Disk를 사용하지 않도록 권고하고 있다.
그 이유는 Quorum Disk 가 구성하기에 어렵고 그 자체가 문제를 발생 시킬 소지가 크기 때문이다.
대신에 Red Hat 에서는 Split-Brain을 막기위해 Fencing(Power Fencing) 을 사용하도록 권고하고 있다.
Fencing
- Red Hat 클러스터에서 Split-Brain 을 막기 위해 사용하는 전략 중 하나는 Fencing 이다.
다양한 Fencing 방법이 있지만 서버에 내장되어 있는 HP iLO , IBM IMM , Dell iDrac 과 같은 디바이스를 사용하는 것이
권고되는 방법이다.
- 이런 타입의 방법으로 Passive 노드가 Cctive 노드로 부터 Heartbeat 신호를 받지 못하게 되면 Fence Device 를 통해
해당 노드를 Reboot 한다.
Active 노드가 Reboot 되면 Passive 노드는 클러스터 서비스를 시작 하게 된다.
Active 노드를 재부팅 함으로써 Passive 노드는 Active 노드가 더 이상 실행되지 않음을 확인하고 안전하게 서비스를
시작하는 것이다.
- 파트너 노드의 iLO 로 연결되는 NIC에 대한 구성 디자인을 살펴보면 해당 NIC는 Fence 용과 Heartbeat 용으로 같이
구성되어야 한다는 것이다.
이렇게 해야 Heartbeat 연결을 잃어버린 노드가 파트너 노드를 Fence 할 수 없다.
댓글