2010년 2월 21일 일요일

CentOS에 AFS Client 설치하기

AFS는 Andrew File System의 약자로 분산 파일 시스템의 일종이다. AFS는 Carnegie Mellon University에서 먼저 사용하였고 Transarc Corporation 의하여 개발 및 유지되고 있다. 아래에 Linux 환경에서 AFS를 설치하는 것을 예로 설명하련다. 이 예에서는 단지 AFS Client 설치만 한다.

AFS 배포 공식 사이트인 http://www.openafs.org 에 접속하여 자신이 설치한 시스템에 맞는 RPM 배포버젼을 다운로드 받는다. tar로 압축된 소스파일을 받아 자체로 빌드하여 설치 할 수도 있지만, 그 과정이 복잡하여 여기서 생략하고 RPM과 SRPM 배포버젼을 설치하는것만 설명할가 한다.

만약 설치한 시스템 커널을 바꾸지 않고 원래 설치된 그대로 사용하고 있다면 필요한 RPM 배포버젼을 받아 rpm -Uvh 명령어를 이용하여 설치하면 된다.
하지만 나의 경우는 필요에 따라 시스템 커널을 커스터마이징 하였다. 그로 인하여 afs 공식사이트에서 제공해주는 RPM파일을 직접 받아서 설치 할 수 없었다.

새롭게 커스터마이징한 커널에서 새로 SRPM파일을 받아 RPM들을 빌드 해낸다.

일단 OpenAFS사이트에서 SRPM을 받는다.

wget http://dl.openafs.org/dl/openafs/1.4.11/openafs-1.4.11-1.1.1.src.rpm

다음 SRPM을 설치한다. 단 주의할 것은 이때 우리가 설치하는건 SRPM이지 RPM이 아니다. 그러므로 설치되는건 RPM빌드를 하기 위한 Source 일 뿐인 것이다.

rpm -Uvh openafs-1.4.11-1.1.1.src.rpm

설치가 끝나면 /usr/src/redhat 디텍토리 밑으로 가보자.

cd /usr/src/redhat/SPECS

SPECS 폴더 밑에 openafs.spec 이라는 SPEC파일 생겼음을 알 수 있다.
이 SPEC 파일에 마춰 RPM들을 재빌드 해보자.

rpmbuild -ba openafs.spec

시간이 좀 걸리니 느긋하게 커피나 한잔 하면서 기둘리자.
빌드가 완성되면 /usr/src/redhat/RPMS/i386/ 폴더로 이동하여 새롭게 빌드된 RPM파일들을 확인 하자.
나의 경우에는 아래와 같은 파일들이 빌드 되었다.

dkms-openafs-1.4.11-1.1.1.i386.rpm
openafs-compat-1.4.11-1.1.1.i386.rpm
openafs-kpasswd-1.4.11-1.1.1.i386.rpm
openafs-1.4.11-1.1.1.i386.rpm
openafs-debuginfo-1.4.11-1.1.1.i386.rpm
openafs-krb5-1.4.11-1.1.1.i386.rpm
openafs-authlibs-1.4.11-1.1.1.i386.rpm
openafs-devel-1.4.11-1.1.1.i386.rpm
openafs-server-1.4.11-1.1.1.i386.rpm
openafs-authlibs-devel-1.4.11-1.1.1.i386.rpm
openafs-docs-1.4.11-1.1.1.i386.rpm
openafs-client-1.4.11-1.1.1.i386.rpm
openafs-kernel-source-1.4.11-1.1.1.i386.rpm

필요로 하는 RPM들을 골라 설치 한다. 나의 경우는 client만 필요하므로 openafs와 openafs-client 및 기타 몇몇 의존하고 있는 RPM들을 설치했다. 하지만 여기서 끝이 아니다. 커널이 필요로 하는 모듈도 새로 빌드 해야 한다. 모듈을 새로 빌드하기 위하여 커널 소스가 필요한데, 별도로 얻을 필요는 없고 openafs-kernel-source-1.4.11-1.1.1.i386.rpm 이 RPM파일을 설치하면 되겠다.

rpm -Uvh openafs-1.4.11-1.1.1.i386.rpm openafs-krb5-1.4.11-1.1.1.i386.rpm openafs-kpasswd-1.4.11-1.1.1.i386.rpm openafs-authlibs-1.4.11-1.1.1.i386.rpm openafs-kernel-source-1.4.11-1.1.1.i386.rpm openafs-client-1.4.11-1.1.1.i386.rpm openafs-compat-1.4.11-1.1.1.i386.rpm

다음 /usr/src/ 로 가보면 이미 openafs-kernel 폴더가 만들어져 있음을 발견 할 수 있는데 src폴더로 이동하여 ./configure 및 make를 날리여 커널 모듈들을 재컴파일 한다.

컴파일이 끝나면 /usr/src/openafs-kernel-1.4.11/src/src/libafs/MODLOAD-2.6.32.7-MP/ 경로에 우리가 필요로 하는 openafs 커널 모듈들이 만들어 진다. 이것을 /lib/modules/커널버젼/extra/openafs/ 폴더로 복사해준다. 폴더가 존재 하지 않으니 미리 만들어 주는 센스를 발휘해야겠다.

mkdir -p /lib/modules/커널버젼/extra/openafs
cp -R /usr/src/openafs-kernel-1.4.11/src/src/libafs/MODLOAD-커널버젼-MP/* /lib/modules/커널버젼/extra/openafs/

다음 떠있는 커널에 모듈을 인식 시키고 적재 시켜준다.
모듈을 적재하는 방법으로는 insmod와 modprobe 두가지가 있는데 modprobe는 의존성 체크까지 하여 모듈 적재를 하므로 비교적 안전하므로 이 방식으로 나는 추가 했다.

먼저 depmod 명령어를 날려 모듈 의존성 리스트를 만든다.

depmod -ae 커널버젼

다음 modprobe를 날려 openafs의존 모듈만 추가한다.

modprobe -a openafs

추가가 잘 되었는지는 아래 명령어를 확인해볼 수 있다.

lsmod | grep openafs

마지막으로 설치된 afs client를 실행해주면 끝~

service openafs-client start

댓글 없음:

댓글 쓰기