• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
가이드

Proxmox LXC에서 NVIDIA 그래픽카드 사용하기

냐아아아ㅏ 345

2

2

먼저 Proxmox Host에 SSH로 접속합니다.

 

그 후 엔비디아 드라이버 다운로드 사이트에 들어가서

 

image.png.jpg

 사진과 같이 운영체제를 Linux 64-bit로 설정합니다.

 

image.png.jpg

 이 화면까지 진행한 후 동의 및 다운로드 버튼을 우클릭하여 드라이버 링크를 추출해줍니다. 

링크 예시는 다음과 같습니다.

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에 다음 내용을 추가합니다.

nano /etc/modprobe.d/nvidia-installer-disable-nouveau.conf

blacklist nouveau

options nouveau modeset=0

 

저장하고 나온 후 재부팅합니다.

 

재부팅이 완료되면 다시 Proxmox Host로 들어가서 아래와같이 입력해줍니다.

apt install build-essential pve-headers-$(uname -r)
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을 입력하여 커널 수정사항을 적용합니다.

 

/etc/udev/rules.d/70-nvidia.rules에 다음 내용을 추가합니다.

 

KERNEL=="nvidia", RUN+="/bin/bash -c '/usr/bin/nvidia-smi -L && /bin/chmod 666 /dev/nvidia*'"

KERNEL=="nvidia_uvm", RUN+="/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u && /bin/chmod 0666 /dev/nvidia-uvm*'"

 

다시 리부팅해줍니다.

 

modprobe nvidia-uvm
ls /dev/nvidia* -l

위 명령어를 쳐서 나오는 값을 메모합니다.

image.png.jpg

 다음과 같이 나오는경우 195, 508, 237을 메모해둡니다.

 

nano /etc/pve/lxc/<lxc번호>.conf

 

를 쳐서 다음 내용을 추가해줍니다.

 

lxc.cgroup2.devices.allow: c 195:* rwm
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 update -y
dnf install -y wget
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 --no-kernel-module

 

이 과정을 통해 드라이버를 설치합니다.

기본적인 드라이버 설치는 끝났습니다.

 

 

저는 Docker에서 GPU를 사용하고 싶기 때문에 Nvidia Container Toolkit까지 설치하겠습니다.

 

만약 Docker가 설치되지 않았다면

dnf update -y
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가 설치되어있다면 이 아래부터 진행하시면 됩니다.

curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \ tee /etc/yum.repos.d/nvidia-container-toolkit.repo

 

dnf install -y nvidia-container-toolkit

 

이렇게 설치한 후 

nvidia-ctk runtime configure --runtime=docker

를 통해 설정해줍니다.

 

과정이 끝나면 docker를 재시작해줍니다.

systemctl restart docker

가이드는 여기까지입니다!

 

감사합니다!

신고공유스크랩
2
profile image 1등
달소 2023.09.27. 08:40
와우,, 완전 정성스러운 가이드 감사드립니다 :)
가이드글에 게시해도 괜찮을까요!?

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
쓰기
태그 : docker