본문 바로가기

IT n Linux

클러스터 시스템 만들기 #5 VNFS 만들기 & 설치하기


오랜만에 글 올리네요. 제가 생각해도 참 느긋하게 글을 쓰는 것 같습니다.^^;



이전 글에서 Perceus Server 에 대한 설치를 완료하고 정상작동 되는지 테스트를 하였습니다. 이제 Node 에서 하드디스크로 사용할 디스크 이미지를 만들어고 설치해 보겠습니다.


VNFS 만들기

처음에도 이야기했지만, 우리가 지금 만들고 있는 Diskless cluster 는 Node 가 사용할 하드디스크 이미지를 Master 에서 가지고 있습니다. 그리고 각 node 가 켜질때마다 Master 의 특정위치를 자신의 하드처럼 인식해서 작동하게 됩니다. Perceus 는 이런 Node 의 이미지를 vnfs 라는 형식으로 관리를 합니다. Perceus 에서 이 vnfs 이미지를 미리 만들어서 제공하기도 하지만, 최신버젼이 아니고 Customized VNFS 는 유료 서비스에 해당하는 내용이어서 직접 만들어 보도록 하겠습니다.

vnfs 이미지를 만들기 위해서 /usr/share/perceus/vnfs-scripts 에 있는 script를  이용하도록 하면 됩니다. 우리가 사용할 파일은 centos-5.1.genchroot.sh 파일 입니다.

먼저 centos-5.1-genchroot.sh 파일을 centos-5.5-genchroot.sh 이름으로 복사합니다.

# cp centos-5.1-genchroot.sh  centos-5.5-genchroot.sh

파일 내부에 다음 줄을 수정합니다.

# 17번째 줄
releasever=5.5 (17째줄)
# 110번째 줄
gpgkey=$MIRROR/$releasever/os/$ARCH/RPM-GPG-KEY-CentOS-5

다음은 node 에서 필요한 프로그램들을 이미지를 만드는과정에서 같이 설치되도록 수정해야 합니다. 이것은 이미지를 만든 이후에 해도 되지만, 기본으로 제공되는 RPM형식의 프로그램의 경우 초기에 같이 설치하는게 덜 번거롭기 때문에 같이 하도록 하겠습니다. 132번째 줄 쯤에 yum 이라는 명령어로 싲가하는 줄이 있습니다. yum 은 RHEL (RedHat Enterprise Linux) 계열의 리눅스에서 프로그램을 자동 설치해주는 프로그램입니다. CentOS 역기 이 계열의 리눅스 이므로, 이 줄에서 프로그램을 설치하게 됩니다. 이 yum 으로 시작하는줄 끝 부분에 (밑에서는 142번째 줄이었습니다.) 추가로 설치할 프로그램들을 다음과 같이 적어 줍니다. 프로그램 종류는 각자 사용하는 프로그램에 맞춰서 적으셔야 합니다.

132 yum -y -t -d 2 -c $VNFSROOT/$NAME/etc/yum.conf --installroot $VNFSROOT/$NAME install \
133    SysVinit basesystem bash centos-release chkconfig coreutils cracklib \
134    cracklib-dicts db4 e2fsprogs ethtool filesystem findutils gawk \
135    glib glibc glibc-common grep initscripts iproute iputils krb5-libs \
136    libacl libattr libgcc libstdc++ libtermcap mingetty mktemp ncurses \
137    net-tools nfs-utils pam pcre popt portmap procps psmisc rdate rsh \
138    rsh-server rsync sed setup shadow-utils sysklogd tcp_wrappers termcap \
139    tzdata util-linux words xinetd zlib tar mkinitrd less gzip which \
140    util-linux module-init-tools udev kernel openssh-clients \
141    openssh-server passwd dhclient pciutils vim-minimal shadow-utils \
142    vixie-cron ntp strace grub binutils python perl tcsh nasm \
143    libxml2 libxml2-devel gcc-gfortran \
144    compat-libstdc++-33  compat-libstdc++-296  compat-libf2c-34

수정이 끝났습니다. 위 파일을 실행합니다. 그러면, 한참.. 많은 일들을 진행하게 됩니다. 시간이 좀 걸리는데요. 너무 일찍 끝나면 메세지를 잘 보시고 혹시 에러나지 않았나 확인하시기 바랍니다. 저의 경우 가끔 GPG-KEY 때문에 에러가 나거나, 사용하고 있는 mirror 의 파일과 md5 key 가 가끔 맞지 않아서 에러가 나는 경우가 있었습니다.

위 파일의 실행이 끝나면, 다음 명령어로 나면 만들어진 파일을 vnfs 파일로 만들어야 합니다.

[root@n64m vnfs-scripts]# ./chroot2stateless.sh /var/tmp/vnfs/centos-5.5-1.x86_64 /root/centos-5.5-1.stateless.x86_64.vnfs
Creating VNFS capsule 'centos-5.5-1.stateless.x86_64.vnfs'
Setting default kernel to vmlinuz-2.6.18-194.el5
Kernel seems to be relocatable...
Building rootfs ...
Creating additional devices ...
Creating VNFS capsule scripts
Compressing capsule ...

WROTE: /root/centos-5.5-1.stateless.x86_64.vnfs

마지막의 빨간색으로 칠해진 파일 이름이 생성된 vnfs 파일의 이름 입니다. 저의 경우 만들어진 파일이 약 170M 정도 되네요.


VNFS 설치하기

만들어진 VNFS 파일을 Perceus 에 읽어들이고 node 의 기본 이미지 파일로 지정해 보겠습니다.

vnfs 를 import 합니다. import 를 시작하면 처음에 node 에서 사용할 root 의 암호를 물어봅니다. 그 이후에 여러가지 질문을 하는데, 기본값을 건드리지 않고 ENTER 만 치면, 끝나게 됩니다.

# perceus vnfs import centos-5.5-1.stateless.x86_64.vnfs

다음 명령어로 정상적으로 import 된 것을 알 수 있습니다.
# perceus vnfs list
centos-5.5-1.stateless.x86_64

이제 /etc/perceus/defaults.conf 파일을 열어서 다음 줄을 수정합니다.
Vnfs Name = centos-5.5-1.stateless.x86_64

그리고 perceus 를 재시작 합니다.
# /etc/init.d/perceus restart
Stopping perceus vnfs daemon (xget):                       [  OK  ]
Stopping perceus network manager:                          [  OK  ]
Stopping perceusd:                                         [  OK  ]
Starting perceus vnfs daemon (xget):                       [  OK  ]
Starting perceus network manager:                          [  OK  ]
Starting perceusd:                                         [  OK  ]
#

이제 Node 를 켜보면 아까와는 다르게 다음과 같이 정상적인 부팅이 됩니다.




이번 글에서는 Perceus 시스템에서 사용하는 VNFS 파일을 만들고 설치해 봤습니다. 이제 정상적으로 구동되는 Diskless Cluster 가 생겼네요. 다음 글에서는 Node 설정을 더 구체적으로 하도록 하겠습니다.