0.前言从接触UnRaid近2年来,一直在学习和摸索其硬件直通的无限奥妙,既学会了常规的基于硬件(比如硬盘、显卡、声卡)的直通,也学会了可移动硬件(比如U盘、移动硬盘、蓝牙接收器——键鼠、蓝牙音箱等)的直通,更学会了基于控制器(比如硬盘控制器)的直通、虚拟化直通(比如SR-IOV、iGVT……)等多种直通方案,在此记录备忘,也分享给有同样需求的读者。 1.为什么要折腾直通?我们在用UnRaid创建虚拟机的时候,默认都是以虚拟磁盘、虚拟网卡等方式配置虚拟机的磁盘和网卡等,虽然方便,但副作用也是显而易见的——虚拟磁盘相当于是在UnRaid磁盘阵列中的某块硬盘上建立一个虚拟磁盘镜像文件,虚拟机把此镜像文件当作一个磁盘,因此其读写效率是有限的。有没有什么办法将需要的硬件直接绑定到虚拟机上,所有的操作都不经过UnRaid宿主机层面呢?答案是肯定的,那就是硬件直通!接下来我将本人已经测试成功的各种直通方法与大家逐一分享。 2.最常用的直通方法2.1.直通硬盘:在网上搜到的大多数直通方案于此类似,即以id方式来直通硬盘(如下图所示:) 2.2. 直通显卡:在显卡处直接选择你有的显卡,并加载相应bios文件(bios文件下载地址),下图以直通核显为例(我的需要加载vbios_gvt_uefi.rom这个虚拟核显bios才行,有些机器也许不需要): 3.直通控制器由于2.1.方式直通的硬盘是以单个硬盘的方式直通的,且磁盘总线没有Nvme等pci高速模式,磁盘效能大打折扣,如果有多块硬盘还有一个一个的去添加id,很是繁琐,稍不注意还会搞错。于是就有了另外一种直通方式——控制器直通。 3.1.在系统设备中VFIO绑定控制器首先在UnRaid【工具】→【系统设备】中对欲直通的设备进行vfio绑定(将设备对应的□打勾,并点击底部右侧【在引导时对VFIO选择了绑定】,再重启UnRaid系统),参照下图(这是6.9.x的新方式,之前的版本还是需要在Syslinux 配置中手工添加代码进行绑定,此处略)。 3.2.在虚拟机中绑定控制器只需要在虚拟机设置页面末尾,其他PCI设备中将与直通给虚拟机的控制器或设备(上一步已VFIO绑定过的设备会在此处出现)勾选即可。比如Intel 200 Series SATA controller(这是我的主板集成的硬盘控制器,有4个SATA口),则插在本SATA控制器上的所有硬盘均直通给了虚拟机,你不需要去关心直通的每一块硬盘的顺序,就像在物理机中使用硬盘一样。 4.直通USB设备又分为2种情形:虚拟机独占模式、按需挂载模式。 4.1.虚拟机独占模式即在虚拟机设置中进行绑定,比如蓝牙键鼠接收器、usb网卡(声卡)等等,只需要在虚拟机设置页面靠近末尾部分的USB设备中勾选所要直通的USB设备即可: 4.2.按需挂载模式比如U盘、USB移动硬盘等移动设备,只需要在读写其资料时挂载,则可以通过安装Hotplug USB插件来实现。该插件是第三方提供的,不能直接在应用apps中安装,需要在插件页手工安装,插件地址部分输入https://github.com/dlandon/libvirt.hotplug.usb/raw/master/libvirt.hotplug.usb.plg即可。 5.iGVT虚拟显卡直通详见我的另一篇博文:UnRaid利用iGVT-g插件实现Nas宿主机、虚拟机同时使用intel核显输出或硬解(硬件加速)功能 6.SR-IOV虚拟网卡直通详见我的另一篇博文:UnRaid开启网卡SR-IOV并直通给虚拟机的方法 7.cdrom光驱直通详见我的另一篇博文:UnRaid虚拟机添加光驱设备 |
|