준비운동 하기
이번에는 저번 문서에 이어지는 내용으로 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 설정하기
이부분 역시 전의 문서와 중복되는 내용이기에 언급하지 않겠다.
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 들이 등록된 것을 확인할 수 있을 것이다.