February 15, 2020
클러스터의 사전적인 의미는 무리, 송이 또는 한 덩어리라는 뜻으로 컴퓨터 데이터 통신 분야에서는 단말 제어 장치와 그에 접속된 복수 단말의 총칭을 일컫는다. 서버 분야에서의 클러스터는 사용하는 목적에 따라 크게 고계산용 클러스터(HPC: High Performance Computing Cluster), 부하분산 클러스터(LVS: Linux Virtual Server Cluster), 고가용성 클러스터(HAC, High Availability Cluster) 등 3가지로 구분할 수 있다. HPC는 고성능의 계산 능력을 제공하기 위한 슈퍼컴퓨터 구성에 주로 사용하고, LVS와 HA는 보통 함께 구성하여 웹 서버를 비롯한 서버 분야에서 주로 사용합니다.
HPC 클러스터는 고성능의 계산 능력을 제공하기 위한 목적으로 제작되는데 주로 과학계산용으로 활용되고, 흔히 부르는 슈퍼컴퓨터가 HPC로 구성하여 제작된다. HPC는 다른 말로 베오울프 클러스터(Beowulf cluster)라고도 불리운다. 베오울프 클러스터는 NASA 산하연구소인 CESDIS에서 슈퍼컴퓨터인 Cray의 임대 기간 종료에 대비하기 위해 병령처리용 슈퍼컴퓨터의 개발을 시작하는 프로젝트에서 탄생하였다. 프로젝트 이름을 베오울프라 하여 개발을 시작하였고, 그 결과물로 채널본딩(Channel Bonding: 네트워크 안정성이나 전송속도를 높이기 위해서 두 개 이상의 네트워크 인터페이스를 다루는 방식)한 16노드 병렬컴퓨터를 만들어냈다. 이후 이러한 머신들을 베오울프류 컴퓨터라 부르게 되었다. 최근 CPU, Motherboard, Disk 등 하드웨어의 성능 개선, 저렴한 가격과 개발 도구인 GNU C Complier, 관련 프로그램 툴, PVM(Parallel Virtual Machine) 및 MPI(Message Passing Interface)같은 메시지 패싱 라이브러리들이 등장하면서 더욱 높은 성능을 내고 있다.
부하분산 클러스터는 보통 LVS라고 부르는데, 대규모의 서비스를 제공하기 위한 목적으로 사용되는 클러스터 기법으로 이용자가 많은 웹 서비스 등에 활용가치가 높다. 보통 여러대의 리얼 서버에 부하를 분산해 주는 로드 밸런서를 두고 운영하는 방법이다.
지속적인 서비스 제공을 목적(무중단 배포, 오류 발생 시 대처)으로 하는 클러스터로 위에 열거된 부하분산 클러스터와 연동하여 많이 사용한다. 부하분산 클러스터에서 로드 밸런서에 오류가 발생하여 동작을 하지 않는다면 리얼 서버가 정상적인 동작을 하더라도 서비스를 제공하지 못하게 된다. 이러한 문제점을 해결하기 위해 하나의 Primary Node가 부하분산의 처리를 수행하고 다른 하나의 Backup Node(또는 Secondary Server)가 Primary Node의 상태를 체크하고 있다가 이상이 발생하면 서비스를 이어받도록 구성하는 방법이다.