2013. 12. 14. 22:37

클러스터링(Clustering)이란 복수개의 장비를 묶어서 마치 이것이 하나의 거대한 장비처럼 인식되도록 하거나 동작하도록 만들어진 전산 환경을 일컷는 말이다.  클러스터링 환경에서는 따라서 특정 장비에 문제가 생기거나 특정 장비에서 실행중인 어플리케이션에 문제가 발생하더라도 해당 장비의 문제로 국한시키고 이것이 특정 서비스 혹은 기능 전체에 영향을 미치지 않도록 제어가 가능하기 때문에 대규모 시스템 혹은 안정적인 기능의 수행이 필요한 대부분의 시스템들에 채용되고 있다.


일반적인 클러스터링 구현

클러스터링을 구현하는 방법은 기본적으로 가상 IP(Virtual IP)를 기반한다.  서비스를 제공하는 실제 장비는 물리적인 IP를 갖고, 이 앞단에 가상 IP를 갖는 장비를 두고 이 장비에서 실제 장비로 데이터 처리를 혹은 요청을 중계하는 방식을 갖는다.  따라서 서비스를 위해 외부에 공개된 네트워크 접속 정보는 가상화된 IP에 근거한 정보가 제공되며 내부 시스템은 철저하게 가려져있는게 일반적인 원칙이다.

통상 이와 같이 가상 IP를 가지고 이를 각각의 물리적인 장비에 외부에서 요청된 처리를 중계해주는 역할을 스위치 장비에서 처리를 해주며 이 장비는 일반적인 허브등과는 차별화된 기능을 수행한다. (따라서 고가이며 이에 대한 범용적인 처리를 위한 대규모 장비들이 데이터센터등에 위치한다.)  스위치 이외에 일반적인 장비를 이용해서 소프트웨어적인 기법으로 이를 구현할 수도 있으며 특정한 목적이 필요한 경우에는 S/W적인 기법을 이용한 스위치 장비를 사용하기도 한다.


상태에 따른 클러스터링의 종류

기본적인 클러스터링은 위에서 언급한 바와 같이 가상 IP를 통해 들어온 요청을 물리적인 장비로 분기시켜주는 기능을 수행한다.  내부적으로 각각의 요청간에 특정 정보를 관리해야 하는 경우에 따라 클러스터링 모델에 차이가 있을 수 있다.

예를 들어 웹 서버에 대한 클러스터링의 경우에는 해당 사용자에 대한 세션 정보의 공유가 필요하며 이 정보는 통상 쿠키(Cookie)를 통해 이루어지므로 클러스터링을 위해 기반된 어플리케이션이 특정한 기능을 별도로 수행할 필요없이 해당 쿠키 정보를 엑세스 할 수 있으면 된다.

반면에 대규모 DBMS 시스템의 경우에는 각 요청단에서 이루어진 Transaction에 대한 상태 정보와 해당 데이터를 DBMS에 Commit 시킬지 Rollback시킬지 여부에 대한 정보 관리가 필요하다.  또한 개별 Transaction에 한 서버에서만 이루어지는 것이 아니라 복수 서버에서 나누어 처리되기 때문에 한 서버에서 Rollback을 수행했을 때 다른 서버에서 이루어진 Transaction도 마찬가지로 복구 처리가 이루어져야 한다.

이 경우에는 개별 장비단에서 동작하는 어플리케이션들이 상호 긴밀하게 사용자에 대한 인지와 해당 사용자에 의해 이루어진 각각의 요청 업무에 해당 상태 및 이력들을 보관하고 있어야 하기 때문에 단순한 구조가 아닌 복잡한 S/W Architecture 및 정보 교환 모델을 요구한다.

따라서 이와 같은 복잡한 상태 정보의 Sharing을 가능하게 해주는 기능을 해당 소프트웨어가 탑재하고 있는냐 없느냐에 따라서 해당 소프트웨어의 가격이 결정된다.  (통상 이런 클러스터링 기능이 탑재된 제품의 가격은 억대다.)

Active/Active 모델과 Active/Standby 모델

이러한 클러스터링 기술을 기반으로 안정적인 시스템 운용 모델을 가져가는 데표적인 형태가 바로 Active/Active 모델과 Active/Standby 모델로 구분되는 운용 모델이다.

Active/Active 모델은 두 대의 장비를 서로 서비스에 운용하면서 두 장비에 있는 어플리케이션이 서로 상태 정보를 공유함으로써 장비의 활용성을 높이고 높은 Throughput을 낼 수 있는 구조를 나타낸다.  통상 오라클이나 J2EE 엔진등이 이런 기반 기술을 지원한다.

Active/Standby 모델은 실제 서비스는 한 장비에서 운용하고 다른 한대는 장애 대비용 시스템으로 사용한다.  만약 한 장비에서 하드웨어 혹은 소프트웨어적인 결함이 발생되면 해당 장비의 기능이 통채로 대기중인 장비로 이전되며 대기중인 장비에서 기능 수행을 위한 어플리케이션이 실행된다.  ( 이 상황에서 장애 장비에서 실행중인 데이터 처리가 유실될 수 있다.) 

Active/Standby 모델은 어플리케이션 자체가 이중화 방식을 지원하지 못하는 경우에 사용되며 이 경우에도 데이터 처리를 넘겨주는 S/W가 필요하다.  이를 위한 기반 S/W는 통상 OS 수준에서 제공되며 많이 알려진 제품으로는 HP의 MC/SG(MC Service Guide)다.


출저: 클러스터링 환경

Posted by hoonihoon