강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

클러스터(Cluster)소개

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.gif title01.gif


수퍼컴퓨터의 우수한 성능에도 불구하고 수퍼컴퓨터가 가지고 있는 보유 및 운영에 관한 단점을 해결하고자 하는 연구가 최근 수행되었는데, 그 중 하나가 클러스터(Cluster) 개념이다.
클러스터란 여러 대의 컴퓨터를 네트워크를 통해 연결하여 하나의 단일 컴퓨터처럼 동작하도록 제작한 컴퓨터를 말한다. 클러스터는 병렬 컴퓨터의 일종으로 1994년경 NASA의 Goddard Space Flight Center에서 여러 대의 486 PC를 네트워크로 연결하여 제작한 컴퓨터가 베어울프 클러스터이다.

클러스터는 사용 목적에 따라 구현 방법 및 소프트웨어가 달라지며, 클러스터의 기능과 운영이 달라진다. 따라서 클러스터는 그 사용 목적에 따라 과학 계산용 클러스터와 부하분산 클러스터로 나눌 수 있다. 과학 계산용 클러스터는 일반 범용컴퓨터로 계산하기 어려운 대규모 연산을 계산하는데 사용되고 있다. 예를 들어 기상 예측, 핵폭발 시뮬레이션, 유체역학, 입자의 분자 역학 시뮬레이션 등의 분야에 사용된다. 그러나 최근에는 클러스터 활용 범위가 넓어져서 이전에 수치 연산을 목적으로 사용되었던 클러스터를 3D 애니메이션 및 영화의 특수 효과에도 사용하고 있다.
또한 과학 계산용 클러스터는 두 가지 형태로 구현될 수 있다.
우선 모든 노드의 하드디스크에 독립적으로 운영체제를 모두 설치하여 각 노드가 시스템에 필요한 파일 및 라이브러리를 자체적으로 해결할 수 있도록 구성하는 방법이다.
또 다른 방법은 서버 노드 한 대에만 하드디스크가 존재하여 다른 노드들은 서버 노드의 파일 시스템을 사용하는 diskless 클러스터 방법이 있다. 과학 계산용 클러스터를 사용하기 위해서 MPI(Message Passing Interface)나 PVM(Parallel Virtual Machine)과 같은 라이브러리를 사용하여 코딩한 프로그램을 사용해야 한다.
이러한 라이브러리를 사용하는 이유는 클러스터내의 노드 수만큼 작업을 분할하여 네트워크를 통해 메시지를 전달함으로써 병렬처리가 가능하도록 하기 위해서이다.

두 번째는 웹서버로 사용 가능한 부하분산 클러스터이다. 컴퓨터 네트워크 및 월드 와이드 웹(World Wide Web)의 발전으로 인터넷 사용자 및 웹서버의 숫자는 기하급수적으로 증가하고 있다.
그러나 컴퓨터 네트워크의 발달에도 불구하고 웹서버에 접속하는 사용자 수가 많아짐에 따라 웹서버에 병목현상이 발생하고 있다.
예를 들어 동일 시간대에 한 웹서버에 접속하는 사용자 수가 많게 되면 웹서버는 과부하로 인하여 작동을 멈추거나 속도가 느려진다. 부하분산 클러스터는 단일 서버를 사용할 때 발생할 수 있는 부하를 다른 노드로 분산시켜 웹서버의 과부하를 해결할 수 있는 방법을 제공할 수 있다.
부하분산 클러스터는 구현 방법에 따라 DR(Direct Routing), NAT(Network Address Translation) 등으로 구현할 수 있다. DR 방식은 클라이언트에 들어온 요청을 부하분산 서버가 다른 컴퓨터에 분배하고, 요청을 할당받은 컴퓨터가 직접 응답을 하는 방법이다.
NAT 방식은 DR 방식과 비슷하지만 차이점은 클라이언트의 요청을 처리하는 컴퓨터는 응답을 부하분산 서버를 통해 목적지에 보내는 것이 다르며, NAT 방식과 DR 방식의 혼합된 형태로 구현하기도 한다.
그러나 부하분산 클러스터에서 부하분산 서버가 정지하거나 고장 발생의 경우 부하분산 클러스터가 작동을 멈추는 문제가 발생하게 된다.
이러한 문제점을 해결하는 방안으로 부하분산 서버를 감시하여 정지 및 고장 발생 시 클러스터 내의 다른 컴퓨터가 부하분산 서버 역할을 대신 할 수 있도록 하는 고가용성 클러스터가 함께 사용되기도 한다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,039 명
  • 현재 강좌수 :  35,848 개
  • 현재 접속자 :  83 명