1.각 PC에 Debian 기본 패키지까지만 설치한다.
설치시에 각 사용자 id를 모두 동일하게 한다.
사용자명 : pl
hostname : node1~4
※커널 버젼이 2.4이므로 2.6.8.2-686으로 업뎃한다.
2.각 node의 /etc/hosts에 각 node의 ip-address를 기록한다.
# /etc/hosts
127.0.0.1 localhost
164.125.34.111 node1
164.125.34.112 node2
164.125.34.113 node3
164.125.34.114 node4
3.nfs패키지를 설치한다. nfs-common과 nfs-kernel-server 패키지가 필요한데 본 Debian에는 nfs-common은 기본으로 설치되어 있기 때문에 nfs-kernel-server만 설치하면 된다.(nfs-user-server 패키지는 더 많은 기능을 가지고 있기는 하지만 클러스터 서버의 특성상 빠른 속도를 보장하는 nfs-kernel-server를 이용하는 것이다.)
4.nfs 패키지를 다 설치한 다음에 server node의 /etc/exports에 각 nfs client의 정보를 기록한다.
# /etc/exports
/home node2(rw)
/usr node2(rw)
/lib node2(rw)
/home node3(rw)
/usr node3(rw)
/lib node3(rw)
/home node4(rw)
/usr node4(rw)
/lib node4(rw)
5.이제 각 client에서 server에 마운트가 가능한지를 확인한다.
mount -t nfs node1:/home /home
mount -t nfs node1:/usr /usr
mount -t nfs node1:/lib /lib
마운트가 된다면 nfs의 설정이 정상적으로 된 것이다.
이제 부팅시에 자동으로 마운트 하도록 각 client마다 설정을 한다.
설정 파일은 /etc/fstab이다.
node1:/home /home nfs defaults, hard, intr 0 0
node1:/usr /usr nfs defaults, hard, intr 0 0
node1:/lib /lib nfs defaults, hard, intr 0 0
6.MPI와 PVM의 사용을 위해서는 server와 각 client에 SSH를 설정한다.
설정과 관련된 자료는
여기에서 볼 수 있다.
Debian에는 기본적으로 SSH가 설치되어 있으므로 동일한 id를 기반으로 하여 passwd입력없이 바로 접속이 가능하게 설정한다.(ssh-agent와 ssh-add를 이용하여 설정이 가능하다) 단 rsa 키를 생성시 암호를 없게 해야 한다. 암호 설정시 로그인 암호가 아니라 rsa 키 생성시 입력한 암호를 로그인시 물어본다.
7.LAM과 MPI 설정을 위해서는 lam4, lam4-dev패키지를 설치한다. 그리고 /etc/lam/lamhosts 파일에 접속할 노드들의 이름을 적어준다.
# /etc/lam/lamhosts
node1
node2
node3
node1
※만일 해당 패키지가 설치 되지 않는다면 nfs 시스템 마운트 때문이니 마운트 한 마스터 node를 umount시킨다.
7.lamboot -v lamhosts를 실행하면 다음과 같이 화면에 display된다.
LAM 7.1.1/MPI 2 C++/ROMIO - Indiana University
n-1<9132> ssi:boot:base:linear: booting n0 (node1)
n-1<9132> ssi:boot:base:linear: booting n1 (node2)
n-1<9132> ssi:boot:base:linear: finished
8.PVM의 설치는 여기서 소스파일을 다운 받을 수 있다.
자신의 쉘 파일에 다음과 같은 변수들을 export시킨다.
export PVM_ROOT=pvm의 절대 경로
export PVM_DPATH=$PVM_ROOT/lib/pvmd
export PVM_ARCH=LINUX
그리고 pvm/lib안에 있는 쉘 스크립트 파일들 중 자신의 쉘과 일치하는 파일을 선택하여 자신의 쉘 스크립트 파일에 내용을 추가시킨다.
cat lib/bashrc.stub >> ~/.bashrc
그리고 내부 소스 중 마지막 두 PATH의 주석을 제거하여 준다.
9.각 node마다 PVM콘솔을 실행 -> halt로 종료 ->다시 실행 -> add node_name ->conf로 확인
10.컴파일
gcc -O -o taskname -L$PVM_ROOT/lib/LINUX -I$PVM_ROOT/include source_file -lpvm3
cp taskname $PVM_ROOT/bin/LINUX