Lustre를 2.12.5 버전으로 설치하기로 결정했으니, 해당 버전에 맞춰 서버와 클라이언트의 커널 버전 또한 맞춰줘야 한다.
우선 MDS와 OSS에 CentOS 7.8 버전을 설치하고, 클라이언트는 Ubuntu 18.04버전을 설치한다.
주의할 점은 OS를 설치할 때 디스크를 LVM으로 설치하면 안된다는 것 이다.
LVM을 이용해 설치하게 될 경우 서버에 설치되어있는 HDD와 SSD를 모두 하나의 가상 볼륨으로 묶어버리기 때문에,
Lustre 파일 시스템을 설치할 때 문제가 발생할 수 있다. (블럭 파티션 포맷이 안되는 문제 발생)
본인도 이를 모른 채 설치를 진행했다가 3대의 서버 전부를 포맷하는 불상사를 겪었기에...
꼭 디스크는 개별 디스크로 분리한 뒤, OS용 디스크를 따로 설정하여 진행하도록 하자.
OS 설치는 워낙 간단하기도 하고 다양한 설정이 존재하기 때문에 작성하지 않았다. 필요한 정보는 검색을 통해 찾으면 나온다.
OS 설치가 끝났다면 호환되는 커널 버전을 확인하기 위해서 Changelog 를 확인하고,
해당하는 커널로 업/다운그레이드를 진행해준다.
Lustre 2.12.5 Changelog
Changelog를 참고하여 연구실의 환경 구성은 서버에서 CentOS, 클라이언트에서 Ubuntu를 사용하도록 하였다.
서버의 경우 CentOS 7.8, 커널버전 3.10.0-1127.8.2.el7,
클라이언트의 경우 Ubuntu 18.04, 커널버전 4.15.0-72를 사용한다.
커널 버전의 업/다운그레이드 방법은 검색하면 많은 결과가 나오니 이를 참고하여 진행한다.
본인은 안정성을 위해 yum과 apt-get을 통해 커널을 설치하고, 기존 커널을 제거해주는 방식으로 진행하였다.
Client의 Kernel Version
MDS Server의 Kernel Version
이와 같이 커널 버전을 조정해준 뒤, Lustre 실행에 필요한 패키지를 설치해준다.
패키지는 공식 홈페이지의 Download 페이지의 All Lustre Releases 페이지를 통해 다운로드 받는다.
Lustre Release Download Page
각 버전마다 -ib 라는 디렉토리가 있는데, 이는 InfiniBand 네트워크를 이용하는 Lustre 패키지이므로 일반 디렉토리에서 다운로드 받도록 한다.
다운받고자 하는 버전의 디렉토리에 들어가서 다운로드
위 사진과 같이 OS에 따라 디렉토리가 나뉘므로, 각 서버와 클라이언트에 맞는 디렉토리로 들어가면 된다.
Lustre Client Packages (Ubuntu)
클라이언트는 다음과 같은 패키지들을 다운받을 수 있으며,
연구실에서는
lustre-client-modules, lustre-client-utils, lustre-iokit
의 세가지 패키지를 받아서 진행한다.
각 패키지의 역할은 다음과 같다.
Name
Description
lustre-client-modules
Lustre의 리눅스 커널 모듈
lustre-client-utils
Lustre의 Client Userspace 유틸리티
lustre-iokit
Lustre File System 벤치마크 툴 모음
클라이언트 패키지 종속성은 다음과 같다. 패키지를 설치하기 전에 의존성을 해결해두고, 그 이후에 설치하는 것을 권장한다.
Ubuntu Client Packages Dependencies
Lustre Server Packages (RHEL 7.8)
서버의 경우 클라이언트보다 더 많은 패키지가 있으며, 필수 패키지를 제외하고는 필요에 따라 설치하면 된다.
또한 서버에서는 e2fsprogs 소프트웨어를 필수적으로 설치해줘야 하기 때문에, 다운로드 페이지 에서 OS 버전에 맞는 패키지를 다운로드한다.
설치하는 서버 패키지의 목록과 각 패키지의 역할은 다음과 같다.
Name
Description
e2fsprogs
ext2/ext3/ext4 파일 시스템의 관리를 위한 패키지
e2fsprogs-libs
e2fsprogs의 라이브러리
e2fsprogs-static
e2fsprogs의 static 라이브러리
kernel-3.10.0-1127.8.2.el7_lustre
Lustre 최적화 리눅스 커널
kmod-lustre
Lustre 커널 모듈
kmod-lustre-osd-ldiskfs
ldiskfs의 커널 모듈 (ldiskfs 설명은 링크 )
libcom_err
e2fsprogs의 오류 처리를 위한 라이브러리
libnvpair1
name-value pair의 pack/unpack을 위한 라이브러리
libss
CLI Parser 생성 및 컴파일, 사용을 위한 라이브러리
libuutil1
FS 관련 라이브러리의 묶음 파일
libzpool2
zpool의 라이브러리
lustre
Lustre Userspace tools and files
lustre-iokit
Lustre File System 벤치마크 툴 모음
lustre-osd-ldiskfs-mount
LDISKFS hooks for mount/mkfs into a dynamic library.
perf-3.10.0-1127.8.2.el7_lustre
리눅스 커널 성능 모니터링 툴
커널 버전 조정과 패키지 설치가 끝났다면, 본격적으로 파일 시스템을 구성하도록 한다.