- 클러스터는 여러 대의 컴퓨터를 묶어 한 대처럼 쓰는 구성이다.
- 목적에 따라 셋으로 나뉜다 — 고계산용(HPC) · 고가용성(HA) · 부하분산(LB).
- 고계산용은 빠르게 계산, 고가용성은 멈추지 않게, 부하분산은 나눠서 처리한다.
- 실무의 웹 서비스는 대개 부하분산 + 고가용성을 함께 구성한다.
- 리눅스로 만든 대표적인 고계산용 클러스터가 베어울프(Beowulf) 클러스터다.
기준: 리눅스마스터 2급 출제 기준오류 제보
[ 사용자 ]
│
▼
┌─────────────────────────────┐
│ 여러 대의 컴퓨터(노드)를 │
│ 묶어 한 대처럼 보이게 한다 │
│ ▢ ▢ ▢ ▢ │
└─────────────────────────────┘| 구분 | 스케일 업(scale-up) | 스케일 아웃(scale-out) |
|---|---|---|
| 방법 | 한 대를 더 좋은 부품으로 바꾼다 | 대수를 늘린다 |
| 한계 | 부품 성능에 천장이 있고 값이 급격히 오른다 | 늘리는 만큼 관리할 대상이 는다 |
| 장애 | 그 한 대가 멈추면 전부 멈춘다 | 한 대가 멈춰도 나머지가 남는다 |
| 클러스터와의 관계 | — | 클러스터가 이 방식이다 |
| 종류 | 목적 | 핵심어 |
|---|---|---|
| 고계산용 클러스터 (HPC) | 빠른 계산 | 병렬 처리, 슈퍼컴퓨터 |
| 고가용성 클러스터 (HA) | 멈추지 않는 서비스 | 이중화, 장애 극복 |
| 부하분산 클러스터 (LB) | 요청을 나눠 처리 | 트래픽 분산 |
정의를 갈라 외우는 것이 이 단원의 전부다. 셋 중 무엇을 설명한 것인지 고르는 형태로 나온다.
셋을 가르는 가장 빠른 질문은 "여러 대가 무엇을 나누는가" 다.
| 질문 | 고계산용(HPC) | 고가용성(HA) | 부하분산(LB) |
|---|---|---|---|
| 무엇을 나누나 | 하나의 큰 작업을 조각내어 | 나누지 않는다. 같은 일을 대신할 준비만 한다 | 서로 무관한 많은 요청을 한 건씩 |
| 노드끼리의 관계 | 조각을 주고받으며 협력 | 서로 감시 | 서로 몰라도 된다 |
| 잘됐다는 기준 | 계산이 빨리 끝났다 | 서비스가 끊기지 않았다 | 많은 요청을 받아냈다 |
| 한 대가 멈추면 | 그 작업이 느려지거나 다시 돌려야 한다 | 대기 노드가 이어받는다 | 남은 노드가 요청을 나눠 받는다 |
| 대표 이름 | 베어울프 | 하트비트(heartbeat) | LVS |
| 항목 | 내용 |
|---|---|
| 풀네임 | High Performance Computing |
| 목적 | 하나의 큰 계산을 나눠 동시에 처리 |
| 쓰는 곳 | 기상 예측, 유전자 분석, 시뮬레이션 |
| 대표 | 베어울프(Beowulf) 클러스터 |
사용자 ──► 마스터 노드 ──┬── 계산 노드 1 조각 A 계산
(작업을 쪼개 ├── 계산 노드 2 조각 B 계산
나눠 주고 ├── 계산 노드 3 조각 C 계산
결과를 모은다) └── 계산 노드 4 조각 D 계산
▲ │
└── 결과를 합쳐 하나의 답 ──┘| 항목 | 내용 |
|---|---|
| 풀네임 | High Availability |
| 목적 | 장애가 나도 서비스가 계속되게 |
| 방식 | 평소엔 주 서버가 일하고, 죽으면 대기 서버가 이어받는다 |
| 핵심어 | 이중화 · 장애 극복(failover) · 하트비트(heartbeat) |
주 서버 (Active) ──── 서비스 중
│ 하트비트로 서로 살아 있는지 확인
대기 서버 (Standby) ── 대기
주 서버가 죽으면 → 대기 서버가 즉시 이어받는다 (failover)고가용성 구성에서 쓰는 말은 순서대로 이어진다.
| 용어 | 뜻 |
|---|---|
| 단일 장애점(SPOF) | 그것 하나가 멈추면 전체가 멈추는 지점. 고가용성은 이것을 없애는 일이다 |
| 이중화 | 같은 역할을 하는 장비를 둘 이상 두는 것 |
| 하트비트(heartbeat) | 노드끼리 주기적으로 주고받는 "나 살아 있다" 신호 |
| 장애 극복(failover) | 신호가 끊기면 대기 노드가 역할을 넘겨받는 동작 |
| 장애 복구(failback) | 고장 난 노드를 고친 뒤 원래대로 되돌리는 동작 |
| 구성 | 평소 | 장애가 나면 | 특징 |
|---|---|---|---|
| Active-Standby | 한 대만 일하고 한 대는 대기 | 대기 서버가 이어받는다 | 단순하다. 대기 장비가 평소엔 논다 |
| Active-Active | 둘 다 일한다 | 남은 한 대가 전부 떠맡는다 | 자원을 다 쓰지만, 한 대로도 버틸 여유가 있어야 한다 |
가용성은 "살아 있는 시간의 비율"이라 숫자로 약속한다. 9가 하나 늘 때마다 허용되는 정지 시간이 10분의 1로 준다.
| 가용성 | 1년 중 멈춰도 되는 시간 |
|---|---|
| 99% | 약 3.65일 |
| 99.9% | 약 8.76시간 |
| 99.99% | 약 53분 |
| 99.999% | 약 5분 |
| 항목 | 내용 |
|---|---|
| 풀네임 | Load Balancing |
| 목적 | 들어오는 요청을 여러 서버에 나눠 보낸다 |
| 쓰는 곳 | 웹 서버, 쇼핑몰처럼 접속이 많은 서비스 |
| 대표 | LVS(Linux Virtual Server) |
요청
│
┌─────┴─────┐
부하분산기 (로드밸런서)
┌────┬────┬────┐
웹1 웹2 웹3 웹4LVS(Linux Virtual Server)는 리눅스 커널의 기능으로 부하분산기를 만드는 프로젝트다.
| 이름 | 역할 |
|---|---|
| 가상 IP(VIP) | 사용자가 접속하는 대표 주소 하나. 뒤에 서버가 몇 대인지 사용자는 모른다 |
| 디렉터(director) | 요청을 받아 뒤로 넘기는 부하분산기 |
| 리얼 서버(real server) | 실제로 요청을 처리하는 뒤쪽 서버들 |
ipvsadm | LVS의 분배 규칙을 설정하는 관리 명령 |
| 스케줄링 | 고르는 기준 |
|---|---|
| 라운드 로빈(Round Robin) | 차례대로 돌아가며 한 건씩 |
| 가중 라운드 로빈 | 성능 좋은 서버에 더 자주 |
| 최소 연결(Least Connection) | 지금 연결이 가장 적은 서버에 |
| 가중 최소 연결 | 연결 수에 서버 성능 가중치까지 고려 |
웹 서비스는 대개 부하분산과 고가용성을 함께 구성한다. 요청을 여러 서버로 나누면서(부하분산), 한 대가 죽어도 나머지가 처리하니(고가용성) 두 목적이 자연스럽게 맞물리기 때문이다.
사용자 요청
│
┌─────────────┴─────────────┐
부하분산기 A (Active) ══하트비트══ 부하분산기 B (Standby) ← 고가용성
└─────────────┬─────────────┘
┌───────┼───────┐
웹1 웹2 웹3 ← 부하분산| 상황 | 필요한 것 | 조합 |
|---|---|---|
| 접속이 몰리는 쇼핑몰·포털 | 요청 분산 + 무중단 | 부하분산 + 고가용성 |
| 기상 예측·유전자 분석 | 큰 계산을 빨리 | 고계산용 |
| 요청은 많지 않지만 멈추면 안 되는 은행 원장 DB | 무중단 | 고가용성 |
지문은 클러스터 이름 대신 핵심어를 흘린다. 단어를 보고 칸을 고르는 연습을 한다.
| 지문에 나온 표현 | 답 |
|---|---|
| "하나의 큰 연산을 여러 노드가 나누어 병렬로" | 고계산용 |
| "슈퍼컴퓨터에 준하는 성능을 값싼 PC로" | 고계산용(베어울프) |
| "MPI·PVM 같은 병렬 라이브러리를 사용" | 고계산용 |
| "장애가 나도 서비스가 중단되지 않도록" | 고가용성 |
| "주 서버와 대기 서버, 하트비트로 상태 확인" | 고가용성 |
| "이중화", "장애 극복(failover)" | 고가용성 |
| "들어오는 요청을 여러 서버에 고르게" | 부하분산 |
| "대량의 웹 트래픽", "라운드 로빈" | 부하분산 |
| "LVS", "가상 IP 하나로 여러 서버를" | 부하분산 |
| "지리적으로 떨어진 컴퓨터의 남는 자원을" | 클러스터가 아니라 그리드 |
| 개념 | 뜻 |
|---|---|
| 클러스터 | 여러 컴퓨터를 묶어 한 대처럼 — 같은 장소, 긴밀히 연결 |
| 그리드 컴퓨팅 | 흩어져 있는 컴퓨터의 남는 자원을 모아 쓴다 |
| 클라우드 컴퓨팅 | 자원을 빌려 쓰는 서비스 형태 |
| 임베디드 시스템 | 특정 기능을 위해 기기에 내장된 시스템 |
내일은 가상화 기술과 제품별 특징을 다룬다.
선택지를 클릭하면 정답·해설이 펼쳐집니다.
문제 1
다음 중 시스템에 장애가 발생하더라도 서비스가 중단되지 않도록 구성하는 클러스터로 알맞은 것은?
문제 2
다음 중 클러스터의 종류로 보기 어려운 것으로 알맞은 것은?
문제 3
다음 중 값싼 PC들을 리눅스로 묶어 구성한 대표적인 고계산용 클러스터로 알맞은 것은?
문제 4
다음 중 들어오는 요청을 여러 서버에 나누어 보내 처리량을 높이는 클러스터로 알맞은 것은?
문제 5
다음 중 접속량이 많은 웹 서비스를 구성할 때 일반적으로 함께 적용하는 클러스터의 조합으로 알맞은 것은?