====== 클러스터 구축하기 - 5.Pvm을 이용한 과학계산클러스터 ======
====== 준비운동 하기 ======
이번에는 저번 문서에 이어지는 내용으로 pvm을 이용한 과학계산 클러스터를 만들어 볼 것이다.
이번에는 전에 lam으로 할 때와는 master node의 OS가 다르다. 데비안 3.0R1을 설치할 것이다.
여기서 특별히 따로 하드웨어 환경이나 데비안 설치에 관해서는 언급하지 않겠다. 앞의 문서를 참고하길 바란다.
====== 설정하기 ======
데비안을 설치했다면, 데비안의 패키지 목록을 최신의 것으로 바꾸어 주어야 한다.
데비안 사용자 그룹(debianusers.org)에서 소스 리스트를 받는다.
소스리스트를 받아서, /etc/apt 디렉토리에 sources.list 라는 파일로 저장한다.
그리고 나서 우리가 새로 받은 리스트를 적용 시켜주어야 한다.
#apt-get update
#apt-get dist-upgrade
===== dhcp 서버 설치 및 설정하기 =====
데비안의 장점이라고 한다면, 소스를 일일이 다운로드 받을 필요가 없다는 점이다.
dhcp를 설치하기 위해 다음과 같이 명령하자!
#apt-get install dhcp
설치가 완료 되었으면, /etc/dhcpd.conf 파일을 수정해보자!
deny unknown-clients;
option dhcp-max-message-size 2048;
always-reply-rfc1048 on;
filename "/tftpboot/vmlinuz";
subnet 210.119.108.0 netmask 255.255.255.0 {
range 210.119.108.170 210.119.108.175;
option routers 210.119.108.254;
option subnet-mask 255.255.255.0;
option domain-name-servers 210.119.108.178;
option domain-name "cluster";
}
group {
allow bootp;
host node1 {
hardware ethernet 00:E0:4C:6D:54:B7;
fixed-address 210.119.108.173;
option nis-domain "cluster";
option root-path "/tftpboot/node1";
server-name "node1";
}
host node2 {
hardware ethernet 00:50:FC:A5:E9:53;
fixed-address 210.119.108.174;
option nis-domain "cluster";
option root-path "/tftpboot/node2";
server-name "node2";
}
}
전에 lam을 이용한 문서를 보았다면, 대충 감을 잡을 수 있을 것이다.
===== tftp 설치 및 설정하기 =====
다음과 같이 명령해주자!
#apt-get install tftpd
#apt-get install tftp
성공적으로 설치가 되었다면, 설정파일(/etc/inetd.conf)을 수정해주자!
아래의 설정을 보면 /usr/sbin/tcpd 부분이 지워진 것을 볼 수 있는 데, 이유는
나중에 tftp로 이미지를 다운로드를 받게 하기 위함이다.
tftp dgram udp wait nobody /usr/sbin/in.tftpd -s /tftpboot
적용시키기 위해
#/etc/init.d/inetd restart
===== nfs 설정하기 =====
/etc/exports 파일을 수정해주자!!
/tftpboot/node1 210.119.108.172(rw,no_root_squash)
/tftpboot/node1 210.119.108.173(rw,no_root_squash)
적용을 위해
#exportfs -ar
한다.
===== real node 영역 확보하기 =====
위에서의 설정처럼 /tftpboot/ 아래에 영역을 확보할 것이다.
#cd /tftpboot <-- 없다면 만들어준다.
#mkdir node1 node2
#cd node1
#cp -a /bin /boot /dev /etc /lib /root /sbin /usr /var /home ./
#mkdir proc
#ln -s var/tmp tmp
#chroot /tftpboot/node1 /bin/bash
#vi /etc/fstab
-----------------------------------------------------------------------------
210.119.108.172:/tftpboot/node1 / nfs defaults 0 0
210.119.108.173:/tftpboot/node2 / nfs defaults 0 0
none /dev/pts /devpts gid=5, mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defautls 0 0
-----------------------------------------------------------------------------
node2도 역시 마찬가지로 설정해준다.
===== 커널 컴파일 하기 =====
기본적인 커널이 아니라 따로 받아서 컴파일해서 쓸 것이다. 여기서는 kernel-2.4.18을 사용하도록 한다.
☞ 만일 make menuconfig라고 쳤는데, 에러가 난다면 거의 ncurses 패키지가 설치가 안되서 이다. 걱정할 필요는 없다. 설치해주면 되니깐 ^^;
#apt-get install ncurses-dev
컴파일시 반드시 체크해주어야 할 옵션은 다음과 같다.
Block divices
<*> loopback block device support
<*> Network block device support
<*> RAM disk support
(4096) efault RAM disk size
[*] initial RAM disk(initrd) support
Networking options
<*> Network packet filtering(replaces ipchains)
<*> Socket Filtering
<*> Unix domain sockets
<*> TCP/IP networking
<*> IP:kernel level autoconfiguration
<*> IP:DHCP support
<*> IP:BOOTP support
<*> IP:RARP support
Network device support
<*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support
ReadTek Lan Card 관련 모두 체크한다.
Character devices
<*> Enhanced Read Time Clock Support
File systems
<*> Ext3 journalling file system support
Ext3 관련 모두 체크한다. master node의 파일시스템을 확인한다.
<*> NFS file system support
<*> Provide NFSv3 client support
<*> Root file system on NFS
<*> NFS server support
<*> Provide NFSv3 server support
<*> Provide NFS server over TCP support
커널 컴파일이 성공적으로 되었다면, 커널이미지(bzImage)를 /boot 로 복사한다.
부트매니저(lilo)에 등록시킨다.
#vi /etc/lilo.conf
--------------------------------------------------------------------
image=/boot/bzImage
label=Cluster
read-only
optional
-------------------------------------------------------------------
===== mknbi로 부팅용 커널 이미지 만들기 =====
Redhat와 마찬가지로 데비안용 mknbi 패키지가 있다. 설치하도록 하자!!
#apt-get install mknbi
#mknbi-linux --ip=dhcp --output=/tftpboot/vmlinuz bzImage
그리고 나서 real node를 차례로 부팅시켜보자!!
참고로 랜카드 부팅 디스켓 만드는 방법은 lam 클러스터 문서를 참고하기 바란다.
===== ssh 설정하기 =====
이부분 역시 전의 문서와 중복되는 내용이기에 언급하지 않겠다.
http://people.kldp.org/~eunjea/ssh/x87.html
===== pvm 설치하기 =====
pvm은 master node 와 real node 모두 설치해주어야 한다.
#apt-get install pvm
#apt-get install pvm-dev
====== 테스트 및 구동하기 ======
master node에서 아래와 같이 실행한다.
$pvm
pvm>conf
pvm>add node1
pvm>add node2 <---- 각각의 노드를 추가해준다.
pvm>conf <- real node 들이 등록된 것을 확인할 수 있을 것이다.
----
{{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(about|guestbook|todays)$/ }}
----