Lustre는 대규모 HPC(High Performance Computing) 환경에서 사용되는 병렬 분산 파일시스템이다. 수천 개의 클라이언트가 동시에 접근하는 대용량 스토리지를 제공하며, 슈퍼컴퓨터 클러스터나 AI 학습 인프라에서 자주 사용된다.
- MDS(Metadata Server): 파일/디렉토리 메타데이터(inode, 권한, 이름) 관리
- OSS(Object Storage Server): 실제 파일 데이터를 저장하는 스토리지 서버
- MGS(Management Server): Lustre 설정 정보 저장
- 클라이언트:
lustre커널 모듈을 통해 마운트
파일 데이터는 여러 OSS에 걸쳐 stripe(분산) 저장되고, 메타데이터는 MDS가 별도로 관리한다.
# 커널 모듈 로드sudo modprobe lustre
# 마운트sudo mount -t lustre mgs-server@tcp:/fsname /mnt/lustre
# 확인df -h /mnt/lustrelctl dl # Lustre 디바이스 목록-t lustre를 지정하면 커널이 /sbin/mount.lustre 헬퍼를 호출한다. NFS와 달리 Lustre는 MGS를 통해 설정을 받아오므로 마운트 시 MGS 주소가 필요하다.
마운트 시 일어나는 일
mount.lustre헬퍼가 MGS에 접속해 파일시스템 설정 수신- MDS에서 루트 디렉토리 메타데이터 획득
- OSS 목록과 연결 확인
- 커널 VFS에 마운트 등록
디렉토리 권한
Section titled “디렉토리 권한”Lustre는 기본적으로 POSIX 표준 권한 모델을 따른다.
# 일반 권한 설정 (표준 chmod/chown과 동일)chmod 755 /mnt/lustre/mydirchown user:group /mnt/lustre/mydir
# setgid 비트: 하위 파일이 부모 디렉토리의 그룹을 상속chmod g+s /mnt/lustre/sharedLustre ACL
Lustre는 POSIX ACL을 지원한다. 마운트 시 acl 옵션을 줘야 활성화된다.
sudo mount -t lustre -o acl mgs-server@tcp:/fsname /mnt/lustre# ACL 설정setfacl -m u:alice:rwx /mnt/lustre/projectsetfacl -m g:devteam:rx /mnt/lustre/project
# ACL 확인getfacl /mnt/lustre/project
# 기본 ACL (하위 파일/디렉토리에 자동 적용)setfacl -d -m u:alice:rwx /mnt/lustre/projectUID/GID 매핑
클라이언트와 서버의 UID/GID가 일치해야 권한이 올바르게 적용된다. HPC 환경에서는 보통 LDAP이나 NIS로 UID를 통일한다. 불일치 시 파일 소유자가 nobody로 보이거나 접근이 거부된다.
스트라이프 설정
Section titled “스트라이프 설정”Lustre의 특징적인 기능으로, 파일 데이터를 여러 OSS에 분산 저장해 대역폭을 높인다.
# 현재 스트라이프 확인lfs getstripe /mnt/lustre/myfile
# 디렉토리에 스트라이프 설정 (하위 파일에 상속)lfs setstripe -c 4 /mnt/lustre/project # OST 4개에 분산lfs setstripe -s 1M /mnt/lustre/project # 스트라이프 크기 1MB
# 파일 생성 시 스트라이프 지정lfs setstripe -c 8 -s 4M /mnt/lustre/bigfile.dat-c: stripe count (사용할 OST 수,-1이면 전체 OST 사용)-s: stripe size (각 OST에 한 번에 쓰는 청크 크기)
권한 설정처럼 디렉토리에 스트라이프를 설정하면 하위에 생성되는 파일이 자동으로 해당 설정을 상속한다.
프로젝트 쿼터
Section titled “프로젝트 쿼터”Lustre는 사용자/그룹 쿼터 외에 디렉토리 단위로 용량을 제한하는 프로젝트 쿼터를 지원한다.
# 프로젝트 ID 할당lfs project -p 100 -r /mnt/lustre/team-a
# 쿼터 설정 (MDS에서 실행)lctl set_param qmt.*.md-0x0.glb-prj='projid=100 hardlimit=1T softlimit=900G'
# 사용량 확인lfs quota -p 100 /mnt/lustre주요 lfs 명령어
Section titled “주요 lfs 명령어”lfs df /mnt/lustre # 전체 OST 사용량lfs df -i /mnt/lustre # inode 사용량 (MDS 기준)lfs find /mnt/lustre -type f -size +1G # 대용량 파일 검색lfs check all # MDS/OSS 상태 확인참고