[병렬 처리] 클러스터 컴퓨터의 구조 및 분류
글 작성자: _rian
컴퓨터 클러스터링 (Computer Clustering)
개념
네트워크에 접속된 다수의 컴퓨터들 (PC, 워크스테이션, 혹은 다중 프로세서 시스템)을 통합하여 하나의 거대한 병렬 컴퓨팅 환경을 구축하는 기법
출현 배경
- 대부분의 컴퓨터에서 프로세서들이 연산을 수행하지 않는 유휴 사이클(idle cycle)들이 상당히 많다
- 고속의 네트워크가 개발됨으로써 컴퓨터들 간의 통신 시간이 현저히 줄어들게 되었다.
- 컴퓨터의 주요 부품들(프로세서, 기억장치 등)의 고속화 및 고집적화로 인하여 PC 및 워크스테이션들의 성능이 크게 높아졌다.
- 슈퍼컴퓨터 혹은 고성능 서버의 가격이 여전히 매우 높다.
클러스터 설계의 핵심 목표
- 단일 시스템 이미지 (Single System Image : SSI)
- 높은 가용성 (High Availability)
클러스터링을 이용하여 구축할 수 있는 컴퓨팅 환경
1. 병렬 처리 (Parallel Processing)
다수의 컴퓨터들을 이용하여 MPP(massively parallel processors) 혹은 DSM(distributed shared-memory) 형 병렬처리시스템을 구성할 수 있다.
2. 네트워크 RAM(Network RAM)
각 노드(워크스테이션 혹은 PC)의 기억장치들을 통합하여 거대한 분산 공유-기억장치를 구성할 수 있으며, 이것은 가상 기억장치와 파일 시스템 성능을 크게 높여준다.
3. 소프트웨어 RAID (S/W RAID)
서로 다른 노드에 접속된 디스크들을 가상적 배열 (virtual array)로 구성함으로써 낮은 가격으로 가용성(availability)이 높은 분산 소프트웨어 RAID(distributed software RAID : ds-RAID)를 제공할 수 있다.
클러스터 컴퓨터의 기본 구조
클러스터 컴퓨터 : 독립적인 컴퓨터들이 네트워크를 통하여 상호 연결되어 하나의 컴퓨팅 자원으로서 동작하는 병렬처리 혹은 분산처리 시스템의 한 형태
- 클러스터 : 다수의 노드(node)들로 구성
- 노드 : 단일 프로세서 혹은 다중 프로세서 시스템으로 구성
- 클러스터의 구현 : 단일 캐비닛 혹은 LAN에 접속된 형태
클러스터 컴퓨터의 주요 구성 요소들 |
노드 컴퓨터들 (PC, 워크스테이션 혹은 SMP) |
고속 네트워크 (Gigabit Ethernet 혹은 Myrinet) |
네트워크 인터페이스 하드웨어 |
통신 소프트웨어 |
클러스터 미들웨어 (단일 시스템 이미지 및 시스템 가용성 지원) |
병렬 츠로그래밍 환경 및 도구들 (병렬 컴파일러, PVM, MPI 등) |
직렬, 병렬 혹은 분산 응용들 |
클러스터 컴퓨터의 분류
1. 노드 H/W 구성에 따른 분류
- PC 클러스터 (cluster of PCs : COPs)
- 워크스테이션 클러스터 (cluster of workstations : COWs)
- 다중프로세서 클러스터 (cluster of multiprocessors : CLUMPs)
2. 노드 내부 H/W 및 OS에 따른 분류
- 동일형 클러스터 (homogeneous cluster) : 모든 노드들이 유사한 하드웨어 구조를 가지며, 동일한 OS 탑재
- 혼합형 클러스터 (heterogeneous clsuter) : 노드들이 다른 구조 및 하드웨어 부품들(프로세서 포함)로 구성되며, 서로 다른 OS를 탑재. 미들웨어와 통신 인터페이스의 구현이 더 복잡
3. 동일형 클러스터의 OS에 따른 분류
- Linux 클러스터 (예 : Beowulf)
- Solaris 클러스터 (예 : Berkeley NOW)
- NT 클러스터 (예 : HPVM)
- AIX 클러스터 (예 : IBM SP2)
- Digital VMS 클러스터
- HP-UX 클러스터
- Microsoft Wolfpack 클러스터
4. 상호연결망에 따른 분류
(1) 개방형 클러스터 (exposed cluster)
클러스터가 외부에 노출되어 외부 사용자들도 쉽게 접속하여 사용할 수 있는 클러스터. 클러스터 노드들이 주로 인터넷과 같은 공공 네트워크(public network)에 의해 연결된다.
특징
클러스터 노드들은 반드시 메시지를 이용하여 통신해야 하는데, 그 이유는 공공의 표준 통신망들은 항상 메시지 기반(message-based)이기 때문이다. |
다양항 통신환경들을 지원히야하는 표준 프로토콜을 사용해야 하기 때문에 통신 오버헤드가 높다. |
통신 채널이 안전하지 못하다. 즉, 보안이 보장되지 못한다. 따라서 클러스터 내부 통신의 보안을 위해서는 추가적인 작업이 필요하다. |
구축하기 매우 용이하다 .사실상 하드웨어는 추가될 것이 거의 없고, 각 노드에 클러스터링을 위한 소프트웨어들만 탑재하면 된다. |
(2) 폐쇄형 클러스터 (enclosed cluster)
외부와 차단되는 클러스터로서, 주로 Myrinet과 같은 특수 네트워크를 이용한 사설 네트워크(private network)로 연결된다.
특징
노드들 간의 통신이 공유 기억장치, 공유 디스크, 혹은 메시지 등과 같은 여러 수단에 의해 이루어질 수 있다. |
표준 프로토콜을 사용할 필요가 없기 때문에 통신 오버헤드가 매우 낮아지며, 국제 위원회의 동의를 받을 필요가 없으므로 프로토콜을 더욱 신속하게 정의하고 구현할 수 있다. |
통신 보안이 보장될 수 있어서, 노드들 간의 데이터 전송이 노드 내부 통신만큼 안전하게 이루어질 수 있다. |
외부 트래픽(traffic)의 영향을 받지 않기 때문에 통신 지연이 줄어든다. |
공개형에 비하여 구현 비용이 더 많이 들고, 외부 통신망과의 접속을 위해서는 브리지와 같은 별도의 통신 설비가 필요하다. |
5. 노드 소유권에 따른 분류
- 전용 클러스터 (dedicated cluster) : 특정 사용자가 어느 한 노드 컴퓨터를 별도로 소유할 수 없다. 즉, 클러스터 내의 모든 자원들이 공유되며, 병렬 컴퓨팅이 전체 클러스터에 의해 수행된다.
- 비전용 클러스터 (non-dedicated cluster) : 각 사용자가 특정 노드 컴퓨터에 대한 소유권을 가지고 사용할 수 있다. 즉, 사용자가 지정된 노드 컴퓨터를 사용하다가, 큰 응용을 병렬로 처리할 때만 노드 컴퓨터들을 통합하여 사용된다.
=> 병렬처리는 프로세서들의 사이클 스틸링(cycle stealing)을 이용하여 수행
'Computer Engineering > 병렬 처리(Parallel Processing)' 카테고리의 다른 글
[병렬 처리] 슈퍼스칼라 프로세서 - 명령어 발송 정책과 레지스터 재명명 (0) | 2019.06.20 |
---|---|
[병렬 처리] 클러스터 미들웨어와 SSI (0) | 2019.06.20 |
[병렬 처리] 고성능 입출력 시스템 구조 (0) | 2019.06.20 |
[병렬처리] 상호 연결망 구조 - 정적 상호 연결망의 종류 (0) | 2019.06.20 |
그래픽 처리 유니트 (GPU) - GPU의 개념과 CUDA 프로그래밍 (0) | 2019.06.20 |
댓글
이 글 공유하기
다른 글
-
[병렬 처리] 슈퍼스칼라 프로세서 - 명령어 발송 정책과 레지스터 재명명
[병렬 처리] 슈퍼스칼라 프로세서 - 명령어 발송 정책과 레지스터 재명명
2019.06.20 -
[병렬 처리] 클러스터 미들웨어와 SSI
[병렬 처리] 클러스터 미들웨어와 SSI
2019.06.20 -
[병렬 처리] 고성능 입출력 시스템 구조
[병렬 처리] 고성능 입출력 시스템 구조
2019.06.20 -
[병렬처리] 상호 연결망 구조 - 정적 상호 연결망의 종류
[병렬처리] 상호 연결망 구조 - 정적 상호 연결망의 종류
2019.06.20