OpenStack显卡透传主要分两部分:
1、KVM PassThrough Nvidia1060,并制作透传显卡的OpenStack镜像
2、配置OpenStack环境
折腾大半个月,主要解决的问题:NVIDIA显卡透传,臭名昭著error43问题。
注意:文章中的超链接,需要翻墙才能正常访问
显卡型号:NVIDIA1060 驱动版本:388(2017年)
一、KVM 显卡透传:
注意:建议你有双显卡,一个显卡会透传给虚拟机使用,另外一个显卡你物理机使用。
本文的KVM显卡透传主要是基于点击打开链接此篇文档:相比原文档的启动脚本,为了便于调试,去掉了-vga none \
-nographic \
#!/bin/bash
vmname="windows10vm"
if ps -A | grep -q $vmname; then
echo "$vmname is already running." &
exit 1
else
# use pulseaudio
export QEMU_AUDIO_DRV=pa
export QEMU_PA_SAMPLES=8192
export QEMU_AUDIO_TIMER_PERIOD=99
export QEMU_PA_SERVER=/run/user/1000/pulse/native
cp /usr/share/OVMF/OVMF_VARS.fd /tmp/my_vars.fd
qemu-system-x86_64 \
-name $vmname,process=$vmname \
-machine type=q35,accel=kvm \
-cpu host,kvm=off \
-smp 4,sockets=1,cores=2,threads=2 \
-m 8G \
-mem-path /run/hugepages/kvm \
-mem-prealloc \
-balloon none \
-rtc clock=host,base=localtime \
-serial none \
-parallel none \
-soundhw hda \
-usb -usbdevice host:045e:076c -usbdevice host:045e:0750 \
-device vfio-pci,host=02:00.0,multifunction=on \
-device vfio-pci,host=02:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/tmp/my_vars.fd \
-boot order=dc \
-drive id=disk0,if=virtio,cache=none,format=raw,file=/media/user/win.img \
-drive file=/home/user/ISOs/win10.iso,index=1,media=cdrom \
-drive file=/home/user/Downloads/virtio-win-0.1.140.iso,index=2,media=cdrom \
-netdev type=tap,id=net0,ifname=vmtap0,vhost=on \
-device virtio-net-pci,netdev=net0,mac=00:16:3e:00:01:01
exit 0
fi
上面的脚本:强调一下,作者主机上有两个显示器、两个键盘、两个鼠标,因此我不但将显卡透传给虚拟机了,并且还将其中一个鼠标、键盘透传给虚拟机,因此脚本中的鼠标和键盘如下,如果你没有则可以去掉
-usb -usbdevice host:045e:076c -usbdevice host:045e:0750
前置条件:
(1)确认显卡支持透传,检查你gpu rom的完整性,