반응형

✅ 목표
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 클러스터 기본 구축 완료
반응형
'[GPUaaS] > SLURM' 카테고리의 다른 글
| [NCP & GPU & SLURM] 구축기 - 자주 터지는 실수 TOP 10 (0) | 2026.02.08 |
|---|---|
| [SLURM] 잡 스크립트 (sbatch) 예제!! (0) | 2026.02.08 |
| [SLURM] GPU 서버를 효율적으로 나눠 쓰게 해주는 작업 관리자!! (0) | 2026.02.08 |
댓글