목차/04. HA·Load Sharing 모드

04HA·Load Sharing 모드HA·Load Sharing 모드

ClusterXL의 핵심은 어떤 모드로 묶느냐 입니다. 이 장은 High Availability와 Load Sharing의 동작 원리, 예제 토폴로지, 모드 비교, 그리고 페일오버를 정리합니다.

High Availability — 한 대만 Active

High Availability 클러스터에서는 한 멤버만 Active이고 나머지는 Standby 입니다(Active/Standby). 멤버마다 우선순위가 있어 가장 높은 멤버가 평소 게이트웨이 역할 을 하고, 그 멤버가 죽으면 다음 우선순위 멤버로 제어가 넘어갑니다. State Synchronization을 켜면 Standby가 Active의 연결 상태를 늘 갱신받아, 페일오버 때도 연결이 끊기지 않 습니다.

동작 원리는 이렇습니다. 클러스터가 VIP를 Active 멤버의 물리 인터페이스 MAC에 연결 하므로, VIP로 오는 모든 트래픽이 실제로는 Active 멤버로 라우팅·필터링 됩니다. Active는 방화벽 역할에 더해 자기 상태·커널 테이블 변화를 Standby들에게 알려 줍니다. 페일오버가 나면 다음 우선순위 Standby가 Active가 되어 GARP를 뿌려 VIP를 자기 MAC에 다시 연결 합니다.

복구 후 동작은 설정에 달렸습니다 — Maintain current active(복구된 멤버는 Standby로 남음) 또는 Switch to higher priority(우선순위 높은 멤버가 다시 Active) 입니다. HA 모드는 IPv4·IPv6를 모두 지원합니다.

!두 멤버 ClusterXL 예제 토폴로지 *① 내부 네트워크 ② 내부 스위치(내부 클러스터 IP 10.10.0.100) ③ Cluster Member A(내부 가상 10.10.0.1 · Sync 10.0.10.1 · 외부 가상 192.168.10.1) ④ Cluster Member B(내부 가상 10.10.0.2 · Sync 10.0.10.2 · 외부 가상 192.168.10.2) ⑤ 외부 스위치(외부 클러스터 IP 192.168.10.100) ⑥ 인터넷*

위 예제처럼 각 멤버는 외부·내부·동기화 세 인터페이스 를 갖고, 같은 방향 인터페이스는 모두 같은 네트워크 에 있어야 합니다(멤버 사이에 라우터가 있으면 안 됨). 클러스터는 외부·내부 각각 하나의 VIP 를 가지며, 인터넷을 향한 가상 인터페이스에만 공인 IP가 필요 하고 멤버들의 물리 IP는 사설이어도 됩니다(공인 IP 절약).

Load Sharing — 모두 Active

Load Sharing모든 멤버가 Active로 트래픽을 나눠 처리 해 총 처리량을 높입니다(Active/Active). 클러스터의 결정 함수(decision function)각 패킷을 어느 멤버가 처리할지 정해, 적어도 한 멤버는 처리하되(차단 방지) 두 멤버가 같은 패킷을 처리하지 않게(중복 방지) 합니다. 한 멤버가 죽으면 그 멤버가 처리하던 연결을 나머지가 즉시 넘겨받 으므로 HA도 함께 제공하는 셈입니다.

받는 방식에 따라 두 가지로 나뉩니다. Multicast 모드 는 VIP를 멀티캐스트 MAC에 연결해 모든 멤버가 패킷을 받 고 각자 처리 여부를 결정합니다 — 부하 분산이 최적이지만 일부 스위치가 멀티캐스트 MAC의 ARP 응답을 받아들이지 못 합니다. Unicast 모드 는 단일 멤버인 Pivot 만 패킷을 받아 다른 멤버에 분배 합니다 — 멀티캐스트가 안 되는 환경에 맞고, Pivot은 분배 부담 때문에 보통 더 적은 몫을 맡습니다(non-Pivot 멤버도 받은 패킷을 처리하므로 여전히 Active). Load Sharing 모드는 State Synchronization이 필수 이고 IPv6를 지원하지 않 습니다.

모드 비교

어떤 모드를 고를지는 조직의 필요에 달렸습니다. HA는 안전한 연결성, Load Sharing은 안전한 연결성 + 성능 향상, Active-Active는 서로 다른 지역(네트워크)에 멤버 배치 가 필요할 때입니다(Active-Active 모드).

항목High AvailabilityLoad Sharing MulticastLoad Sharing UnicastActive-Active
고가용성OOOO
부하 분산XOOX
성능GoodExcellentVery GoodGood
State Sync선택필수필수선택
하드웨어 지원모든 라우터일부 스위치만모든 라우터모든 라우터
트래픽 처리 멤버 수1NNN

페일오버

Failover(페일오버)멤버가 제대로 동작하지 못할 때 다른 멤버가 자동으로 넘겨받는 동작입니다. Critical Device가 "problem"을 보고하거나(예: fwd 프로세스 실패, 정책 미설치), 멤버가 동료의 CCP 패킷을 못 받으면 페일오버가 일어납니다. CCP는 멤버 간 heartbeat를 유지해, 정해진 시간 동안 CCP가 안 오면 그 멤버를 down으로 간주 합니다.

HA에서는 State Sync가 없으면 페일오버 시 기존 연결이 끊기 지만, Load Sharing에서는 모든 멤버가 늘 동기화되어 있어 연결이 끊기지 않 습니다. 모든 멤버가 문제일 때는(예: sync 크로스 케이블 고장) ClusterXL이 하나만 골라 Active(!) 상태로 살려 둡니다.

복구된 멤버는 먼저 동료 Active 멤버에서 정책을 가져오려 시도 하고(더 최신이라 가정), 실패하면 자기 정책과 관리 서버 정책을 비교해 최신을 가져옵니다 — 이렇게 모든 멤버가 늘 같은 정책 을 쓰게 합니다. 다만 Security Server 연결, 멤버 자신이 시작한 연결, CPAS/PSL TCP 연결 등 일부 연결은 페일오버를 못 넘길 수 있습니다.