nvidia-smi 로 만든 GPU Instance 와 Compute Instance 는 드라이버 메모리에만 있어서 재부팅하면 사라진다. MIG 모드 자체는 persistence mode 에 따라 남는 경우가 있지만 슬라이스 구성은 남지 않는다. 그래서 부팅 때 다시 적용해 주는 무언가가 필요하다.
NVIDIA 가 그 도구를 이미 만들어 뒀다. mig-parted 저장소가 배포하는 nvidia-mig-manager RPM 은 바이너리뿐 아니라 systemd 서비스와 훅까지 포함한다. 유닛 파일을 직접 쓸 필요가 없다.
rpm -qip nvidia-mig-manager-*.rpm
rpm -qlp nvidia-mig-manager-*.rpm
dnf install -y ./nvidia-mig-manager-0.14.1-1.x86_64.rpm
v0.14.1 이라는 번호는 k8s-device-plugin · gpu-feature-discovery 등에도 따로 존재하므로, 받은 파일이 정말 mig-parted 의 것인지 rpm -qip 로 Summary 와 URL 을 확인하고 쓴다.
패키지가 /etc/nvidia-mig-manager/config.yaml 에 프로파일을 미리 넣어 준다.
version: v1
mig-configs:
all-disabled:
- devices: all
mig-enabled: false
all-1g.10gb:
- devices: all
mig-enabled: true
mig-devices:
"1g.10gb": 7
서비스는 ExecStart=-/bin/bash /etc/nvidia-mig-manager/service.sh 로 돌고, 어느 프로파일을 쓸지는 systemd drop-in 의 환경변수가 정한다. 설치 직후 이 값이 all-disabled 로 들어 있는 경우가 있는데, 그대로 두면 부팅할 때마다 MIG 를 오히려 풀어 버린다.
cat > /etc/systemd/system/nvidia-mig-manager.service.d/override.conf <<'EOT'
[Unit]
Before=rke2-agent.service rke2-server.service kubelet.service
[Service]
Environment="MIG_PARTED_SELECTED_CONFIG=all-1g.10gb"
EOT
systemctl daemon-reload
systemctl cat nvidia-mig-manager.service | tail -10
systemctl enable nvidia-mig-manager
MIG 는 컨테이너 런타임보다 먼저 잡혀야 device plugin 이 올바른 개수를 광고한다. 그런데 유닛 이름은 환경마다 다르므로 실제로 존재하는 이름을 확인하고 적어야 한다. 없는 유닛을 Before= 에 적으면 조용히 무시된다.
systemctl list-unit-files | grep -iE "rke2|kubelet|k3s"
ps -ef | grep -E "rke2|kubelet" | grep -v grep
Cloudera ECS 는 일반적인 RKE2 설치가 아니라 Cloudera Manager 가 관리하는 형태라 유닛 구성이 다를 수 있다. 확인 없이 표준 이름을 넣지 않는다.
nvidia-mig-parted export
systemctl start nvidia-mig-manager
nvidia-smi -L
nvidia-smi mig -lgi
재부팅 후 같은 결과가 나오면 끝이다. MIG 를 GPU Operator 의 mig-manager 가 관리하는 환경이라면 호스트에서 nvidia-smi 로 끈 설정이 되돌려지므로, 노드 라벨 nvidia.com/mig.config 를 바꿔야 한다.
드라이버 설치, nvidia-container-toolkit, containerd 런타임 등록, device plugin DaemonSet, MIG_STRATEGY 설정, MIG 재생성, GPU Feature Discovery 라벨까지 GPU Operator 가 모두 자동으로 처리한다. 수동 구성은 Operator 를 못 쓰는 환경(폐쇄망, 관리 주체 분리, Cloudera ECS 같은 제한된 쿠버네티스) 에서의 선택이다.