클러스터는 일반적으로 여러대의 컴퓨터를 서로 연결해 성능을 향상시키고 다운타임을 최소화할 수 있는 기술을 의미한다. 컴퓨터를 클러스터링한다는 것은 그 자체만으로는 어려운 기술이 아니고, 어떤 기술을 사용해 클러스터링함으로써 고성능, 고가용성이라는 목표를 어떻게 달성할 수 있는지가 클러스터의 핵심이다.
최초의 클러스터는 지난 84년 구 디지탈의 VAX 클러스터를 시초로 80년대부터 다양한 형태로 만들어지기 시작했다. 이러한 클러스터는 디스크 공간같은 하드웨어자원을 공유할 수 있고, 여러 사용자에게 컴퓨팅 자원을 제공할 수 있게 돼 주목받게 됐으며 기술발전을 거듭해 93년에 최초의 유닉스 클러스터 기술이 개발됐으며 99년에는 최초의 싱글시스템 이미지 유닉스 클러스터가 탄생됐다.
클러스터링은 목적에 따라 하나의 작업을 여러대의 컴퓨터에서 병렬형으로 분산처리해 전체적인 처리율을 높이기 위한 병렬처리(parallel processing) 클러스터링과 클러스터 내의 여러 컴퓨터들의 작업이 중단되지 않고 지속적으로 수행하게 하는 고가용(HA:High Availability) 클러스터링으로 구분된다.
병렬처리 클러스터링의 대표적인 것은 MPP(Massive Parallel Processing)다. 그러나 MPP시스템에서 높은 성능을 얻기 위한 애플리케이션은 각 노드간에 교환되는 데이타를 최소화할 수 있도록 잘 분리돼야 한다. 이런 이유로 인해 데이터 공유가 필수적이고 빠른 응답시간을 요구하는 OLTP 애플리케이션들은 MPP시스템에 적합하지 않으며, 주로 계산위주의 고급 연산에 사용된다. 현재 세계에서 가장 빠른 MPP시스템은 핵 시뮬레이션에 사용되는 ASIC Q이며 HP 4096개의 알파프로세서가 병렬형으로 클러스터링 돼 있다.
HA 클러스터링은 SPOF(Single Point Of Failure)를 방지하는 고가용성 구현을 위한 목적이다. 클러스터의 어떤 노드에 장애가 발생하더라도 클러스터 환경은 ‘Fail over’ 기능에 의해 그 장애를 고립화시켜 전체 시스템이 장애없이 가동될 수 있으며, 해당 노드의 장애가 복구되면 곧바로 클러스터 시스템에 다시 합류하게 된다. 일반적으로 클러스터링이라 하면 바로 HA 클러스터링을 지칭하는 것이다. HA 클러스터링의 핵심기능은 각 노드간을 고성능·고대역폭으로 연결시켜주는 인터커넥트(interconnect)와 여러 노드를 하나의 시스템처럼 기능하고 관리할 수 있게 하는 싱글시스템 이미지(SSI:Single System Image) 그리고 대용량 메모리 등 3가지다.
얼마 전까지만 해도 HA 클러스터는 2대 이상을 넘어서지 못했다. 그 이유는 2대가 넘어서면 관리하기가 힘들고 안정적으로 HA를 유지하기가 어렵기 때문이다. 하지만 진보된 기술 덕택에 2노드 이상의 확장성이 가능해져 DB 시스템에 클러스터링에 의한 분산컴퓨팅 바람이 불고 있다.
즉 한대의 DB서버가 처리하던 DB를 여러대의 컴퓨터에서 나누어 처리하도록 함으로써 부하를 줄여주는 분산 또는 병렬 컴퓨팅(distributed or parallel computing)이 최근의 경기침체와 지난 9·11 뉴욕 테러사건 이후 DB분야에서도 주목받고 있다. DB시스템을 분산컴퓨팅방식으로 구축하면 DB용량을 거의 무한대까지 확장할 수 있다. 전문가들은 향후 DB의 대부분이 클러스터링을 채택할 것으로 예상하고 있다.
<신혜선기자 shinhs@etnews.co.kr>
관련 통계자료 다운로드 클러스터파일시스템과 데이터 입출력