본문 바로가기
[GPUaaS]/SLURM

[Slurm] down* 와 down 차이 완벽 정리 🚀

by METAVERSE STORY 2026. 6. 11.
반응형

 

 

Slurm down*down 차이 완벽 정리 🚀

그리고 down* 원인이 slurmd 데몬 중지였을 때 복구 방법까지

Slurm 클러스터를 운영하다 보면 sinfo 명령어에서 노드 상태가 down, down*, mix, alloc, idle 등으로 표시됩니다.

그중에서 운영자가 자주 헷갈리는 상태가 바로 아래 두 가지입니다.

PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
gpu_part*    up   infinite      2  down* gpu-node-a[01-02]
gpu_part*    up   infinite      1    mix gpu-node-b01
gpu_part*    up   infinite      3  alloc gpu-node-c[01-03]
gpu_part*    up   infinite     63   down gpu-node-d[01-63]

여기서 중요한 질문은 이것입니다.

down*down 은 무슨 차이일까? 🤔


1. 결론부터 정리 ✅

상태의미

down Slurm이 해당 노드를 DOWN 상태로 관리 중
down* DOWN 상태이면서 노드 응답이 없거나 Slurm이 상태를 정상 확인하지 못하는 상태

즉, 둘 다 작업을 받을 수 없는 DOWN 상태입니다.

하지만 down* 는 단순 DOWN보다 더 주의해서 봐야 합니다.


2. down 상태란? 🧊

down 은 Slurm이 해당 노드를 사용할 수 없는 상태로 판단했다는 뜻입니다.

예를 들어 다음과 같은 상황에서 발생할 수 있습니다.

- 관리자가 수동으로 DOWN 처리한 경우
- 장애 발생 후 Slurm이 노드를 DOWN으로 변경한 경우
- GPU, 메모리, 디스크, 네트워크 문제로 노드를 제외한 경우
- 기존 장애 사유가 남아 있어서 RESUME 되지 않은 경우

예시:

gpu_part* up infinite 63 down gpu-node-d[01-63]

이 경우 Slurm 입장에서는 해당 노드들이 명확하게 DOWN 상태로 등록되어 있는 것입니다.


3. down* 상태란? ⚠️

down* 에서 핵심은 뒤에 붙은 별표 * 입니다.

Slurm에서 상태 뒤에 * 가 붙는 경우는 보통 다음 의미를 가집니다.

Slurm controller가 해당 노드 상태를 정상적으로 확인하지 못함
또는 노드가 응답하지 않는 상태

즉, down* 는 단순히 DOWN인 것뿐 아니라, Slurm과 노드 간 통신 또는 데몬 상태에 문제가 있을 가능성이 큽니다.

예시:

gpu_part* up infinite 2 down* gpu-node-a[01-02]

이 뜻은 다음과 같습니다.

gpu-node-a01, gpu-node-a02 노드는 DOWN 상태이고,
Slurm controller가 해당 노드의 상태를 정상적으로 확인하지 못하고 있음

4. 실제 확인 결과: slurmd 데몬이 죽어 있었음 💥

이번 사례에서는 down* 상태인 노드를 확인해보니, 원인은 Slurm compute node 데몬인 slurmd가 죽어 있었던 것이었습니다.

Slurm 구조를 간단히 보면 다음과 같습니다.

구성요소 역할
slurmctld Slurm controller 데몬
slurmd 각 compute node에서 실행되는 Slurm 데몬
sinfo 노드 상태 확인 명령어
scontrol Slurm 상태 제어 명령어

compute node에서 slurmd가 죽으면 controller는 해당 노드와 정상 통신하지 못합니다.

그래서 해당 노드가 down* 로 표시될 수 있습니다.


5. down* 상태 확인 방법 🔍

먼저 Slurm controller 또는 관리 노드에서 상태를 확인합니다.

sinfo

특정 노드 상세 정보는 다음 명령어로 확인할 수 있습니다.

scontrol show node gpu-node-a01

중요하게 봐야 할 항목은 아래입니다.

NodeName=
State=
Reason=
BootTime=
SlurmdStartTime=
LastBusyTime=

특히 Reason 항목에 아래와 비슷한 메시지가 있을 수 있습니다.

Not responding
Node unexpectedly rebooted
Slurmd not responding

DOWN 사유만 모아서 보고 싶다면 다음 명령어를 사용합니다.

sinfo -R

조금 더 보기 좋게 출력하려면 다음처럼 사용할 수 있습니다.

sinfo -R -o "%20N %10T %E"

예시 출력:

NODELIST             STATE      REASON
gpu-node-a01         down*      Not responding
gpu-node-a02         down*      Slurmd not responding

6. compute node에서 slurmd 상태 확인 🛠️

down* 상태인 노드에 SSH 접속이 가능하다면, 해당 노드에서 slurmd 상태를 확인합니다.

ssh gpu-node-a01

접속 후 다음 명령어를 실행합니다.

systemctl status slurmd

또는 더 간단히 확인하려면:

systemctl is-active slurmd

정상이라면 다음처럼 나와야 합니다.

active

하지만 문제가 있는 경우 아래처럼 나올 수 있습니다.

inactive
failed
dead

이 경우 slurmd 데몬이 정상 동작하지 않는 상태입니다.


7. slurmd 데몬 살리는 명령어 🔥

slurmd 데몬이 죽어 있다면 compute node에서 다음 명령어로 재시작합니다.

sudo systemctl restart slurmd

재시작 후 상태를 확인합니다.

sudo systemctl status slurmd

정상 상태 예시:

Active: active (running)

간단히 active 여부만 확인하려면:

systemctl is-active slurmd

정상이라면:

active

8. slurmd 자동 시작 설정 확인 ⚙️

서버가 재부팅된 뒤에도 slurmd가 자동으로 올라와야 합니다.

자동 시작이 설정되어 있는지 확인합니다.

systemctl is-enabled slurmd

정상이라면:

enabled

만약 disabled 라면 자동 시작을 활성화합니다.

sudo systemctl enable slurmd

즉, 운영 관점에서는 아래 명령어 세트를 자주 사용합니다.

sudo systemctl restart slurmd
sudo systemctl enable slurmd
sudo systemctl status slurmd

9. Slurm controller에서 노드 RESUME 처리 🚀

slurmd 데몬을 살렸다고 해서 항상 자동으로 노드가 정상 상태로 돌아오는 것은 아닙니다.

Slurm에 DOWN 상태가 남아 있으면 controller에서 RESUME 처리를 해줘야 합니다.

단일 노드 복구:

sudo scontrol update NodeName=gpu-node-a01 State=RESUME

여러 노드 복구:

sudo scontrol update NodeName=gpu-node-a[01-02] State=RESUME

복구 후 상태 확인:

sinfo

또는 노드별 상세 확인:

sinfo -N -l | grep gpu-node-a01

정상적으로 복구되면 상태가 아래처럼 변경될 수 있습니다.

idle
idle*
mix
alloc

여기서 idle 은 작업을 받을 수 있는 정상 대기 상태입니다.


10. 운영용 빠른 복구 절차 요약 📌

down* 상태를 발견했다면 아래 순서로 확인하면 됩니다.

1단계: Slurm 상태 확인

sinfo
sinfo -R

2단계: 노드 상세 확인

scontrol show node gpu-node-a01

3단계: 노드 접속 확인

ping gpu-node-a01
ssh gpu-node-a01

4단계: slurmd 상태 확인

systemctl status slurmd

5단계: slurmd 재시작

sudo systemctl restart slurmd
sudo systemctl status slurmd

6단계: 자동 시작 설정

sudo systemctl enable slurmd
systemctl is-enabled slurmd

7단계: Slurm controller에서 RESUME

sudo scontrol update NodeName=gpu-node-a01 State=RESUME

8단계: 최종 확인

sinfo
sinfo -N -l | grep gpu-node-a01

11. 여러 노드 한 번에 점검하는 명령어 예시 🧰

여러 compute node에서 slurmd 상태를 빠르게 확인하려면 반복문을 사용할 수 있습니다.

for node in gpu-node-a01 gpu-node-a02; do
  echo "===== $node ====="
  ssh $node "hostname; systemctl is-active slurmd; systemctl is-enabled slurmd"
done

출력 예시:

===== gpu-node-a01 =====
gpu-node-a01
active
enabled

===== gpu-node-a02 =====
gpu-node-a02
inactive
enabled

위 결과에서 inactive 인 노드는 slurmd 재시작이 필요합니다.


12. 여러 노드 slurmd 재시작 예시 ⚡

여러 노드에서 한 번에 slurmd를 재시작하려면 다음처럼 사용할 수 있습니다.

for node in gpu-node-a01 gpu-node-a02; do
  echo "===== Restart slurmd on $node ====="
  ssh $node "sudo systemctl restart slurmd && systemctl is-active slurmd"
done

정상 출력 예시:

===== Restart slurmd on gpu-node-a01 =====
active

===== Restart slurmd on gpu-node-a02 =====
active

이후 controller에서 RESUME 처리합니다.

sudo scontrol update NodeName=gpu-node-a[01-02] State=RESUME

최종 확인:

sinfo

13. down* 발생 시 같이 확인하면 좋은 항목들 🧪

slurmd 재시작만으로 해결되지 않는 경우도 있습니다.

그럴 때는 아래 항목도 같이 확인해야 합니다.

SSH 접속 가능 여부

ssh gpu-node-a01

네트워크 통신 여부

ping gpu-node-a01

호스트명 확인

hostname
hostname -f

시간 동기화 확인

timedatectl

Munge 데몬 확인

systemctl status munge

Slurm은 인증에 munge를 사용하는 경우가 많기 때문에, munge가 죽어 있어도 Slurm 통신 문제가 발생할 수 있습니다.

재시작 명령어:

sudo systemctl restart munge
sudo systemctl status munge

slurmd 로그 확인

journalctl -u slurmd -n 100 --no-pager

실시간 로그 확인:

journalctl -u slurmd -f

14. 장애 원인 정리 📝

이번 사례의 핵심 원인은 다음과 같습니다.

Slurm에서 일부 노드가 down* 상태로 표시됨
↓
해당 노드 확인 결과 slurmd 데몬이 죽어 있었음
↓
compute node에서 slurmd 재시작
↓
controller에서 노드 RESUME 처리
↓
노드 상태 정상화

즉, down* 상태는 단순히 노드가 DOWN인 것만 의미하지 않습니다.

운영자는 반드시 다음을 같이 확인해야 합니다.

- 서버가 살아 있는지
- SSH 접속이 되는지
- slurmd 데몬이 살아 있는지
- munge 데몬이 살아 있는지
- Slurm controller에서 RESUME 처리가 필요한지

15. 한 줄 요약 ✅

down  = Slurm이 노드를 DOWN 상태로 관리 중
down* = DOWN 상태이면서 Slurm controller가 노드 상태를 정상 확인하지 못하는 상태

이번 사례처럼 down* 의 원인이 slurmd 데몬 중지라면, compute node에서 slurmd를 재시작하고 controller에서 RESUME 처리하면 복구할 수 있습니다.

운영 순서는 다음처럼 기억하면 좋습니다.

sinfo 확인 → scontrol show node 확인 → slurmd 상태 확인 → slurmd 재시작 → State=RESUME → sinfo 재확인

Slurm 클러스터 운영에서는 down* 를 발견했을 때 노드 데몬 상태부터 확인하는 습관이 중요합니다. 🚀

 

반응형

댓글