서버 클러스터는 일반적으로 고성능의 하드웨어와 네트워크를 통해 연결된 여러 서버 기계로 구성되며, 고대역폭
및 낮은 지연 시간
을 제공한다.
이러한 클러스터는 일반적으로 세 가지 논리적 계층(스위치
, 애플리케이션/처리 서버
, 데이터 처리 서버
)으로 구성되며, 단일 액세스 포인트(스위치)
를 통해 액세스 투명성(Access transparency)
을 제공한다.
이를 통해 클라이언트는 복수의 서버가 존재하는 것을 인식하지 못하게 된다.
서버 클러스터에 대한 액세스는 전송 계층 스위치
를 통해 이루어지며, 스위치는 요청을 적절한 서버로 전달한다.
스위치는 서버 간의 부하 분산
역시 담당한다.
단일 액세스 포인트의 문제점은 스위치가 다운될 시 클러스터 전체가 사용 불가능해지는 것이다.
이 문제를 해결하기 위해, 여러 액세스 포인트
를 제공하거나 분산 서버
를 사용할 수 있다.
분산 서버에서는 MIPv6
원칙을 활용하여 홈 에이전트(Home agent)
방식을 통해 안정적인 액세스 포인트를 제공하며, 클러스터 내의 다른 노드로 액세스 포인트가 전환되는 경우에도 클라이언트에게 영향을 주지 않는다.
그러나 MIPv6의 홈 에이전트 및 액세스 포인트는 병목 현상
이 발생할 수 있는 문제가 있다.
이를 해결하기 위해 경로 최적화 기능(route optimization feature)
을 사용해서 클라이언트가 직접
특정 노드와 통신할 수 있도록 하거나, 액세스 포인트를 여러개 둘 수 있다.
이를 통해 분산 서버에서 다양한 클라이언트가 단일 서버와 통신하는 것처럼 보이게 만들 수 있다.
Managing server clusters
서버 클러스터 관리는 일반적으로 두 가지 접근 방식이 사용된다.
첫 번째는 관리자가 원격 클라이언트
에서 노드로 로그인하여 모니터링, 설치 및 구성 요소 변경과 같은 로컬 관리 명령
을 실행하는 것이다.
두 번째 접근 방식은 관리용 기계(administration machine)
에서 인터페이스
를 제공하여 하나 이상의 서버로부터 정보를 수집하고 구성 요소를 업그레이드하거나 노드를 추가 및 제거하는 것이다.
이 방식은 실무에서 널리 적용되며, 서버 그룹에 대한 집단 작업을 더 쉽게 수행할 수 있다.
그러나 클러스터가 수십 개의 노드를 넘어서게 되면 이전 방식의 관리는 적합하지 않게 된다.
매우 큰 클러스터는 지속적인 수리 관리가 필요하며, 서버의 고장 확률(p)과 클러스터 내의 서버 수(N)를 고려해야 한다.
이를 통해 모든 서버가 정상 작동할 확률을 계산할 수 있다.
대규모 시스템 관리에 대한 체계적인 접근 방식이 없으나, 자기 관리 솔루션(self-managing solutions)
이 결국 적용될 것으로 예상된다.
이러한 자기 관리 솔루션은 서버 클러스터의 관리를 효율적으로 수행할 수 있도록 돕는다.