본문 바로가기
[GPUaaS]/SLURM

[SLURM 직접 설치] NCP VM + Ubuntu 기준 !!

by METAVERSE STORY 2026. 2. 8.
반응형

 

 

 

✅ 목표
1대의 Master 노드 + 1대 이상의 Compute 노드에서
SLURM이 정상 동작하도록 만드는 것


전체 구조 (먼저 그림으로 이해)

[ 로그인 PC ]
     |
     v
[ NCP VM - Master Node ]
  - slurmctld
  - munge
     |
     v
[ NCP VM - Compute Node ]
  - slurmd
  - munge

✅ 사전 준비 (중요)

① VM 준비

  • OS: Ubuntu 20.04 / 22.04
  • 최소 구성
    • Master: 1대
    • Compute: 1대 이상
  • 모든 노드가 서로 사설 IP로 통신 가능해야 함

② 공통 계정

  • 모든 노드에 같은 사용자 존재 (예: ubuntu)
  • 시간 동기화 필수 (나중에 설명)

 

 

 


1️⃣ 모든 노드에서 공통 작업 (Master + Compute)

1-1. 시스템 업데이트

 
 
 
 
Shell
 
sudo apt update && sudo apt upgrade -y
더 많은 선 표시

1-2. 필수 패키지 설치

 
 
 
 
Shell
 
sudo apt install -y \
build-essential \
munge \
libmunge-dev \
libssl-dev \
libpam0g-dev \
libnuma-dev \
hwloc \
wget
``
더 많은 선 표시

munge
→ SLURM 노드 간 “서로 믿어도 되는지” 확인하는 인증 시스템
없으면 SLURM 절대 안 됨


1-3. munge 키 생성 (Master에서만)

✅ Master 노드에서 실행

 
 
 
 
Shell
 
sudo create-munge-key
sudo chown munge:munge /etc/munge/munge.key
sudo chmod 400 /etc/munge/munge.key
``
 
더 많은 선 표시

1-4. munge 키 복사 (Master → Compute)

✅ Master에서

 
 
 
 
Shell
 
scp /etc/munge/munge.key ubuntu@<COMPUTE_PRIVATE_IP>:/tmp/
더 많은 선 표시

✅ Compute에서

 
 
 
 
Shell
 
sudo mv /tmp/munge.key /etc/munge/munge.key
sudo chown munge:munge /etc/munge/munge.key
sudo chmod 400 /etc/munge/munge.key
더 많은 선 표시

1-5. munge 서비스 시작 (모든 노드)

 
 
 
 
Shell
 
sudo systemctl enable munge
sudo systemctl restart munge
더 많은 선 표시

✅ 정상 확인

 
 
 
 
Shell
 
munge -n | unmunge
``
 
더 많은 선 표시

결과가 나오면 ✅ 성공

 

 

 


2️⃣ SLURM 설치 (모든 노드)

2-1. SLURM 패키지 설치

 
 
 
 
Shell
 
sudo apt install -y slurm-wlm
 
더 많은 선 표시

설치 후 자동 설정은 아직 하지 마세요.

 

 

 


3️⃣ SLURM 설정 파일 작성 (Master)

3-1. 노드 이름 & IP 정리

 
 
 
 
Shell
 
hostname
ip a
더 많은 선 표시

예시:

master-node  → 10.0.0.10
compute-1    → 10.0.0.11

 


3-2. /etc/hosts 설정 (모든 노드)

 
 
 
 
Shell
 
sudo nano /etc/hosts
더 많은 선 표시
 
 
 
 
Shell
 
10.0.0.10 master
10.0.0.11 compute1
더 많은 선 표시

3-3. SLURM 설정 파일 생성 (Master)

 
 
 
 
Shell
 
sudo nano /etc/slurm/slurm.conf
더 많은 선 표시

✅ 초보자용 최소 설정 예제

 
 
 
 
Apache Config
 
ClusterName=ncp-cluster
SlurmctldHost=master
 
ProctrackType=proctrack/linuxproc
ReturnToService=2
 
SlurmctldPort=6817
SlurmdPort=6818
 
AuthType=auth/munge
StateSaveLocation=/var/spool/slurmctld
SlurmdSpoolDir=/var/spool/slurmd
 
SwitchType=switch/none
MpiDefault=none
SlurmctldTimeout=300
SlurmdTimeout=300
 
SchedulerType=sched/backfill
SelectType=select/cons_tres
SelectTypeParameters=CR_Core
 
NodeName=compute1 CPUs=8 RealMemory=32000 State=UNKNOWN
PartitionName=gpu Nodes=compute1 Default=YES MaxTime=INFINITE State=UP
 
간단히 보기

3-4. 디렉터리 생성

 
 
 
 
Shell
 
sudo mkdir -p /var/spool/slurmctld /var/spool/slurmd
sudo chown -R slurm:slurm /var/spool/slurm*
``
 
더 많은 선 표시

 

 

 


4️⃣ 설정 파일 배포 (Master → Compute)

 
 
 
 
Shell
 
scp /etc/slurm/slurm.conf ubuntu@compute1:/tmp/
더 많은 선 표시

Compute에서:

 
 
 
 
Shell
 
sudo mv /tmp/slurm.conf /etc/slurm/slurm.conf
더 많은 선 표시

 

 

 


5️⃣ SLURM 데몬 실행

5-1. Master 노드

 
 
 
 
Shell
 
sudo systemctl enable slurmctld
sudo systemctl restart slurmctld
더 많은 선 표시

5-2. Compute 노드

 
 
 
 
Shell
 
sudo systemctl enable slurmd
sudo systemctl restart slurmd
더 많은 선 표시

 

 

 


6️⃣ 동작 확인 (Master)

6-1. 노드 상태 확인

 
 
 
 
Shell
 
sinfo
더 많은 선 표시

정상 예:

PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
gpu       up     infinite       1   idle compute1

6-2. 간단한 테스트 잡

 
 
 
 
Shell
 
nano test.sh
``
더 많은 선 표시
 
 
 
 
Shell
 
#!/bin/bash
#SBATCH -J test
#SBATCH -p gpu
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 00:01:00
 
hostname
더 많은 선 표시
 
 
 
 
Shell
 
chmod +x test.sh
sb
더 많은 선 표시
 
 
 
 
Shell
 
squeue
더 많은 선 표시

 

 

 


7️⃣ 초보자가 100% 겪는 문제 TOP 5

❌ sinfo에 노드가 DOWN

  • /etc/hosts 잘못됨
  • munge 키 다름
  • 방화벽 차단

✅ 확인:

 
 
 
 
Shell
 
munge -n | unmunge
더 많은 선 표시

❌ 잡이 계속 Pending

  • 자원 요청 > 노드 스펙
  • Partition 이름 틀림

❌ slurmd 안 뜸

 
 
 
 
Shell
 
sudo journalctl -u slurmd -n 50
더 많은 선 표시

✅ 여기까지 되면 성공입니다

🎉 NCP 위에 SLURM 클러스터 기본 구축 완료

 

 

 

반응형

댓글