수퍼컴퓨터의 우수한 성능에도 불구하고 수퍼컴퓨터가 가지고 있는 보유 및 운영에 관한 단점을 해결하고자 하는 연구가 최근 수행되었는데, 그 중 하나가 클러스터(Cluster) 개념이다. 클러스터는 사용 목적에 따라 구현 방법 및 소프트웨어가 달라지며, 클러스터의 기능과 운영이 달라진다. 따라서 클러스터는 그 사용 목적에 따라 과학 계산용 클러스터와 부하분산 클러스터로 나눌 수 있다. 과학 계산용 클러스터는 일반 범용컴퓨터로 계산하기 어려운 대규모 연산을 계산하는데 사용되고 있다. 예를 들어 기상 예측, 핵폭발 시뮬레이션, 유체역학, 입자의 분자 역학 시뮬레이션 등의 분야에 사용된다. 그러나 최근에는 클러스터 활용 범위가 넓어져서 이전에 수치 연산을 목적으로 사용되었던 클러스터를 3D 애니메이션 및 영화의 특수 효과에도 사용하고 있다. 두 번째는 웹서버로 사용 가능한 부하분산 클러스터이다. 컴퓨터 네트워크 및 월드 와이드 웹(World Wide Web)의 발전으로 인터넷 사용자 및 웹서버의 숫자는 기하급수적으로 증가하고 있다. |
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 스위칭 허브 |
클러스터를 구현하기 위해 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 (사설 도메인 즉, 임의로 설정한 도메인) |
hosts, hosts.equiv 설정 hosts와 hosts.equiv 파일은 /etc 디렉토리에 파일이 있으며 hosts.equiv 파일은 직접 만들어야 한다.
2) .rhosts 설정 rlogin을 허용할 계정 디렉토리에 만들어 설정한다. 예) 계정 : doo 홈 디렉토리 : /home/doo
주의 : 파일 앞에 (.)은 숨김 파일이라는 뜻이며 .rhosts 파일의 퍼미션은 사용자만 읽고 쓸 수 있도록 한다. .rhosts 파일을 제외한 모든 설정은 root 권한으로 한다. 예) [doo@lai doo]$ chmod 600 .rhosts 3) inetd.conf 파일 설정 inetd.conf 파일은 rsh, rlogin, tftp와 같은 데몬을 관리하는 설정 파일로 아래와 같이 주석(#)을 붙임으로서 데몬을 사용하지 않는다. 이 주석을 삭제하고 /etc/rc.d/init.d 디렉토리에 있는 inet 파일을 다시 실행함으로써 inetd.conf 파일의 내용을 다시 설정할 수 있다.
데몬 실행 방법
4) NFS 설정 NFS는 네트워크상의 다른 컴퓨터와 파일을 공유하기 위한 클라이언트/서버 프로그램이다. 그래서 클라이언트와 서버의 설정이 다르다. ▶ 서버 설정 서버 측에서 해야 할 설정은 /etc 디렉토리에 있는 exports 파일의 내용을 설정하는 것과 NFS 데몬이 작동하도록 NFS 데몬을 실행해야 한다. ① exports 파일 설정
설정에 주의할 점은 호스트 네임과 (rw,no_root,squash,no_all_squash) 사이의 공백이 없어야 한다. ② NFS 데몬 실행 첫 번째, 실행 파일을 직접 실행하는 방법으로 실행하는 파일은 rpc.nfsd, rpc.mountd이며 파일 위치는 /usr/sbin이다.
두 번째, /etc/rc.d/init.d 디렉토리로 이동하여 nfs 파일을 실행한다.
▶ 클라이언트 설정 모든 노드의 fstab 파일을 설정하며, 파일의 위치는 /etc 디렉토리에 있다.
① mount 될 디렉토리를 정한 것이다. 즉, windows의 공유 기능과 같이 현재 공유되어서 사용하고 있는 디렉토리가 있는 위치를 말한다. ② 현재 사용하고 있는 클라이언트에서 mount 되어질 디렉토리를 뜻한다. ③ Network file system을 사용하여 서버의 디렉토리를 mount 하겠다는 의미 ④ rw는 mount가 된 디렉토리의 mod를 뜻한다. 즉, 일반 사용자가 mount 된 디렉토리에서 읽기, 쓰기를 할 수 있다는 것을 의미한다. 주의 : fstab 파일을 설정하고 난 후에 [ime@root /etc]# mount -a 명령을 실행하여 노드에서 서버 노드의 디렉토리가 mount 될 수 있도록 한다.
5) PVM, MPI 설치 및 설정
(1) pvm 설치 및 설정 ① pvm 파일을 사이트에서 pvm3.4.3.tar.gz 파일을 다운을 받는다. ② 다운 받은 파일의 압축을 푼다. 압축을 푸는 위치는 자기 계정에서 압축을 푼다. 예를 들어 ime 서버 노드의 계정이 doo이면 pvm3.4.3.tar.gz 파일의 압축 을 푸는 위치는 /hom/doo 이다.
③ 설정은 아래 그림의 상자 안의 내용을 추가한 후에 저장한다. 그리고 /etc/bashrc 파일에도 그림 12와 같이 bashrc 파일에 내용을 추가한다. ④ 계정(/home/doo)으로 돌아가서 pvm3.4.3.tar.gz 파일을 컴파일 한다. 순서는 다음과 같다. ex) [doo@ime doo]$ make [doo@ime doo]$ make install ⑤ 위 과정을 모든 노드에서 반복하여 설치한다.
.bash_profile 파일이 있는 위치는 /home/doo 이며, 숨겨진 파일로 존재한다.
참고로 /etc/bashrc는 설정을 안 해도 계정의 .bashrc에서 설정이 되어 있으면 작동을 한다.
(2) LAM_MPI 설치 및 설정 ① lam_mpi 파일을 사이트에서 다운 받으면 되고, 사용한 파일은 lam-6.5.3.tar.gz 이다. 파일을 다운 받은 후 압축을 풀어서 컴파일을 한다. [root@ime local]# tar xvzf lam-6.5.3.tar.gz 파일의 압축을 푼 위치는 /usr/local 이다. ② 압축이 풀리면서 디렉토리가 생성된다. 다음과 같은 순서로 컴파일 한다. [root@ime local]# cd LAM-MPI6.5.3 [root@ime local]# ./configure --prefix=/usr/local/lam-6.5.3 [root@ime local]# ./make [root@ime local]# ./make install ③ 컴파일을 마치고 난 후에 lamhosts, .bashrc(숨겨진 파일) 또는 /etc/bashrc 파일 설정을 설정해야 하는데, 계정에 숨겨진 파일인 .bashrc 파일에는 LAM-MPI가 설치된 디렉토리의 경로를 설정해야 하고, lamhosts 파일은 클러스터에서 사용한 IP 정보를 넣으면 된다. /etc/bashrc 파일의 설정은 아래 그림 19와 같다. ④ lamhosts 파일은 계정에 존재하지 않기 때문에 직접 만들어서 설정한다. 설정 내용은 그림 4와 같다.
⑤ .bashrc 파일은 계정의 홈 디렉토리에 숨겨진 형태로 존재하며, 설정은 /etc/bashrc 파일과 동일하다. 위 과정을 모든 노드에서 반복하여 설치한다.
|
sh, rlogin, tftp 설정
Diskless 클러스터는 기본형 클러스터 설정과 마찬가지로 hosts, rhosts, hosts.equiv 파일을 설정하면 되고, /etc 디렉토리에 hosts.equiv 파일을 직접 만들어야 한다.
hosts 파일 설정 [root@ime etc]#more hosts 210.106.86.128 ime.kongju.ac.kr ime 192.168.100.1 doom1.kongju.ac.kr doom1 192.168.100.2 doom2.kongju.ac.kr doom2 192.168.100.3 doom3.kongju.ac.kr doom3 192.168.100.4 doom4.kongju.ac.kr doom4 hosts.equiv 파일 설정 [root@ime etc]#vi hosts.equiv 210.106.86.128 192.168.100.1 192.168.100.2 192.168.100.3 192.168.100.4 |
(1) .rhosts 설정
rlogin을 허용할 계정의 홈 디렉토리에 만들어 설정한다.
예)계정 : doo 홈 디렉토리 : /home/doo
[root@ime doo]# vi .rhosts 192.168.100.1 192.168.100.2 192.168.100.3 :wq |
주위할 점은 파일 앞에 (.)은 숨김 파일이라는 뜻이며 .rhosts 파일의 퍼미션은 사용자만 읽고 쓸 수 있도록 한다. .rhosts 파일을 제외한 모든 설정은 root 권한으로 한다. 예) [doo@lai doo]$ chmod 600 .rhosts
(2) inetd.conf 파일 설정
[root@ime etc]# vi inetd.conf ... ... #shell stream tcp nowait root /usr/sbin/tcpd in.RSHd #rlogin stream tcp nowait root /usr/sbin/tcpd in.rlogind ... #tftp stream tcp nowait root /usr/sbin/tcpd in.tftpd ... |
앞의 주석을(#) 제거하고 저장한다.
데몬 실행 방법
[root@ime etc]#/etc/rc.d/init.d/inet.restart |
2) 커널 컴파일
NFS-Root, rarp 또는 bootp 기능이 가능하도록 커널 컴파일 한다. 디렉토리 위치는 /usr/src/linux 이며, 그림과 같은 순으로 설정한다.
[root@ime linux]# make menuconfig
① rarp 또는 bootp 기능을 선택한다.
디스크 없는 노드가 서버의 파일을 이용하기 위해서는 NFS-ROOT 기능을 커널에 추가해야한다. 저장 후 다음과 같은 방법으로 컴파일 한다.
[root@ime linux]# make dep [root@ime linux]# make clean [root@ime linux]# make bzImage |
NFS 장치 파일을 만드는 방법으로 실행 후 /dev 디렉토리에 nfsroot 장치 파일이 생성된다. 설정 방법은 다음과 같다.
[root@ime linux]# makenod /dev/nfsroot b 0 255 [root@ime boot]# cd /usr/src/linux/arch/i386/boot [root@ime boot]# rdev bzImage /dev/nfsroot |
부팅디스크 만들기
[root@ime boot]# dd if=bzImage of=/dev/fd0 |
3) 노드들의 환경 설정
서버의 디스크공간에 클라이언트의 설정 파일들이 들어갈 공간이 필요하다. 서버는 이 공간을 nfs 서비스를 통하여 제공한다.
http://www.sci.usq.edu.au/staff/jacek/beowulf에서 sdct, adcn 스크립트 파일을 다운 받아 실행 권한을 부여한다.
[root@ime /]#chmod 755 sdct adcn
(1) sdct 및 adcn 파일 실행
디스크 없는 노드가 루트(/) 디렉토리로 사용될 공간을 만드는 스크립트 파일로 실행 후 /tftpboot라는 디렉토리가 생성되며, /tftpboot 디렉토리 안에 노드의 루트(/) 디렉토리를 만들어 준다. 만드는 방법은 Template라는 디렉토리를 copy 명령으로 복사하며 디렉토리 이름은 구별하기 쉽게 하기 위해서 디스크 없는 노드의 IP로 하였다.
[root@ime /]# ./sdct [root@ime /]# ls /tftpboot/ Template/ |
/tftpboot에 노드 수만큼 다음과 같은 디렉토리를 만든다.
[root@ime tftpboot]#cp -R Template 192.168.100.2 [root@ime tftpboot]#cp -R Template 192.168.100.3 [root@ime tftpboot]#cp -R Template 192.168.100.4 |
/tftpboot 디렉토리 구조
[root@atom /root]# ls /tftpboot/ Template/ 192.168.100.2/ 192.168.100.3/ 192.168.100.4/ doom2.kongju.ac.kr@ doom3.kongju.ac.kr@ doom4.kongju.ac.kr@ node2@ doom3@ doom4@ |
[root@ime tftpboot]# ls /tftpboot/192.168.100.2/ bin/ boot/ etc/ lib/ proc/ sbin/ usr/ bin.tar.gz dev/ home/ mnt/ root/ tmp/ var/ |
[root@ime tftpboot]# ls bin/ boot/ etc/ lib/ proc/ sbin/ usr/ dev/ home/ mnt/ root/ tmp/ var/ |
위 디렉토리들 중 스크립트의 오류로 링크로 만들어진 것이 있다. 링크를 모두 지우고, 빈 디렉토리를 생성해 준다. adcn 스크립 파일을 서버에서 실행시키며, 프롬프트 상태에서 다음과 같은 설정을 한다.
[root@ime /]#./adcn -f -i 192.168.100.2 -c node2 -d kongju.ac.kr -m 00:a0:cc:5b:27:0f -g 192.168.100.1 -s 192.168.100.1 [root@ime /]#./adcn -f -i 192.168.100.3 -c node3 -d kongju.ac.kr -m 00:aa:00:c0:e2:5b -g 192.168.100.1 -s 192.168.100.1 [root@ime /]#./adcn -f -i 192.168.100.4 -c node4 -d kongju.ac.kr -m 00:aa:00:c1:24:59 -g 192.168.100.1 -s 192.168.100.1 |
(2) rarp 설정
rarp는 디스크 없는 노드가 네트워크를 위해 필요한 IP, netmask 등의 정보를 서버로부터 제공받기 위해 사용된다. /etc/rc.d/rc.local 파일에 아래와 같은 설정을 추가하거나 프롬프트 상태에서 직접 실행하면 된다.
/sbin/rarp -s 192.168.100.2 00:aa:00:c0:e1:46 /sbin/rarp -s 192.168.100.3 00:aa:00:c0:e2:5b /sbin/rarp -s 192.168.100.4 00:aa:00:c1:24:59 |
4) NFS 설정
설정 방법은 기본형 클러스터와 마찬가지이다.
▶ 서버 설정
exports 파일 설정
192.168.100.1:/home doom2(rw,no_root,squash,no_all_squash) 192.168.100.1:/usr doom2(rw,no_root,squash,no_all_squash) 192.168.100.1:/home doom3(rw,no_root,squash,no_all_squash) 192.168.100.1:/usr doom3(rw,no_root,squash,no_all_squash) 192.168.100.1:/home doom4(rw,no_root,squash,no_all_squash) 192.168.100.1:/usr doom4(rw,no_root,squash,no_all_squash) |
NFS 데몬 실행
첫 번째 실행 파일을 직접 실행한다.
[ime@root /sbin]# ./rpc.nfsd [ime@root /sbin]# ./rpc.mountd |
rpc.nfsd, rpc.mountd 파일 위치 /usr/sbin
두 번째 /etc/rc.d/init.d 디렉토리로 이동하여 nfs 파일을 실행한다.
[ime@root /init.d]# ./nfs stop [ime@root /init.d]# ./nfs start |
▶ 클라이언트 설정
모든 노드의 fstab 파일을 설정하며, 파일의 위치는 /etc 디렉토리에 있다.
[root@ime /]# more /tftpboot/node2/fstab 192.168.100.1:/tftpboot/192.168.100.2 / nfs hard,intr,rw 192.168.100.1:/usr /usr nfs soft,intr,rw 192.168.100.1:/home /home nfs hard,intr,rw |
주의 할 점은 fstab 파일을 설정하고 난 후에 [ime@root /etc]# mount -a 명령을 실행하여 노드에서 서버 노드의 디렉토리가 mount 될 수 있도록 한다. 그리고 MPI 및 PVM 설치 및 설정 방법은 위 기본형 클러스터와 같으며 NFS를 사용하여 /home 디렉토리를 공유할 경우 서버 노드에만 설치하면 된다.
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 스위칭 허브 |
① 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이 설치가 끝나면 부하분산 서버와 실제 서버를 설정해야 한다.
명령어는 프롬프트 상태에서 명령을 실행한다. 그러나 설정을 쉽게 하기 위해서 부하분산 서버에는 설정 내용을 loadbalancer라는 파일을 만들어서 실행하였고, 실
제 서버에는 realserver라는 파일을 만들어서 실행하였다.
loadbalancer 파일 내용
echo > 1 /proc/sys/net/ipv4/conf/all/hidden echo > 1 /proc/sys/net/ipv4/conf/lo/hidden ifconfig eth0 210.106.86.71 netmask 255.255.255.0 broadcast 210.106.86.255 up route add -net 210.106.86.0 netmask 255.255.255.0 dev eth0 ifconfig eth0:0 210.106.86.128 netmask 255.255.255.0 broadcast 210.106.86.128 up route add -host 210.106.86.128 dev eth0:0 ipvsadm -A -t 210.106.86.128 -s wrr ipvsadm -a -t 210.106.86.128:80 -R 210.106.86.72 -g ipvsadm -a -t 210.106.86.128:80 -R 210.106.86.73 -g ipvsadm -a -t 210.106.86.128:80 -R 210.106.86.74 -g |
부하분산 서버에서 설정한 내용으로 eth0의 210.106.86.71 IP는 리눅스 설치 시 부여한 IP이며, eth0:0의 210.106.86.128 IP는 부하분산 서버의 가상 IP를 설정한 한 것이다. 이해가 잘 안 되리라 생각되는데, 다시 말하면 210.106.86.71∼74번 IP는 네 대의 각 컴퓨터에 부여한 IP 이며, 210.106.86.128은 네 대의 컴퓨터가 하나로 동작하는데 필요한 IP라고 생각하시면 조금 이해가 되리라 생각됩니다.
realsever 파일 내용
echo > 1 /proc/sys/net/ipv4/conf/all/hidden echo > 1 /proc/sys/net/ipv4/conf/lo/hidden /sbin/ifconfig eth0 210.106.86.72 netmask 255.255.255.0 broadcast 210.106.86.255 up /sbin/route add -net 210.106.86.0 netmask 255.255.255.0 dev eth0 /sbin/ifconfig eth0:0 210.106.86.128 netmask 255.255.255.0 broadcast 210.106.86.128 up /sbin/route add -host 210.106.86.128 dev lo0:0 |
부하분산 서버를 제외한 각 실제 서버는 위와 같은 방법으로 설정한다. 위 설정에서 세 번째 줄에 210.106.86.72번 IP는 각 컴퓨터마다 틀리겠죠. 주의하세요.
② NAT 방식의 부하분산
NAT 방식은 DR 방식과 동작 형태가 같다. 그러나 차이점은 설정 부분과, NAT 방식이 내부에서 동작하는 방식이 조금 다르다. NAT 방식의 부하분산 클러스터는 부하분산 서버외에는 모두 사설 IP를 사용한다. 설정은 다음과 같다.
▶ 부하분산 클러스터에 사용한 IP
부하분산 서버 : eth0 210.106.86.128
eth0:0 210.106.86.97 (부하분산 클러스터를 위해 사용한 IP)
eth1 192.168.100.1
실제 서버(doom2) : eth0 : 192.168.100.2
실제 서버(doom3) : eth0 : 192.168.100.3
실제 서버(doom4) : eth0 : 192.168.100.4
부하분산 서버의 설정을 쉽게 하기 위해서 loadblancer라는 스크립트 파일을 만들고 실행 할 수 있는 모드로 바꾸어서 사용하였다.
loadbalancer 파일의 내용
/sbin/ifconfig eth0:0 210.106.86.97 netmask 255.255.255.255 broadcast 210.106.86.97 up /sbin/route add -host 210.106.86.97 dev eth0:0 echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/ipchains -A forward -j MASQ -s 192.168.100.0/24 -d 0.0.0.0/0 ipvsadm -A -t 210.106.86.97:80 -s wrr ipvsadm -a -t 210.106.86.97:80 -r 192.168.100.1 -m ipvsadm -a -t 210.106.86.97:80 -r 192.168.100.2 -m ipvsadm -a -t 210.106.86.97:80 -r 192.168.100.3 -m |
지금까지 클러스터 구현에 대해 설명하였습니다. 본 강의는 클러스터를 구현하는데 초점을 맞추었기 때문에 동작하는 이론적인 배경에 대한 설명은 넣지 않았고, 구현하는 것을 중심으로 한 것임을 알려드립니다.
다음 강의 내용은 PVFS(Parallel Virtual File System)에 관한 내용을 하겠습니다.
'Linux' 카테고리의 다른 글
gcc (0) | 2013.09.26 |
---|---|
메일서버가 스팸 서버로 이용되지는 않을지 검사하기 (0) | 2013.09.26 |
[슈퍼유저] DNS서버 (0) | 2013.09.26 |
[슈퍼유저] FTP 서버 (0) | 2013.09.26 |
[슈퍼유저] cron을 이용한 스케줄 작업 (0) | 2013.09.26 |