IBM Spectrum Scale(GPFS)란 무엇인가?
IBM Spectrum Scale(구 GPFS, General Parallel File System)은 IBM이 개발한 고성능 병렬 분산 파일 시스템입니다. 수천 개의 노드가 동시에 하나의 파일 시스템에 접근할 수 있으며, HPC(고성능 컴퓨팅), 빅데이터 분석, AI 워크로드 환경에서 폭넓게 사용됩니다. 페타바이트 규모의 데이터를 안정적으로 처리할 수 있다는 점이 핵심 강점이지만, 그만큼 성능 문제가 발생했을 때 원인을 찾는 과정이 복잡합니다.
이 글에서는 실무 운영 환경에서 바로 적용할 수 있는 Spectrum Scale 성능 모니터링 방법과 자주 발생하는 문제의 트러블슈팅 접근법을 정리합니다.
기본 상태 점검 명령어
Spectrum Scale 문제가 발생하면 가장 먼저 클러스터 전체의 기본 상태를 확인해야 합니다.
클러스터 및 노드 상태 확인
mmgetstate -a # 전체 노드의 GPFS 데몬 상태 확인
mmlscluster # 클러스터 기본 정보 출력
mmlsnode -a # 노드 목록 및 역할 확인
mmdiag --network # 네트워크 연결 상태 진단
mmgetstate -a 실행 시 노드 상태가 active가 아닌 arbitrating이나 down으로 표시된다면 해당 노드부터 우선 점검해야 합니다.
파일 시스템 상태 확인
mmlsfs all # 전체 파일 시스템 설정 정보
mmlsmount all -L # 마운트 상태 및 마운트된 노드 확인
mmlsdisk -L # 디스크(NSD) 상태 확인
mmdf # 파일 시스템 사용량 확인
mmlsdisk에서 디스크 상태가 failed 또는 missing으로 표시되면 즉각 스토리지 레이어를 점검해야 합니다. 이 상태가 지속되면 데이터 접근 불가 또는 성능 급저하로 이어집니다.
성능 모니터링: mmpmon 활용
Spectrum Scale의 핵심 성능 모니터링 도구는 mmpmon입니다. 실시간으로 I/O 통계를 수집하고 분석할 수 있습니다.
기본 I/O 통계 수집
echo "io_s" | mmpmon -p -r 0 # 전체 I/O 통계 출력
echo "fs_io_s" | mmpmon -p -r 0 # 파일 시스템별 I/O 통계
echo "nsd_io_s" | mmpmon -p -r 0 # NSD(디스크)별 I/O 통계
출력 항목 중 주목해야 할 값은 다음과 같습니다.
- _br_ / _bw_: 읽기/쓰기 바이트 수 (처리량 확인)
- _rdc_ / _wrc_: 읽기/쓰기 요청 횟수
- _oc_: open 호출 횟수 (메타데이터 부하 지표)
- _cc_: close 호출 횟수
주기적 통계 수집 스크립트
실시간 추이를 보려면 일정 간격으로 mmpmon을 반복 실행해 비교하는 방식이 효과적입니다.
#!/bin/bash
while true; do
echo "=== $(date '+%Y-%m-%d %H:%M:%S') ==="
echo "fs_io_s" | mmpmon -p -r 0 | grep "_fs_io_s_"
sleep 10
done
이 스크립트를 백그라운드로 실행하면서 성능 이슈 발생 전후 값을 비교하면 어느 파일 시스템에서 부하가 집중되는지 빠르게 파악할 수 있습니다.
메타데이터 성능 문제 진단
Spectrum Scale 환경에서 성능 저하의 원인 중 상당수는 메타데이터 병목입니다. 특히 소용량 파일이 수백만 개 이상 존재하거나, open/stat/readdir 호출이 집중될 때 발생합니다.
메타데이터 관련 점검
mmlsconfig | grep -i meta # 메타데이터 설정 확인
mmlsfileset -L # 필레셋 구성 확인
echo "io_s" | mmpmon -p -r 0 | grep _oc_ # open 호출 횟수 확인
- 메타데이터 전용 NSD가 분리되어 있는지 확인 (메타데이터와 데이터 디스크 분리는 성능의 핵심)
- inode 크기 설정이 워크로드에 적합한지 검토 (기본값 4096 bytes)
- 디렉터리 내 파일 수가 수십만 개를 넘는 경우 해시 디렉터리 구조 적용 검토
네트워크 성능 문제 진단
GPFS는 노드 간 통신에 인터커넥트 네트워크를 적극 활용합니다. InfiniBand 또는 이더넷 성능 저하가 전체 파일 시스템 성능에 직접 영향을 줍니다.
네트워크 진단 명령어
mmdiag --network # 클러스터 내 노드 간 네트워크 연결 진단
mmnetverify # 네트워크 성능 검증 (패킷 손실, 대역폭)
mmlsconfig | grep subnets # 서브넷 구성 확인
InfiniBand 환경이라면 별도로 ibstat, perfquery 명령어로 포트 상태와 오류 카운터를 확인하고, 오류 카운터가 지속적으로 증가하면 케이블 또는 HCA 교체를 검토해야 합니다.
자주 발생하는 문제와 해결 방법
1. 파일 시스템 마운트 불가
mmgetstate -a로 모든 노드 데몬 상태 확인- 쿼럼(Quorum) 미달 여부 점검 — 전체 노드의 과반수 이상이 active 상태여야 마운트 가능
/var/adm/ras/mmfs.log.latest로그에서 구체적 오류 메시지 확인
2. 특정 노드에서 성능 저하
- 해당 노드의 CPU, 메모리, 네트워크 사용률 확인 (
top,sar,ss) mmdiag --network로 해당 노드의 네트워크 연결 상태 점검- pagepool 설정 확인:
mmlsconfig | grep pagepool(권장값: 물리 메모리의 25~50%)
3. 디스크 응답 지연
mmlsdisk로 NSD 상태 확인-L - 스토리지 컨트롤러 레벨에서 I/O 대기 시간(latency) 별도 모니터링
- NSD 서버 노드 부하 집중 여부 확인 후 NSD 서버 분산 검토
핵심 로그 파일 위치
트러블슈팅 시 반드시 확인해야 하는 로그 파일 경로입니다.
- /var/adm/ras/mmfs.log.latest: GPFS 데몬 메인 로그 (가장 중요)
- /var/adm/ras/mmfs.log.previous: 이전 로그 (재시작 전 이벤트 추적)
- /var/log/messages: 커널 및 시스템 레벨 이벤트 확인
마무리
IBM Spectrum Scale은 강력한 만큼 운영 복잡도도 높습니다. 평소에 mmpmon으로 베이스라인 성능 수치를 축적해두는 것이 가장 중요합니다. 문제가 발생했을 때 비교할 기준값이 없으면 트러블슈팅 시간이 크게 늘어납니다. 클러스터 상태 점검, 성능 통계 수집, 로그 분석을 루틴화하면 대부분의 문제를 조기에 발견하고 대응할 수 있습니다.
'IT > aix' 카테고리의 다른 글
| AIX GPFS에서 NSD 추가 및 제거 하기 (0) | 2025.05.27 |
|---|---|
| GPFS에서 PermitRootLogin "No" 설정 시 조치 방법 (3) | 2025.02.26 |
| IBM GPFS(Spectrum Scale) 파일시스템 제거 방법 (0) | 2025.02.26 |
| gpfs 파일시스템 증설 (0) | 2020.12.28 |
| PowerHA 시 Interface is not configured in AIX 에러 발생 시 (0) | 2020.11.12 |