본문 바로가기
My/잡다한 글

[리눅스 클러스터] 클러스터의 종류 및 원리

by 라인T 2020. 4. 20.
반응형

전세계 슈퍼컴퓨터의 순위를 매기는 Top 500 Supercomputer (http://www.top500.org)에서 여러 가지 형태의 클러스터를 확인할 수 있습니다.

슈퍼컴퓨터 기술은 엄청나게 빠르게 발전하는 분야중의 하나로서 , 순위는 계속해서 변동되고 있습니다.

현재 대중적인 컴퓨터도 몇년전에는 슈퍼컴퓨터의 성능을 가지고 있었다는 뜻입니다.

 

또한 , 클러스터는 어려운 개념이 아닙니다.

작업을 돌리기 위해서 2개이상의 컴퓨터를 동시에 사용하고 있다면 이것도 클러스터의 의미를 갖춥니다.

묶는 방식 , 활용되는 방식에 따라서 다양한 방법으로 나눌수 있으며 클러스터의 종류도 많이 다양합니다.

주로 사용되는 클러스터는 HPC(성능을 위주로 한 클러스터) 및 HA(가용성을 위주로 한 클러스터) 두가지로 나눌수 있습니다.

 

HA 클러스터는 365일 24시간 내내 정지되지 않는 시스템을 구축하자는데 목표를 했습니다.

두개의 시스템중 하나의 시스템이 정지 될 경우 나머지 하나의 시스템이 그 역할을 대신해주는 방식 입니다.

하지만 , 평소에 1개는 쓰고 1개는 가동을 안하면 낭비라고 생각되는 결과 두개의 시스템이 동시에 같은 서비스를 진행할 수 있도록 하였습니다. 

시스템의 부하를 균등하게 하면 효율적으로 사용할 수 있기에 로드밸런싱 기술을 사용하였습니다.

 

HPC 는 여러대의 컴퓨터를 묶어서 성능을 높이자는데 목표를 했습니다.

베어울프 클러스터를 주로 사용하며 , 확장성높은 클러스터링 방법으로 주로 GNU/리눅스 운영체제를 많이 사용합니다.

운영체제는 유닉스 나 윈도우 서버 등을 이용하여 클러스터를 구성 할 수 있지만 일반적인 환경에서 리눅스 서버의 안정성, 성능 , 보안성 등을 다른 운영체제와 비교 해보았을때 가격대 성능비의 탁월함과 강력한 네트워크 언플라이언스로서 공개되어 있는 각종 미들웨어 툴킷들이 현재 리눅스와 가장 잘맞는 운영체제이므로 자주 사용합니다. 

 

병렬화

어떤 작업을 수행하기 위해 동시에 수행시킬수 있는 작은 부분으로 잘게 쪼게어 수행시키는 방법

하드웨어의 경우 여러 개의 CPU들은 하나의 커다란 작업을 해결하기 위해 협력하여 수행할 수 있으며 , 소프트웨어 차원에서는 1부터 100까지 더하는 작업을 잘게 쪼개어 각각의 쓰레드들이 부분합을 독자적으로 구한후 나중에 부분합들을 모두 더하여 최종값을 얻는 방식으로 병렬화를 얘기할 수 있습니다.

 

병렬성은 병렬화를 이룩할 수 있는 성질이며 , 병행성과 혼동하여 사용합니다.

병행성은 하나의 사람이 작업을 여러개 동시에 하는게 병행성이며 , 병렬성은 다수의 사람이 작업을 여러개 동시에 하는게 병렬성 입니다.

 

클러스터링에서 키워드는 바로 병렬성 과 병행성이며 다수개의 컴퓨터를 묶어서 하나의 물리적인 컴퓨터는 기본적으로 이와같은 개념을 밑바탕으로 시작하게 됩니다. 클러스터에서 동작하는 응용프로그램은 병행성과 병렬성을 기본으로 제작되어야 하며 , 클러스터 시스템 구축 또한 이러한 논리적 구성을 염두하여 효율적으로 구축 되어야 합니다.

반응형

댓글