2009. 2. 2. 09:18

클러스터(Cluster) 종류 (부하분산 클러스터 / HPC)


1) 소개

부하분산 클러스터에는 구현 방법에 따라 몇 가지로 분류할 수 있다. 첫 째는 DR(Direct Routing) 방식으로 외부에서 들어온 요청을 실제 서버가 직접 응답하는 방법이다. 실제 서버가 요청에 대한 응답을 직접하기 위해서는 공인 IP를 사용해야 한다. 공인 IP는 전 세계적으로 유일하게 부여되며, 인터넷을 통한 데이터 통신을 위해 사용되는 IP이다. 둘 째는 NAT(Network Address Translation) 방식이다. NAT 방식은 요청을 부하분산 서버에 의해 실제 서버로 분배하면 실제 서버는 요청에 대한 응답을 직접 클라이언트로 전달하는 것이 아니라 부하분산 서버로 되돌려 주며, 부하분산 서버는 실제 서버에서 받은 응답을 클라이언트에게 돌려준다. NAT 방식은 실제 서버가 모두 사설 IP를 사용하므로 외부와 통신을 하기 위해서는 항상 부하분산 서버를 통해야 할 수 있다.

 

2) 구현 방법

하드웨어

소프트웨어

CPU

펜티엄II 350 (서버 노드)

펜티엄MMX 166 x 3

운영체제

리눅스 6.2

RAM

64Mbyte (서버 노드)

32Mbyte

커널 버전

Kernel-2.2.16

HDD

4.3Gbyte(서버 노드)

2.1Gbyte

메시지 패싱 라이브러리

LAM-MPI.6.5.3

PVM.3.4.3

NIC

rtl8139 x 5


허브

10/100Mbps 스위칭 허브

표 2 부하분산 클러스터 사양


① DR(direct routing) 부하분산

DR 방식의 부하분산 클러스터를 구현하기 위해 사용한 IP는 부하분산 서버 IP 210.106.86.128이며, 실제 서버에 사용한 IP는 210.106.86.71∼74이다. 부하분산 클러스터를 대표할 수 있는 IP는 210.106.86.128이며, 각 실제 서버의 IP는 210.106.86.71∼210.106.86.74로 설정하였다.

1) ipvsadm 프로그램 설치

▶ 설치

이 프로그램을 사이트에서 다운 받아 설치하면 된다.

http://www.opensource.or.kr/mirrors/lvs/software/index.html 사이트에서 프로그램을 다운 받을 수 있다.

▶ 압축 풀기

다운 받은 파일은 압축되어 있는 상태이다. 그러므로 압축을 풀고 인스톨을 해야한다. 본 논문의 구현을 위해 ipvsadm-1.22.tar.gz 파일을 다운 받아 설치 하였다.

▶ test

인스톨이 잘 되었으면 다음과 같은 결과를 얻을 것이다.

[root@ime ipvsadm-1.22]# ./ipvsadm

IP Virtual Server version 0.9.14

Port LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActCon

▶ 설정

[root@ime local]# tar xvzf ipvsadm-1.22.tar.gz

[root@ime local]# cd ipvsadm-1.22

[root@ime ipvsadm-1.22]# make

[root@ime ipvsadm-1.22]# make install

ipvsadm이 설치가 끝나면 부하분산 서버와 실제 서버를 설정해야 한다.



1) 동작 원리

클러스터로 구성된 컴퓨터가 수퍼컴퓨터와 대등한 성능을 발휘하기 위해서 여러 대의 컴퓨터가 단일 컴퓨터로 동작하도록 관리해야 하며, 각 노드간에 데이터 교환이 가능하도록 설정 해야한다.
이러한 환경이 갖추어지면 어느 한 노드에서 다른 노드의 프로세스를 실행할 수 있도록 RSH(Remote Shell)이 작동할 수 있도록 해야 한다.
또한 MPI를 사용한 병렬 구조의 프로그램을 작성하여 실행시켜야 한다. 서버에서 병렬 프로그램을 실행하게 되면 MPI 데몬은 네트워크를 통해 각 노드로 작업을 분할하여 보내주며, 각 노드는 할당받은 작업을 처리하고 네트워크를 통해 결과를 서버에 돌려주게 된다.
서버는 노드로부터 받은 결과를 조합하여 하나의 결과로 만들고 그 결과를 출력하게 된다. 예를 들어 4대의 노드로 구성된 클러스터에서 1부터 n까지 더하는 병렬 프로그램을 실행할 경우, 실행중인 MPI 데몬은 프로세스를 노드 수만큼 분할하여 각 노드에 작업을 할당하며, 작업을 할당받은 노드는 작업을 처리하여 결과를 서버에 돌려주고, 서버는 각 결과를 다시 조합하여 1에서 n까지 더한 결과를 출력하게 된다.


2) 구현 방법

하드웨어

소프트웨어

CPU

펜티엄II 350 (서버 노드)

펜티엄MMX 166 x 3

운영체제

리눅스 6.2

RAM

64Mbyte (서버 노드)

32Mbyte

커널 버전

Kernel-2.2.16

HDD

4.3Gbyte(서버 노드)

2.1Gbyte

메시지 패싱 라이브러리

LAM-MPI.6.5.3

PVM.3.4.3

NIC

rtl8139 x 5


허브

10/100Mbps 스위칭 허브

[표 1 HPC 클러스터 사양]


클러스터를 구현하기 위해 4대의 개인용 컴퓨터를 사용하였다. 그 중 서버 노드는 NIC 2개를 설치하여, 외부 인터넷을 위한 공인 IP로 210.106.86.128 설정하였으며, 클러스터 내의 통신을 위해 사용한 사설 IP는 192.168.100.1이다. 그 외 다른 노드는 각각 사설 IP 한 개씩 설정하였다.

다음은 클러스터에 사용된 IP와 도메인 네임이다.

예) 서버 노드 : IP 210.106.86.128 (리얼 IP, 실제 사용한 IP가 아님을 알립니다.)

도메인 네임 : cluster.kongju.ac.kr

(실제 사용한 도메인이 아님을 알립니다.)

IP : 192.168.100.1 (사설 IP)

도메인 네임 : doom1.kongju.ac.kr

(사설 도메인 즉, 임의로 설정한 도메인)

일반 노드 : IP : 192.168.100.2 (사설 IP)

도메인 네임 : doom2.kongju.ac.kr

(사설 도메인 즉, 임의로 설정한 도메인)

IP : 192.168.100.3

(사설 IP 즉, 임의로 설정한 도메인)

도메인 네임 : doom3.kongju.ac.kr

(사설 도메인 즉, 임의로 설정한 도메인)

IP : 192.168.100.4 (사설 IP)

도메인 네임 : doom4.kongju.ac.kr

(사설 도메인 즉, 임의로 설정한 도메인)


출처 : http://www.superuser.co.kr/

Trackback 0 Comment 0