HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Zero to Hero 17편] Slurm 파티션과 노드 관리 – slurm.conf 설정과 노드 상태 제어

ygtoken 2025. 8. 10. 08:39
728x90

 

왜 파티션과 노드 관리를 알아야 하는가

 

Slurm에서 **파티션(Partition)**은 일종의 **Job 대기열(Queue)**이자 **자원 풀(Resource Pool)**입니다.

HPC/GPU 클러스터에서는 모든 노드를 하나의 파티션에 넣지 않고, 사용 목적·성능·자원 종류에 따라 파티션을 나눠 운영합니다.

 

예:

  • GPU 전용 파티션 (gpu)
  • CPU 전용 파티션 (cpu)
  • 장기 작업 파티션 (long)
  • 테스트용 파티션 (debug)

 

또한 운영자는 파티션 구성뿐만 아니라 노드 상태 제어(가동, 유지보수, 예약 등)를 통해 자원 활용도를 최적화해야 합니다.

 


 

1. slurm.conf에서 파티션 정의

 

slurm.conf는 Slurm의 핵심 설정 파일입니다.

파티션 정의는 다음과 같은 형식으로 작성합니다.

# GPU 파티션 예시
PartitionName=gpu Nodes=node[01-08] Default=NO MaxTime=48:00:00 State=UP

# CPU 파티션 예시
PartitionName=cpu Nodes=node[09-32] Default=YES MaxTime=24:00:00 State=UP

 

주요 필드

  • PartitionName: 파티션 이름
  • Nodes: 해당 파티션에 속하는 노드 목록
  • Default: 기본 파티션 여부 (YES/NO)
  • MaxTime: 최대 실행 시간
  • State: 파티션 상태 (UP, DOWN, INACTIVE)

 

실무 팁

  • GPU와 CPU 파티션을 분리하면 GPU 없는 노드에 GPU Job이 잘못 배정되는 것을 방지
  • 테스트 파티션(debug)을 만들어 짧은 Job만 허용하면 운영 안정성 향상

 


 

2. slurm.conf에서 노드 정의

 

노드 정의 예시:

# GPU 노드
NodeName=node[01-08] Gres=gpu:4 CPUs=64 RealMemory=512000 State=UNKNOWN

# CPU 노드
NodeName=node[09-32] CPUs=64 RealMemory=512000 State=UNKNOWN

 

주요 필드

  • NodeName: 노드 이름 또는 범위
  • Gres: GPU 자원 정의 (gpu:개수)
  • CPUs: 할당 가능한 CPU 코어 수
  • RealMemory: 총 메모리(MB 단위)
  • State: 노드 초기 상태

 


3. 노드 상태 제어 명령어

노드 상태 확인

sinfo -N -l
  • STATE 필드: IDLE, ALLOC, MIX, DOWN, DRAIN

 


 

노드 유지보수 모드(DRAIN)

scontrol update NodeName=node05 State=DRAIN Reason="GPU fan issue"
  • 해당 노드에 새로운 Job이 배정되지 않도록 함

 


 

노드 복구(Resume)

scontrol update NodeName=node05 State=RESUME

 


 

노드 상태 강제 변경

scontrol update NodeName=node05 State=DOWN Reason="Hardware failure"
  • 장애 처리 시 사용

 


 

4. 파티션 상태 제어

파티션 비활성화

scontrol update PartitionName=gpu State=INACTIVE

 

파티션 활성화

scontrol update PartitionName=gpu State=UP

 


 

5. GPU 환경에서의 파티션 운영 전략

  • GPU 모델별로 파티션을 분리 (예: gpu_a100, gpu_h100)
  • 장기 학습과 단기 실험을 다른 파티션에 할당
  • MIG(Multi-Instance GPU) 활성화 시 파티션 설정에 MIG 자원 반영
  • GPU 파티션에만 gres.conf 설정 필수

 


 

HPC 운영 시나리오 예시

상황 명령어 조치
특정 GPU 노드 팬 오류 scontrol update NodeName=node03 State=DRAIN 유지보수 후 RESUME
디버그 전용 파티션 생성 PartitionName=debug Nodes=node01 MaxTime=01:00:00 짧은 Job 전용
GPU Job이 CPU 노드에 배정됨 slurm.conf에서 GPU 파티션 노드 범위 수정 GPU 없는 노드 제외

 


 

장점과 단점

장점

  • 자원 배치 최적화 가능
  • 장애 노드 격리로 안정성 확보
  • Job 유형별 파티션 분리로 효율 향상

 

단점

  • 설정 변경 시 Slurm 재시작 필요
  • 노드/파티션 관리 복잡도 증가

 


 

실무 팁과 주의사항

  • slurm.conf 변경 후 scontrol reconfigure로 무중단 적용 가능
  • 파티션 변경 시 사용자와 사전 공유 필수
  • GPU 노드는 항상 gres.conf와 slurm.conf가 일치해야 함
  • 노드 유지보수 모드 사용 시 Reason 필드에 원인 기록 → 운영 기록에 도움

 


 

정리하며

Slurm 파티션과 노드 관리는 HPC 운영자가 자원 정책을 구현하는 핵심 기술입니다.

정확한 파티션 설계와 노드 상태 제어는 자원 효율성, 운영 안정성, 사용자 만족도를 크게 향상시킵니다.

다음 18편에서는 Slurm Job Script 작성법 – 자원 요청과 환경 변수 설정을 다루어, 사용자와 운영자 모두가 효율적인 Job 제출 환경을 구성할 수 있도록 하겠습니다.

 

 

728x90