본문 바로가기

전산

# 리눅스 GPFS 스토리지 연결하기

반응형

GPFS(Global Parallel File System)는 IBM에서 개발한 고성능 병렬 파일 시스템으로, 대규모 데이터 처리 및 고성능 컴퓨팅(HPC) 환경에서 널리 사용됩니다. 본 포스트에서는 리눅스 환경에서 GPFS를 스토리지에 연결하는 방법을 단계별로 안내하고, 실무에서 자주 묻는 질문(FAQ)도 함께 정리하였습니다.


✅ GPFS란 무엇인가?

GPFS(Global Parallel File System), 현재는 IBM Spectrum Scale로도 불립니다. 이는 여러 서버와 스토리지를 병렬로 연결하여, 고속의 파일 I/O 처리와 뛰어난 확장성을 제공합니다. 다음과 같은 장점이 있습니다:

  • 고속 데이터 액세스
  • 파일 단위 병렬 처리
  • 공유 파일 시스템 구성
  • 수평 확장성
  • 데이터 무결성과 고가용성 보장

✅ GPFS 스토리지 연결 전 준비 사항

1. 시스템 요구 사항 확인

  • RHEL / CentOS / Ubuntu 등 지원되는 리눅스 배포판
  • 최소 커널 버전
  • GPFS 라이센스 및 설치 파일
  • 스토리지 장치 (SAN/NAS/DAS 등)
  • 시간 동기화(NTP), DNS 설정

2. 사용자 및 그룹 생성

GPFS는 특정 사용자/그룹 권한으로 실행되므로, 다음 계정을 설정합니다:

groupadd gpfs
useradd -g gpfs gpfsadmin

3. 방화벽/SELinux 설정

GPFS 노드 간 통신을 위해 포트를 개방하고, SELinux 설정을 조정해야 합니다.

# 방화벽 예시
firewall-cmd --permanent --add-port=1191/tcp
firewall-cmd --reload

✅ GPFS 설치 및 구성

1. 패키지 설치

# RPM 패키지 설치 예시
rpm -ivh gpfs.base-<version>.rpm
rpm -ivh gpfs.gpl-<version>.rpm
rpm -ivh gpfs.docs-<version>.rpm
rpm -ivh gpfs.msg.en_US-<version>.rpm

또는 .deb 패키지를 사용하는 경우 dpkg -i 명령어를 사용합니다.


2. GPFS 라이센스 활성화

mmchlicense server --accept -N <노드리스트>

3. 클러스터 생성

mmcrcluster -N /path/to/nodefile.txt -p <primary_node> -s <secondary_node> -r /usr/bin/ssh -R /usr/bin/scp

노드 파일에는 다음 형식으로 노드를 나열합니다:

node1:quorum
node2:quorum
node3:manager

4. GPFS 시작

mmstartup -a

이 명령으로 클러스터의 모든 노드에서 GPFS가 실행됩니다.


✅ GPFS 파일 시스템 구성 및 마운트

1. 디바이스 생성

mmcrnsd -F /path/to/nsdfile.txt

NSD 파일은 다음과 같이 구성됩니다:

%nsd:
  device=/dev/sdb
  nsd=nsd1
  servers=node1,node2
  usage=dataAndMetadata
  failureGroup=1

2. 파일 시스템 생성

mmcrfs gpfs_fs /dev/nsd1 /dev/nsd2 -F /path/to/nsdfile.txt -A yes -Q no -m 2 -r 1 -n 32M

옵션 설명:

  • -A yes: 자동 마운트 설정
  • -Q no: 쿼럼 디바이스 사용 안함
  • -m, -r: 메타데이터 및 복제 수
  • -n: 블록 크기

3. 마운트 및 확인

mmmount gpfs_fs -a
df -hT | grep gpfs

정상적으로 마운트되었다면 gpfs 타입으로 출력됩니다.


✅ 자동 마운트 설정

시스템 재부팅 시 자동으로 GPFS가 마운트되도록 /etc/fstab에 설정하거나, mmchfs gpfs_fs -A yes 명령어로 자동 마운트를 설정합니다.


🔧 실무 팁 및 트러블슈팅

1. GPFS 데몬이 비정상 종료될 때

mmshutdown -a
mmstartup -a

2. 디바이스 인식 오류

  • lsblk, lsscsi, udevadm info 명령어로 장치 상태 확인
  • 퍼미션 또는 LUN 매핑 확인

3. GPFS 상태 점검

mmgetstate -a
mmdiag --all

🔍 GPFS 구성 예시 아키텍처

[Client Node 1]──┐
[Client Node 2]──┴─> [GPFS Cluster Node 1]───┐
                                 │         [SAN Storage]
[Client Node 3]──┬─> [GPFS Cluster Node 2]───┘

이처럼 각 클라이언트 노드는 GPFS 클러스터를 통해 스토리지에 병렬 접근이 가능합니다.


❓ FAQ: GPFS 스토리지 연결 관련 자주 묻는 질문

Q1. GPFS는 무료인가요?

IBM의 라이선스 정책에 따라 유료입니다. 일부 기능은 평가판 또는 오픈소스 버전으로 제공될 수 있으나, 고급 기능은 라이선스 필요합니다.

Q2. GPFS와 NFS의 차이점은 무엇인가요?

GPFS는 병렬 I/O를 지원하는 고성능 파일 시스템이며, NFS는 단일 서버 기반의 네트워크 파일 시스템입니다. GPFS는 확장성, 성능, 신뢰성에서 우수합니다.

Q3. GPFS 클러스터는 최소 몇 노드로 구성해야 하나요?

최소 3개의 노드(2개는 쿼럼 노드, 1개는 매니저 노드) 이상이 권장됩니다.

Q4. GPFS 파일 시스템은 어떤 유형의 스토리지를 사용할 수 있나요?

SAN, DAS, SSD, NVMe 등 다양한 형태의 블록 디바이스를 사용할 수 있습니다.

Q5. GPFS는 클라우드에서도 사용할 수 있나요?

네, AWS, Azure, IBM Cloud 등 다양한 클라우드에서 IBM Spectrum Scale 형태로 운영 가능합니다.


✍️ 마무리

GPFS는 고성능, 대용량 데이터 환경에서 매우 유용한 파일 시스템입니다. 본 포스트를 통해 리눅스 환경에서 GPFS를 설치하고 스토리지와 연결하는 방법을 익히셨기를 바랍니다. 실제 환경에 맞는 튜닝 및 보안 설정도 병행하면 안정성과 성능을 극대화할 수 있습니다.


#리눅스스토리지 #GPFS #IBM스펙트럼스케일 #고성능파일시스템 #HPC #스토리지연결 #파일시스템구성 #리눅스서버운영 #서버관리팁


반응형