Proxmox LXC에서 NVIDIA 그래픽카드 사용하기
먼저 Proxmox Host에 SSH로 접속합니다.
그 후 엔비디아 드라이버 다운로드 사이트에 들어가서
사진과 같이 운영체제를 Linux 64-bit로 설정합니다.
이 화면까지 진행한 후 동의 및 다운로드 버튼을 우클릭하여 드라이버 링크를 추출해줍니다.
링크 예시는 다음과 같습니다.
https://kr.download.nvidia.com/XFree86/Linux-x86_64/535.113.01/NVIDIA-Linux-x86_64-535.113.01.run
다시 Proxmox Host로 돌아와서
/etc/modprobe.d/nvidia-installer-disable-nouveau.conf에 다음 내용을 추가합니다.
blacklist nouveau
options nouveau modeset=0
저장하고 나온 후 재부팅합니다.
재부팅이 완료되면 다시 Proxmox Host로 들어가서 아래와같이 입력해줍니다.
wget https://kr.download.nvidia.com/XFree86/Linux-x86_64/535.113.01/NVIDIA-Linux-x86_64-535.113.01.run
chmod +x ./NVIDIA-Linux-x86_64-535.113.01.run
./NVIDIA-Linux-x86_64-535.113.01.run
링크와 파일 이름은 각자 맞게 하시면 됩니다.
/etc/modules-load.d/modules.conf에 다음 내용을 추가합니다.
nvidia
nvidia-uvm
그 후
update-initramfs -u을 입력하여 initramfs를 업데이트해줍니다.
/etc/udev/rules.d/70-nvidia.rules에 다음 내용을 추가합니다.
KERNEL=="nvidia_uvm", RUN+="/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*'"
다시 리부팅해줍니다.
ls /dev/nvidia* -l
위 명령어를 쳐서 나오는 값을 메모합니다.
다음과 같이 나오는경우 195, 508, 237을 메모해둡니다.
를 쳐서 다음 내용을 추가해줍니다.
lxc.cgroup2.devices.allow: c 508:* rwm
lxc.cgroup2.devices.allow: c 237:* rwm
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-caps/nvidia-cap1 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-caps/nvidia-cap2 none bind,optional,create=file
위 내용에서 195, 508, 237에 해당하는 부분을 각자 환경에 맞게 위에 메모한 값으로 채워넣으면 됩니다.
이제 Host에서 할 일은 끝났습니다. lxc에 SSH로 접속해줍니다.
저는 lxc를 Rocky Linux로 설정했기에 그 기준으로 설명하겠습니다.
(각자 사용하시는 배포판에 맞게 설정하시면 됩니다)
dnf install -y wget
chmod +X NVIDIA-Linux-x86_64-535.113.01.run
./NVIDIA-Linux-x86_64-535.113.01.run --no-kernel-module
이 과정을 통해 드라이버를 설치합니다.
기본적인 드라이버 설치는 끝났습니다.
저는 Docker에서 GPU를 사용하고 싶기 때문에 Nvidia Container Toolkit까지 설치하겠습니다.
만약 Docker가 설치되지 않았다면
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker
를 통해 Docker를 설치합니다.
만약 Docker가 설치되어있다면 이 아래부터 진행하시면 됩니다.
이렇게 설치한 후
를 통해 설정해줍니다.
과정이 끝나면 docker를 재시작해줍니다.
가이드는 여기까지입니다!
감사합니다!
cmt alert