320x100
320x100

QEMU

: 하이퍼바이저 형식의 가상화 소프트웨어

: 하나의 호스트OS에서 여러 가상머신을 구동 가능 

: kvm을 적용하여 가상화를 할 경우 높은 성능을 가짐

 => VT-x 와 같은 기술을 통해 호스트의 하드웨어를 가져다 쓸 수 있기 때문

 

※ 참조 

: 리눅스에서는 kvm을 이용하여 가상화를 하지만 

 윈도우 및 맥에서는 HAXM을 통해 가상화를 함

 

 

 

 

QEMU의 특징

- gpu Passthriugh

: 호스트의 VGA를 게스트의 VGA에 붙여 사용하는 기술로 QEMU에서 사용하는 방식

: VMWare, VirtualBox, Xen 보다 훨씬 높은 성능으로 가상머신에 VGA를 사용가능

: 가상머신에서의 게임구동도 가능

: 요즘 VGA는 UEFI 펌웨어에서만 정상 작동 되도록 나옴

 

 

 

 

gpu passthrough 설정 방법

1. vt-d를 지원하는 cpu와 메인보드를 준비

 

2. 메인보드의 바이오스에서 vt-d를 활성화

 

3. 커널에서 vt-d를 활성화

: /etc/default/grub에서 iommu 옵션 설정

 

4. 게스트OS에 연결하려는 장치를 호스트OS에서 분리

: 사용하는 커널 버전에 따라 vfio-pci 또는 pci-stub 설정

: 3.x 대 커널은 pci-stub만 지원

: 4.x 대 커널은 pci-stub 사용 시 성능 하락

 

5. qemu 가상머신 설정에서 해당 장치를 게스트에 연결

: 실행 옵션 혹은 xml 행 추가 혹은 virt-manager 사용

: 기본적으로 2개의 그래픽카드가 요구됨

: 이외 사운드나 마우스 등의 입출력 인터페이스도 passthrough를 통해 연결하면 빠름

: USB 연결의 경우 TCP/IP를 이용한 리다이렉트를 이용하면 안정적인 이용 가능

 

 

 

 

참고하면 좋은글

- ubuntu에서 kvm/qemu + gpu passthrough 후기 (댓글까지 참조)

: https://gigglehd.com/gg/bbs/5971598

- gpu throhgh 방법

: https://wiki.gentoo.org/wiki/GPU_passthrough_with_libvirt_qemu_kvm

 

 

 

 

gpu through 방법 (HD6870 기준)

1. cli 모드에서 GPU의 정보 추출
lspci -dnn | grep -i radeon
슬롯이름 = 0000:03:00.0
디바이스ID = 1002:6874
: 그래픽 컨트롤러와 오디오 컨트롤러의 슬롯이름 및 디바이스 아이디 추출


2. Host OS에서 GPU 디바이스를 사용하지 못하도록 설정
vim /etc/default/grub
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"
grub2-mkconfig -o /etc/grub2.cfg
reboot


3. iommu 설정이 잘 되었는지 확인
cat /proc/cmdline

: 아래와 같이 되어 있어야함
pci-stub.ids=10de:11b4,10de:0e0a 
rdblacklist=nouveau 


4. 가상머신 접속 후 그래픽카드 드라이버 설치

 

 

 

 

 

 

Refference

 

컴퓨터 가상화 QEMU

1. 개요 QEMU는 '하이퍼바이저'를 채용했다. 이를 이용해 가상 머신 여럿을 한 플랫폼으로 돌릴 수 있다. 이와 비슷한 소프트웨어로는 VMware와 VirtualBox 등이 있다. 2. 설명 QEMU를 가상화 머신이 아닌

factchack2.tistory.com

 

 

 

300x250
728x90