클러스터
쉽게 말하면
컴퓨터 여러 대를 묶어 한 대처럼 일하게 하는 기술이에요. 큰 계산을 나눠 풀거나, 손님을 여러 대에 나눠 보내거나, 한 대가 고장 나면 다른 대가 바로 이어받게 할 수 있어요.
시험용 정의
클러스터는 여러 대의 컴퓨터를 네트워크로 묶어 하나의 시스템처럼 동작하게 하는 기술이다. 목적에 따라 고계산(HPC)·부하분산(LB)·고가용성(HA) 클러스터로 나눈다.
비유로 이해하기
HPC는 여러 사람이 큰 계산 문제를 나눠 푸는 것, 부하분산은 손님을 여러 창구로 나눠 보내는 것, HA는 당번이 쓰러지면 대기자가 즉시 교대하는 것이다.
자세히
클러스터 종류
| 종류 | 목적 | 대표 기술 |
|---|---|---|
| HPC (고계산용) | 과학 계산 등을 여러 노드에 나눠 병렬 처리 | 베오울프(Beowulf), MPI, PVM |
| 부하분산 (Load Balancing) | 요청을 여러 서버에 나눠 성능·확장성 확보 | LVS(Linux Virtual Server), HAProxy, nginx |
| 고가용성 (HA) | 장애 시 대기 서버로 페일오버해 서비스 지속 | Heartbeat, Pacemaker, Corosync, Keepalived |
| 스토리지 | 여러 서버의 디스크를 하나로 묶음 | GlusterFS, Ceph |
베오울프와 LVS
베오울프는 값싼 PC와 리눅스로 만든 고성능 계산 클러스터의 원조(1994, NASA). LVS는 앞단의 로드밸런서가 요청을 실제 서버(real server)들로 나눠 보내는 리눅스 커널 기반 부하분산 기술로, 관리 도구는 ipvsadm. 분배 방식에는 라운드 로빈, 가중 라운드 로빈, 최소 연결 등이 있다.
시험에 이렇게 나와요
- 노드에 장애가 나도 대기 노드로 넘겨(페일오버) 서비스를 이어 가는 클러스터 → 고가용성(HA)
- 값싼 PC로 과학 계산을 병렬 처리하는 고계산용 클러스터 → 베오울프
확인 문제
Q1. 웹 서버 한 대가 고장 나도 서비스가 멈추지 않도록, 대기 서버가 즉시 넘겨받게 구성했다. 이런 클러스터를 무엇이라 할까?
- 고계산용(HPC) 클러스터
- 고가용성(HA) 클러스터
- 스토리지 클러스터
- 부하분산 클러스터
정답 보기
2번 고가용성(HA) 클러스터
고가용성(HA, High Availability) 클러스터다. 주 서버를 감시하다가(heartbeat) 장애가 나면 대기 서버가 서비스를 넘겨받는(페일오버) 구조다.
Q2. 서버 한 대에 장애가 생겨도 다른 서버가 이어받아 서비스가 멈추지 않게 하는 클러스터는?
- 스토리지 클러스터
- HPC 클러스터
- 고가용성(HA) 클러스터
- 베오울프 클러스터
정답 보기
3번 고가용성(HA) 클러스터
HA(High Availability).
Q3. 저가 PC를 묶어 병렬 계산을 수행하는 리눅스 기반 고계산용 클러스터의 대표 사례는?
- Ceph
- LVS
- 베오울프
- Heartbeat
정답 보기
3번 베오울프
베오울프(Beowulf)다. 값싼 PC를 묶어 고성능 계산을 한다. LVS는 부하 분산, Heartbeat는 고가용성 감시, Ceph는 분산 저장소다.
Q4. 리눅스 커널 기반 부하분산 기술 LVS를 관리하는 명령은?
- lvsctl
- heartbeat
- iptables
- ipvsadm
정답 보기
4번 ipvsadm
ipvsadm이다. LVS(Linux Virtual Server)의 가상 서버와 실제 서버 목록을 설정한다. heartbeat는 서버가 살아 있는지 감시하는 도구다.
Q5. 고가용성 클러스터에서 장애 서버의 역할을 대기 서버가 넘겨받는 것을 무엇이라 하는가?
- 스케일 아웃
- 로드 밸런싱
- 샤딩
- 페일오버
정답 보기
4번 페일오버
페일오버(failover)다. 대기 서버가 장애 서버의 일을 넘겨받는다. 스케일 아웃은 서버를 더 붙여 늘리는 것, 로드 밸런싱은 일을 나눠 주는 것이다.
헷갈리기 쉬운 O·X
Heartbeat는 고가용성 클러스터에서 노드의 생존을 감시하는 데 쓰인다.
정답 보기
O Pacemaker·Corosync와 함께 쓰인다.
부하분산 클러스터의 주된 목적은 과학 계산의 병렬 처리다.
정답 보기
X 그건 HPC. 부하분산은 요청을 나눠 처리량과 가용성을 높이는 것.