Server clusters

유석현(SeokHyun Yu)·2023년 4월 14일
0

분산 시스템

목록 보기
19/27
post-thumbnail

서버 클러스터는 일반적으로 고성능의 하드웨어와 네트워크를 통해 연결된 여러 서버 기계로 구성되며, 고대역폭낮은 지연 시간을 제공한다.

이러한 클러스터는 일반적으로 세 가지 논리적 계층(스위치, 애플리케이션/처리 서버, 데이터 처리 서버)으로 구성되며, 단일 액세스 포인트(스위치)를 통해 액세스 투명성(Access transparency)을 제공한다.

이를 통해 클라이언트는 복수의 서버가 존재하는 것을 인식하지 못하게 된다.

서버 클러스터에 대한 액세스는 전송 계층 스위치를 통해 이루어지며, 스위치는 요청을 적절한 서버로 전달한다.

스위치는 서버 간의 부하 분산 역시 담당한다.

단일 액세스 포인트의 문제점은 스위치가 다운될 시 클러스터 전체가 사용 불가능해지는 것이다.

이 문제를 해결하기 위해, 여러 액세스 포인트를 제공하거나 분산 서버를 사용할 수 있다.

분산 서버에서는 MIPv6 원칙을 활용하여 홈 에이전트(Home agent) 방식을 통해 안정적인 액세스 포인트를 제공하며, 클러스터 내의 다른 노드로 액세스 포인트가 전환되는 경우에도 클라이언트에게 영향을 주지 않는다.

그러나 MIPv6의 홈 에이전트 및 액세스 포인트는 병목 현상이 발생할 수 있는 문제가 있다.

이를 해결하기 위해 경로 최적화 기능(route optimization feature)을 사용해서 클라이언트가 직접 특정 노드와 통신할 수 있도록 하거나, 액세스 포인트를 여러개 둘 수 있다.

이를 통해 분산 서버에서 다양한 클라이언트가 단일 서버와 통신하는 것처럼 보이게 만들 수 있다.


Managing server clusters

서버 클러스터 관리는 일반적으로 두 가지 접근 방식이 사용된다.

첫 번째는 관리자가 원격 클라이언트에서 노드로 로그인하여 모니터링, 설치 및 구성 요소 변경과 같은 로컬 관리 명령을 실행하는 것이다.

두 번째 접근 방식은 관리용 기계(administration machine)에서 인터페이스를 제공하여 하나 이상의 서버로부터 정보를 수집하고 구성 요소를 업그레이드하거나 노드를 추가 및 제거하는 것이다.

이 방식은 실무에서 널리 적용되며, 서버 그룹에 대한 집단 작업을 더 쉽게 수행할 수 있다.

그러나 클러스터가 수십 개의 노드를 넘어서게 되면 이전 방식의 관리는 적합하지 않게 된다.

매우 큰 클러스터는 지속적인 수리 관리가 필요하며, 서버의 고장 확률(p)과 클러스터 내의 서버 수(N)를 고려해야 한다.

이를 통해 모든 서버가 정상 작동할 확률을 계산할 수 있다.

대규모 시스템 관리에 대한 체계적인 접근 방식이 없으나, 자기 관리 솔루션(self-managing solutions)이 결국 적용될 것으로 예상된다.

이러한 자기 관리 솔루션은 서버 클러스터의 관리를 효율적으로 수행할 수 있도록 돕는다.

profile
Backend Engineer

0개의 댓글