====== 클러스터 구축하기 - 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)$/ }} ----