1.2. 호스트에서 GPU 분리
GPU가 호스트 커널 드라이버에 바인딩된 경우 가상 머신에 GPU를 추가할 수 없으므로 호스트에서 GPU 장치를 바인딩 해제해야 가상 머신에 추가할 수 있습니다. 호스트 드라이버는 GPU의 동적 바인딩 해제를 지원하지 않으므로 호스트 드라이버에 바인딩되지 않도록 장치를 수동으로 제외하는 것이 좋습니다.
절차
호스트에서
lspci명령을 실행하여 장치의 장치 슬롯 이름과 ID를 식별합니다. 다음 예제에서는 NVIDIA Quadro 또는 GRID 카드와 같은 그래픽 컨트롤러를 사용합니다.# lspci -Dnn | grep -i NVIDIA 0000:03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK104GL [Quadro K4200] [10de:11b4] (rev a1) 0000:03:00.1 Audio device [0403]: NVIDIA Corporation GK104 HDMI Audio Controller [10de:0e0a] (rev a1)출력은 NVIDIA GK104 장치가 설치되었음을 보여줍니다. 여기에는 다음 속성이 있는 그래픽 컨트롤러와 오디오 컨트롤러가 있습니다.
-
그래픽 컨트롤러의 장치 슬롯 이름은
0000:03:00.0이며 그래픽 컨트롤러의 vendor-id:device-id는10de:11b4입니다. -
오디오 컨트롤러의 장치 슬롯 이름은
0000:03:00.1이며, 오디오 컨트롤러의 vendor-id:device-id는10de:0e0a입니다.
-
그래픽 컨트롤러의 장치 슬롯 이름은
호스트 머신 드라이버가 GPU 장치를 사용하지 못하도록 합니다. pci-stub 드라이버와 함께 vendor-id:device-id를 사용할 수 있습니다. 이렇게 하려면 vendor-id:device-id를 값으로 사용하여
pci-stub.ids옵션을/etc/sysconfig/grub설정 파일에 있는GRUB_CMDLINX_LINUX환경 변수에 추가합니다.GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/vg0-lv_swap rd.lvm.lv=vg0/lv_root rd.lvm.lv=vg0/lv_swap rhgb quiet intel_iommu=on pci-stub.ids=10de:11b4,10de:0e0a"pci-stub의 벤더 ID와 장치 ID를 더 추가할 때 쉼표로 구분합니다.
이 옵션을 포함하도록 grub2-mkconfig를 사용하여 부트 로더 구성을 다시 생성합니다.
# grub2-mkconfig -o /etc/grub2.cfg참고UEFI 기반 호스트를 사용하는 경우 대상 파일은
/etc/grub2-efi.cfg여야 합니다.- 호스트 시스템을 재부팅합니다.
IOMMU가 활성화되어 있고 호스트 장치가 pci-stub.ids 목록에 추가되었으며 Nouveau가 블랙리스트에 있는지 확인합니다.
# cat /proc/cmdline BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-147.el8.x86_64 root=/dev/mapper/vg0-lv_root ro crashkernel=auto resume=/dev/mapper/vg0-lv_swap rd.lvm.lv=vg0/lv_root rd.lvm.lv=vg0/lv_swap rhgb quiet intel_iommu=on1 pci-stub.ids=10de:11b4,10de:0e0a2 rdblacklist=nouveau3