YoonWould!!

[용어]클러스터 본문

<인턴생활>/[인프라]

[용어]클러스터

Hading 2019. 4. 16. 11:37
728x90

클러스터

 

여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합

 

기본적으로 고속 근거리 통신망으로 구성된다.

서버로 사용되는 노드에는 각각의 운영 체제가 실행된다.

 

<근거리 통신망(LAN)>

=> 이더넷, Wifi와 인터넷 프로토콜인 TCP/IP를 사용한다. 요즘은 무선랜(IEEE 802.11 시리즈)도 많이 사용되고 있다.

 

클러스터 특징

 

- 작업 부하분산(Load-Balancing) 

 클러스터는시스템의 전반적인 성능을 향상시키기 위해 계산 부하량을 여러 노드에서 분담하여 병렬 처리하도록 구성 하는 방식이다. 웹서버 클러스터의 예를 들면, 각기 다른 종류의 요구들을 각기 다른 노드에서 처리하도록 할당함으로써 전반적인 응답시간을 최소화 할 수 있다. 그렇지만 애플리케이션에 따라 작업 부하를 분산하는 방법은 크게 다를 수 있다. 단순히 라운드 로빈 방식을 사용하는 웹 서버와 과학 계산을 하는데 사용되는 클러스터 시스템과의 방식은 다르다.

 

2대의 서버와 4대의 사용자 시스템으로 구성된 작업 부하 분산용 클러스터

 

높은 가용성"(High-availability, HA)

 클러스터는 시스템의 가용성을 높이기 위한 방법중 하나이다. 하나의 노드에 장애가 생겼을 때 연결된 다른 노드의 컴퓨터가 서비스를 이어받아(Failover) 계속해서 서비스되도록 한다.

 

클러스터 설계 및 구성

 

클러스터를 설계하는데 있어서 중요한 문제 중의 하나는 어떻게 각각의 노드들을 밀접하게 연결을 할 것인가이다. 처리할 하나의 컴퓨터 일(job)은 노드들 간에 빈번하게 통신을 해야 한다. 이것은 독립된 네트워크를 사용하여 동일한 아키텍처, 동일 기종의 노드들이 밀도있게 설치되어야 한다는 말이다.

 

전형적인 베오울프 구성

베오울프 시스템은 주(Master) 서버와 종속(Slave) 서버들로 구성되어 있다. 주 서버는 컴퓨터의 일들을 나누고 관리하며 종속 서버는 일을 처리하고 계산을 하는 서버들이다. 애플리케이션 프로그램은 주 서버와 통신을 할 뿐 종속 서버라고 불리는 계산 노드들과는 통신을 하지 않는다. 일반적으로 주 서버는 두 개의 네트워크 인터페이스를 가지고 있다. 하나는 종속 서버와의 통신을 위한 내부 네트워크이고 다른 하나는 외부 통신을 위한 범용 네트워크이다. 종속 서버는 일반적으로 자체의 운영 체제와 메모리 그리고 저장장치를 가지고 있다. 그러나 내부용 네트워크는 대용량 공유 파일 서버와 연결될 수도 있다. 컴퓨터 클러스터는 전통적으로 동일 운영 체제 위에 물리적으로 분리된 컴퓨터들의 집합이라고 생각한다.

 

  • 클러스터 노드 : 프로세싱 자원을 제공하는 시스템
  • 클러스터 관리자 : 노드를 서로 연결하여 단일 시스템처럼 보이게 만드는 로직을 제공

클러스터 데이터 공유 및 통신

 

가장 폭넓게 사용되는 2 가지 통신 방법은 MPI(메시지 전달 인터페이스)와 PVM(병렬 가상 머신)이다.

 

클러스터 관리

 

컴퓨터 클러스터를 사용하는데 있어서 가장 어려운 점중의 하나는 시스템을 관리하는 것이다. 만약 N개의 노드로 구성된 클러스터 시스템이 있다고 한다면 관리비용은 N개의 독립된 컴퓨터들을 관리하는 것과 비슷한 비용이 든다. 따라서 어떤 경우에는 공유 메모리 아키텍처가 관리비용 측면에서 클러스터 시스템 대비 유리한 측면이 있다. 상대적으로 관리의 편리성은 가상 머신이 많이 활용되는 이유중의 하나이다.

 

작업 스케줄링

 

커다란 여러 사용자 클러스터가 매우 방대한 양의 데이터를 접근할 때 작업 스케줄링을 하는 것은 매우 어렵다. 애플리케이션의 환경이 복잡한 이기종 CPU-코프로세서 클러스터의 경우에 각 작업(job)의 성능은 클러스터의 특성에 의존적이기 때문에 CPU 코어와 코프로세서 장치에 작업을 할당하는 것은 매우 어렵다. 이 분야는 현재 진행되고 있는 연구 분야이기도 하다.

 

노드 장애 관리

 

클러스터의 한 노드에서 장애가 발생했을 때 나머지의 모든 시스템이 계속해서 동작하도록 하기 위한 방법으로 "펜싱"(fencing)과 같은 전략이 사용된다.펜싱은 노드가 오동작을 할 때 공유된 자원을 보호하고 그 노드를 격리시키는 동작이다. 두가지의 펜싱 방법이 있는데 하나는 노드 자체를 비활성화 시키는 것이고 다른 방법은 공유 디스크와 같은 공유 자원에 대한 접근을 차단하는 것이다.노드의 격리는 장애로 의심되는 노드를 비활성화 하거나 전원을 끈다는 의미이다. 예를 들면, 전원 펜싱은 전원 제어기가 동작하지 않는 노드의 전원을 끄는 것이다. 자원 펜싱은 노드의 전원을 끄지 않고 자원에 대한 접근을 막는 것이다. 이것은 SCSI3에서 persistent reservation fencing이 있고, 파이버 채널 포트를 막기위한 파이버 채널 팬싱, global network block device (GNBD) 서버에 대한 접근을 막기위해 GNBD 팬싱이 있다.

 

728x90