Unraid 虚拟机(VMS)

2020-02-23 11:39:56    Unraid官网-tmtony翻译    16294


 使用虚拟机

尽管Docker容器是运行基于Linux的应用程序(如媒体服务器,备份软件和文件共享解决方案)的首选机制,但虚拟机增加了对非Linux工作负载的支持以及为分配的PCI设备提供驱动程序支持的能力。  本地化虚拟化是我们支持VM的方法,其中分配给来宾的所有资源对于主机都是本地的。

注意:本指南仅适用于KVM引导模式。

技术栈

unRAID 6具有许多关键技术,可简化本地化VM的创建和管理:

  • 虚拟机
    • 系统管理程序负责监视和管理分配给虚拟机的资源。
    • 与其他虚拟机管理程序不同,KVM是唯一直接内置在Linux内核中并受Linux内核支持的软件。
    • Linux之前将加载所有其他类型1虚拟机管理程序,然后Linux在该虚拟机管理程序的特权状态下运行。
    • 通过利用作为Linux内核本身一部分的管理程序,它意味着更好的支持,更少的复杂性以及更大的优化改进空间。
  • 量化宽松
    • KVM是内核中的组件,用于管理/监视分配给虚拟机的资源。
    • QEMU负责仿真构成虚拟机的硬件组件,例如主板,CPU和各种控制器。
    • 没有QEMU,KVM就无法工作,因此您经常会看到KVM被称为KVM / QEMU。
  • VirtIO
    • 网络和磁盘设备驱动程序的虚拟化标准,仅来宾的设备驱动程序“知道”它在虚拟环境中运行,并与虚拟机管理程序配合使用。
    • 这使来宾能够获得高性能的网络和磁盘操作,并提供了半虚拟化的大多数性能优势[2]
  • 虚拟机
    • VirtFS也称为9p文件系统,它使我们能够轻松地从虚拟化主机到来宾进行文件系统访问。
    • VirtFS等同于KVM的Docker Volumes,但需要从guest虚拟机内部发出安装命令[3]VirtFS可与基于Linux的虚拟机
  • 音频输入输出
    • 虚拟功能IO允许我们直接将物理设备(例如图形卡)分配给虚拟机,而虚拟机又将直接为该设备提供驱动程序支持。
    • VFIO防止分配的设备访问为其分配了VM的内存中的空间。
    • 这限制了与设备驱动程序和内存空间有关的问题的影响,从而使unRAID OS免受不必要的风险。
    • VFIO的使用需要具有IOMMU功能的硬件(您的CPU必须具有Intel VT-d或AMD-Vi支持)[4]
  • Libvirt
    • Libvirt是软件的集合,它提供了一种方便的方法来管理虚拟机和其他虚拟化功能,例如存储和网络接口管理。
    • 这些软件包括一个API库,一个守护进程(libvirtd)和一个命令行实用程序(virsh)[5]

系统准备

在开始创建虚拟机之前,必须完成一些准备工作。

调整BIOS设定

为了利用unRAID 6的所有虚拟化功能,必须确保正确配置BIOS以进行硬件辅助虚拟化以及IO内存映射(支持HVM / IOMMU)。在您的BIOS设置中,查找标记有 Virtualization Intel VT-x Intel VT-d AMD-V AMD-Vi的所有内容,并将其设置为 Enabled

     

在各种主板BIOS屏幕上可以找到虚拟化设置的示例。

配置网桥

虚拟机可以通过两种方法访问基于主机的网络:通过由libvirt管理的专用NAT桥接器,或通过直接由unRAID管理的公共桥接器。libvirt启动时,将自动配置专用网桥(virbr0)。可以通过unRAID webGui上的“  网络设置”页面创建公用网桥

专用网桥会生成一个内部DHCP服务器/地址池,以自动为VM创建IP,但是VM将位于无法被其他设备甚至unRAID上的其他服务访问的子网中。如果您希望虚拟机与其他所有接受Internet访问和主机网络文件共享协议的网络服务完全隔离,则这种类型的桥接是理想的选择。可以通过浏览器提供的VNC会话执行VM管理。

公用网桥为VM提供来自路由器的IP地址,但在内部桥接VM之间以及彼此之间以及主机之间的通信。如果您希望您的VM像网络上的另一台设备一样运行,则可以在LAN路由器而不是在VM内部管理它的网络访问,这种类型的桥接是理想的。我们会为您创建的虚拟接口保留MAC地址设置,以确保VM每次连接时都应获得相同的IP地址,只要路由器管理的DHCP池不会用完地址即可。因此,如果要从另一台PC,便携式计算机,平板电脑或其他类型的设备连接到VM,则应使用公共网桥。

在“  VM设置”页面上,可以将您喜欢的任何网桥定义为“  默认网络网桥

创建用于虚拟化的用户共享

至少,您应该创建两个用户共享,以用于unRAID上的虚拟化。一个共享用于存储安装媒体文件(ISO),另一个共享用于存储虚拟机本身。如果还没有共享用于备份,则可以考虑添加一个共享来备份虚拟机。

共享配置建议

  • 当虚拟机的主虚拟磁盘存储在仅缓存的共享中时,其性能最佳。
  • 尽管虚拟机不需要SSD,但使用它们可以显着提高性能。
  • 对于您的ISO库共享(包含安装媒体),高速缓存的使用是可选的。

重要提示:不要对存储在一个共享的活动虚拟机使用缓存 设置为 这样做将导致您的VM在调用移动程序时被移动到阵列中。

设置虚拟化首选项

在开始创建虚拟机之前,我们需要执行一些配置步骤:

  • 使用您的Web浏览器导航到“  VM Manager设置”页面( “设置” ->“  VM Manager”
  • 将“  启用虚拟机 设置为“  是”
  • 选择您先前在 ISO库共享中创建的 共享 可选
  • 对于Windows VM,您将需要下载虚拟驱动程序以用于存储,网络和内存。
    • 在此处下载最新的“稳定” VirtIO Windows驱动程序ISO,网址为:https ://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download
    • 将驱动程序的ISO文件复制到您之前创建的ISO库共享中
    • 使用 VirtIO Windows Drivers ISO的文件选择器选择复制的ISO文件
    • 您可以基于每个VM覆盖默认驱动程序ISO(在 Advanced View下)。
  • 选择 virbr0(默认)作为 专用网桥,或者选择在“  网络设置”页面上创建 公用网桥
    • 您可以基于每个VM覆盖默认的网桥(在 Advanced View下)。
  • 如果您希望将多个PCI设备分配给不同的虚拟机,请将  PCIe ACS Override切换 On
    • 覆盖将IOMMU组分开,因此可以将各个设备分配给不同的虚拟机
    • 如果未启用此设置,则可能无法同时将设备传递到多个虚拟机
    • 警告:此设置是实验性的!使用时要小心。 [6]
  • 完成后单击“  应用”以应用设置并启动libvirt服务
  • 完成后,新的 VM选项卡将显示在unRAID任务栏上

创建自己的虚拟机

完成准备步骤后,您可以通过从“  虚拟机”页面单击 添加 虚拟机来创建第一个 虚拟机

基本虚拟机创建

默认情况下,webGui将显示创建虚拟机所需的最少字段数。

  • 模板类型设置 自定义
  • 给虚拟机 命名 描述
  • 如果希望虚拟机自动启动阵列,请切换 自动启动设置
  • 选择您要使用 操作系统,这还将调整用于虚拟机的图标
  • 选择要分配虚拟机的  CPU
    • 您最多可以选择主机上存在的物理CPU
  • 指定您希望分配虚拟机的  初始内存量
  • 选择一个 OS Install ISO作为安装介质
  • 指定您要创建的虚拟磁盘(或选择现有的虚拟磁盘)
    • 主虚拟磁盘用于存储你的虚拟机的操作系统
    • 可以通过单击添加 其他虚拟磁盘 Add-device.png
  • 指定用于与VM交互  图形卡
    • 如果您 分配物理图形卡,请指定 VNC
    • 如果 均按同一个物理显卡,从列表中选择它
    • VNC只能指定为主要图形显示,或者根本不能分配
    • 可以为VNC连接指定密码
    • 并非所有图形卡都可以用作辅助显示器
    • 如果您分配物理图形设备,请确保也分配USB键盘和鼠标
    • 可以通过单击分配其他图形设备  Add-device.png
  • 分配 声卡,如果你分配一个显卡在你的虚拟机获得音频支持
    • 大多数GPU都有自己的内置声卡,作为用于HDMI音频的图形卡的功能
    • 可以通过单击分配其他声卡  Add-device.png
  • 可以将 USB设备分配给插入主机的VM
    • 当前不支持USB热插拔,因此必须在启动VM之前连接设备,以使USB正常运行
    • 某些USB设备在传递给访客时可能无法正常工作(尽管大多数设备工作正常)
    • 此处未显示unRAID USB闪存设备,以防止意外分配
  • 单击“  创建虚拟机”以创建您的虚拟磁盘(如有必要),除非您取消选中“  创建后启动虚拟机”复选框,否则它将自动 启动

高级选项

如果您希望切换虚拟机的其他高级设置,则可以从“  基本 视图”切换到“  高级视图”(位于 “  添加虚拟机”页面的“  模板设置”部分栏上的开关)。

  • 您可以调整 CPU模式设置
    • 主机直通将使访客获得主机CPU的所有功能(这可以显着提高性能)
    • 仿真将使用QEMU仿真的CPU,并且 不会将客户机暴露给主机处理器的所有功能
  • 指定 最大内存值将启用内存膨胀,从而允许KVM根据需要动态收缩/扩展内存分配。
    • 此功能不适用于已分配了物理PCI设备(GPU,声音等)的VM。
  • 可以在QEMU的 i440fx Q35芯片组 之间切换显示给VM  计算机类型
    • 对于基于Windows的VM,i440fx是默认设置,仅当您难以通过基于PCI的图形卡传输时才应更改(这可能会提示Windows重新激活)
    • 对于基于Linux的VM,Q35是默认设置,如果通过GPU,则不应更改
  • BIOS只能调整添加新的虚拟机时(现有VM不能修改这个设置)。
    • SeaBIOS是用于创建大多数虚拟机的传统VGA BIOS
    • OVMF利用UEFI BIOS接口,消除了传统VGA的使用
    • OVMF要求VM的操作系统支持UEFI(Windows 8或更高版本,大多数现代Linux发行版),并且如果您希望分配物理图形设备,它也必须支持UEFI
  • 如果将Windows指定为客户机操作系统,则可以切换 Hyper-V扩展对VM的显示方式
    • 如果选择了基于NVIDIA的图形卡分配给VM,则会自动禁用此功能
    • 请参阅有关基于NVIDIA GPU,Hyper-V设置和各种驱动程序版本的3D游戏性能的文章。
  • 您可以选择覆盖默认 为Virtio驱动程序ISO应你愿意的话
  • 您可以在RAW和QCOW2之间切换 虚拟磁盘类型(建议使用RAW以获得最佳性能)
  • 借助基于Linux的VM,您可以将多个 VirtFS映射添加到来宾中
    • 有关VirtFS和9p文件系统的更多信息,请访问此处:http ://wiki.qemu.org/Documentation/9psetup
  • 如果需要,可以修改VM虚拟网络接口 网络MAC地址,并指定备用 网络桥
    • 您可以单击蓝色刷新符号为虚拟网络接口自动生成新的MAC地址。
    • 可以通过单击来分配其他虚拟网络接口  Add-device.png

将图形设备分配给虚拟机(GPU直通)

可以将GPU分配给虚拟机以进行直接I / O控制的功能还包括一些其他规定:

  1. 并非所有主板/ GPU组合都适用于GPU分配。
  2. 集成图形设备(板载GPU)目前无法分配给虚拟机。
  3. 可以在此电子表格中找到其他经过社区测试的配置
  4. Lime Technology在Wiki中提供了经过验证和测试的硬件组合的列表。
  5. 您还可以在Lime Technology社区论坛中讨论硬件选择

警告:通过GPU传递到基于SeaBIOS的VM将禁用控制台VGA访问

如果您依靠本地连接的显示器和键盘直接与unRAID终端进行交互,则在创建分配了GPU的SeaBIOS VM之后,您将失去此功能。这是由于VGA仲裁错误所致,无法解决。这不会影响您使用telnet或SSH会话访问控制台的能力,但是直接对本地控制台的访问将似乎被冻结(光标闪烁,但对键盘输入无可见响应)。与将离散GPU传递给VM相比,是否在控制台上使用板载图形都没有关系。但是,使用OVMF时,不会使用VGA,因此不需要仲裁,因此您的控制台图形将保持不变。请注意,并非所有GPU都支持OVMF,因为OVMF需要GPU上的UEFI支持。

救命!我可以使用分配给我的GPU分配的GPU启动虚拟机,这是显示器上的黑屏!

如果未收到错误消息,但是启动VM时显示未“点亮”,则表示在正确分配设备后,主板或GPU可能会出现问题,无法正常显示VGA仲裁的发生。您可以尝试解决以下问题:

  • 确保您的主板BIOS  视频卡BIOS是最新的。
  • 将新的VM从 SeaBIOS添加 OVMF时,请尝试 Advanced View 高级视图)调整 BIOS(创建后,现有VM不能更改此设置)。
  • 编辑或添加VM时,请尝试在“  高级视图”将“  计算机类型” i440fx调整 Q35
  • 作为最后的选择,您可以尝试通过编辑VM的XML手动为视频卡提供ROM文件(请参阅以下过程)。

编辑VM的XML以手动提供GPU ROM

  • 在另一台PC上,导航到以下网页:http : //www.techpowerup.com/vgabios/
  • 使用 优化搜索参数部分从数据库中找到您的GPU。
  • 下载适合您的视频卡的ROM文件,并将该文件存储在unRAID中的任何用户共享上。
  • 在虚拟机停止的情况下,单击虚拟机的图标,然后从上下文菜单中选择“  编辑XML ”。

对于基于SeaBIOS的VM

  • 滚动到XML的底部并找到此行(host = ##:##。#部分对您来说可能与下面的示例有所不同):

<qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>

  • 修改此行以将ROM文件提供给VM,如下所示:

<qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,romfile=/mnt/user/sharename/foldername/rom.bin'/>

  • 将/ mnt / user /之后的路径更改为romfile的实际用户共享/子文件夹路径。

对于基于OVMF的VM

  • 滚动到XML的底部并找到此部分(<address>对于您而言,这些部分可能与下面的示例有所不同):


<hostdev mode='subsystem' type='pci' managed='yes'>
     <driver name='vfio'/>
     <source>
       <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
     </source>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
   </hostdev>
  • </source>标签之后,添加以下代码:

<rom file='/mnt/user/sharename/foldername/rom.bin'/>

  • 将/ mnt / user /之后的路径更改为romfile的实际用户共享/子文件夹路径。

完成XML的编辑后,单击“  更新”,然后尝试再次启动VM,以查看GPU分配是否正常工作。

安装Windows VM

对于基于Windows的客户机,安装过程与其他客户机略有不同,因为您将需要为I / O(磁盘,网络等)加载虚拟驱动程序。为此,您将需要执行以下步骤:

获取安装介质(ISO)

根据您要安装的Windows版本,获取安装媒体的过程会略有不同。要获取Windows 7或更高版本的安装介质,您将需要为要下载的软件的任何版本输入有效的Microsoft Windows产品密钥。产品密钥可以从Microsoft Store或授权经销商处获得。如果您具有产品密钥,但没有安装介质,请参见以下链接:

重要的是,不要选择将操作系统安装到USB闪存设备上。如果出现提示,请选择“  通过创建媒体安装”并选择“  ISO文件”(这将使您将媒体保存到ISO文件中)。获得ISO文件后,将其复制到unRAID服务器上的共享中。

获取Windows的虚拟硬件驱动程序(VirtIO)

为了最大化VM性能,unRAID利用VirtIO,它消除了与虚拟化相关的I / O相关的许多开销。这些虚拟设备将需要在Windows安装过程中加载其驱动程序,否则该过程将无法完成。

  1. 在此处下载最新的“稳定的” VirtIO Windows驱动程序ISO: [7]
  2. 将驱动程序的ISO文件复制到您之前创建的ISO库共享中
  3. 在“  VM设置”页面上,使用 VirtIO Windows Drivers ISO的文件选择器选择复制的ISO文件,然后在该页面上单击“  应用 ”。
  4. 您可以基于每个VM覆盖默认驱动程序ISO(在“高级视图”下)。

创建Windows VM

按照记录的过程创建虚拟机,但更改以下设置:

  1. 从“  操作系统”字段中选择适当的Windows版本
  2. 选择您下载并复制到unRAID的Windows ISO作为 OS Install ISO
  3. 确保至少选择1GB的 初始内存,并为主 虚拟磁盘大小指定至少20GB (Windows 7、8和8.1要求)。
  4. 对于Windows 7,请确保将 BIOS设置保留在SeaBIOS中。
  5. 对于Windows 8 / 8.1,可以选择SeaBIOS或OVMF,但是要将图形设备分配给OVMF,它必须支持UEFI。

在安装过程中加载VirtIO驱动程序

  1. 在Windows安装过程中,您将到达“找不到磁盘”的地步,这是预期的行为。
  2. 单击此屏幕上的 浏览,然后导航到 virtio-win CD-ROM。
  3. 您将需要按以下顺序加载以下驱动程序:
    1. 气球
    2. NetKVM
    3. 暴力的
    4. viostor(请确保最后加载此文件)
  4. 对于每个需要加载的驱动程序,您将依次浏览到驱动程序文件夹,操作系统版本, amd64子文件夹(不要单击以加载x86文件夹)。
  5. 加载每个驱动程序后,您将需要再次单击“  浏览”按钮以加载下一个驱动程序。
  6. 加载 viostor驱动程序后,您的虚拟磁盘将出现以供选择安装,您可以继续正常安装Windows。
  7. Windows完全安装后,您可以安装来宾代理,从而改善主机到来宾的管理
    1. 打开Windows文件资源管理器
    2. 再次浏览至 virtio-win的虚拟CD-ROM ,然后打开 guest-agent文件夹
    3. 双击以启动 qemu-ga-x64.msi安装程序(此过程将很快)

这就是全部!如果您对此程序有疑问,请在Lime Technology论坛上发帖。

将虚拟机从Xen转换为KVM

在Xen到KVM中运行的虚拟机将需要不同的过程,具体取决于它们是作为准虚拟客户机还是硬件虚拟客户机创建的。无论采用哪种转换方案, 强烈建议您在继续操作之前创建现有Xen虚拟磁盘的副本。使用该副本测试转换过程,如果成功,则可以根据需要删除自己的基于Xen的虚拟磁盘。此外,您应该确保硬件支持硬件辅助虚拟化(Intel VT-x / AMD-V),因为这是与KVM一起使用的要求。Xen PV guest虚拟机没有利用硬件虚拟化扩展,这使得它们的转换过程比Xen HVM guest虚拟机向KVM转换的过程稍微复杂一些(在撰写本文时尚未进行记录)。

Windows 7转换步骤

要将Windows 7虚拟机从Xen转换为KVM,此过程非常简单,大约需要10分钟。开始之前,请删除通过Xen域cfg文件执行的所有PCI设备传递。转换过程完成后,可以重新添加这些设备。

步骤1:确定您的VM是否正在使用Xen的GPLPV驱动程序

  1. 在Xen VM中,打开 Windows设备管理器(单击 开始 ->右键单击 计算机 ->单击 管理
  2. 展开 网络适配器的节点,并记下名称。如果网络设备的名称包含“ Xen”,则您正在使用GPLPV驱动程序。其他任何事情都意味着您不是。

注意:如果您不使用GPLPV驱动程序,则可以跳过接下来的几个步骤,并从重新进入KVM模式恢复该过程。

步骤2:准备Windows 7以便删除GPLPV驱动程序

  1. 打开一个命令提示符,以管理员身份运行(单击 开始 ->单击 所有程序 ->单击 附件 ->右键单击 命令提示符 ->单击 以管理员身份运行
  2. 在提示符下键入以下命令: bcdedit -set loadoptions nogplpv
  3. 重新启动您的VM

步骤3:下载卸载程序并删除GPLPV驱动程序

  1. 重新启动后,打开浏览器并下载以下zip文件:gplpv_uninstall_bat.zip
  2. uninstall_0.10.x.bat文件提取到桌面
  3. 右键单击该文件,然后单击 “以管理员身份运行”(这将很快发生)
  4. 重新启动您的VM
  5. 重新启动后,再次打开 Windows设备管理器
  6. 在“系统设备”部分下,右键单击“  Xen PCI设备驱动程序”,然后选择“  卸载”,然后在确认对话框中,单击复选框以 删除该设备的设备驱动程序软件
  7. 关闭虚拟机

第4步:将服务器重新启动为KVM模式

  1. 将浏览器导航到unRAID webGui,单击 Main,然后从devices列下面单击 Flash
  2. 在“ Syslinux配置”下,将行menu default从下label Xen/unRAID OS移到下label unRAID OS
  3. 点击 应用
  4. 重新启动您的unRAID服务器

步骤5:使用VM Manager创建一个新的VM

  1. 如果还没有,请按照 此处记录的步骤启用VM Manager
  2. 单击 虚拟机选项卡,然后单击 添加虚拟机
  3. 给虚拟机起个名字,如果还没有,请下载VirtIO驱动程序ISO并指定它
  4. 操作系统下,确保已选择 Windows。
  5. 在“  主虚拟磁盘位置”下,浏览并选择您的Xen虚拟磁盘
  6. 添加 第二个虚拟磁盘,并为其提供 1M的大小(您可以将此虚拟磁盘放置在任何位置,这只是临时的)
  7. 将图形,声音等全部保留为默认设置,然后单击“  创建”
  8. 创建后,立即强制关闭VM(单击VM页面中的弹出符号)
  9. 在VM旁边的VM页面中单击</>符号以编辑XML
  10. 找到<disk>您的主虚拟磁盘部分。
  11. <address>完全拆除管线。
  12. bus='virtio'<target>部分更改bus='ide'
  13. 点击 更新

步骤6:启动新的VM并加载VirtIO驱动程序

  1. 在“ VM”页面上,单击播放符号以启动VM。
  2. 单击眼睛符号以通过浏览器打开VNC连接。
  3. VM启动时,它将安装多个驱动程序并提示重新启动,请选择“  稍后重新启动”
  4. 再次打开 Windows设备管理器,您将在 其他设备(以太网控制器,PCI设备,SCSI控制器,串行控制器)下注意到3条警告。
  5. 对于每个设备,双击该设备,单击“  更新驱动程序”,然后选择“  浏览我的计算机以获取驱动程序软件”
    1. 对于“  以太网控制器”,指定d:\NetKVM\w7\amd64(或浏览至)路径,然后单击“  下一步”。
    2. 对于 PCI设备,请指定d:\Balloon\w7\amd64(或浏览至)路径,然后单击“  下一步”。
    3. 对于 SCSI控制器,指定d:\viostor\w7\amd64(或浏览至)路径,然后单击“  下一步”。
    4. 对于 串行控制器,指定d:\vioserial\w7\amd64(或浏览至)路径,然后单击 下一步。
  6. 如果出现提示,请选择“  始终信任Red Hat”
  7. 加载所有驱动程序后,关闭您的VM

步骤7:删除临时虚拟磁盘并启动VM

  1. 单击以使用基于表单的编辑器(铅笔符号)编辑VM。
  2. 删除辅助虚拟磁盘
  3. 确保主虚拟磁盘指向您的原始虚拟磁盘文件(它可能指向辅助虚拟磁盘,如果是,请对其进行更新以指向您的实际虚拟磁盘)
  4. 完成后,单击 更新
  5. 启动您的虚拟机
  6. 确认您的设备管理器未显示任何警告
  7. 完成!

关于基于Windows的VM的注意事项

关于使用KVM在unRAID 6上创建基于Windows的虚拟机,有几件事值得一提。

一般注意事项

  • 在激活Windows许可证之前,我们强烈建议您先对VM进行彻底的测试。
  • 在高级模式下在i440fx和Q35之间更改计算机类型将提示Windows重新激活许可证。
  • Windows 7和更早版本的OS变体可能无法正确使用基于主机的图形分配。使用Windows 8.1或更高版本可获得最佳体验。
  • 如果使用OVMF,则必须使用Windows 8或更高版本。Windows 7不直接支持UEFI,因此OVMF将不起作用。

启用MSI中断以修复HDMI音频支持

如果要将图形设备分配给使用HDMI连接的Windows guest虚拟机,并且希望通过该连接推送音频,则需要在Windows中执行注册表修改,以确保音频驱动程序正常运行。有关MSI和VFIO中断的全面说明,请访问Alex Williamson的博客[8]这是执行此操作的过程:

  • 在继续之前(作为备份),请关闭您的VM并制作一个虚拟磁盘的副本。
  • 在分配了GPU设备的情况下启动您的VM。
  • 使用SSH或telnet访问您的服务器。
  • 对于要分配的设备,找到它的PCI地址标识符(可以在VM创建工具中选择该设备时找到)
  • 在命令行中键入以下内容:( lspci -v -s 1:00.0将1:00.0替换为您的GPU设备)
  • 寻找看起来像这样的一行: Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+

如果“  启用”设置设置为 +,则意味着您的设备声称它具有MSI功能,并且由使用它的来宾VM启用。如果找不到找到MSI作为功能的行,则表明您的设备不支持此功能。如果将“  启用”设置设置为 -,则意味着您的设备声称它具有MSI功能,但来宾VM未使用它。此处记录了从Windows启用MSI支持的过程:http : //forums.guru3d.com/showthread.php?t=378044

物理到虚拟机的转换过程

如果您希望将现有的物理PC或服务器转换为可在unRAID 6上使用的虚拟机,则过程非常简单。步骤1-3适用于几乎所有基于Linux的现代客户机。步骤4-6适用于基于Windows的来宾。

先决条件

  • 在unRAID Server OS 6上使用虚拟机之前,您的系统必须满足硬件要求并完成这些准备步骤。
  • 阵列中单个存储设备上必须有足够的磁盘空间(高速缓存池中的总可用空间),其大小等于或大于要转换的物理磁盘。
  • 强烈建议您在进行转换之前,对最重要的文件进行完整备份。

步骤1:使用unRAID webGui识别要转换的磁盘

  • 在阵列停止的情况下,将要转换的物理磁盘连接到服务器(SATA和电源)
  • 使用浏览器登录到用于unRAID 6的webGui(默认为Mac OS X设备上的http:// towerhttp://tower.local
  • 单击 主要选项卡。
  • 如果尚未启动该阵列,请单击“  启动”以启动它
  • 在“主要”选项卡上的“  未分配的设备”部分中找到您的磁盘设备
  • 在标识列下,通过 字母句柄(例如sdb,sdc,sdd,sde等)注明磁盘ID 
  • 还要注意 大小,因为在可用的阵列设备或缓存(池)上至少需要这么多可用空间来创建新的虚拟磁盘。

步骤2:从“ VMs”选项卡添加新的虚拟机

  • 使用浏览器登录到用于unRAID 6的webGui(默认为Mac OS X设备上的http:// towerhttp://tower.local
  • 单击“  VMs”选项卡(如果该选项卡不可见,则说明您尚未完成这些准备步骤或可能不满足这些硬件要求;请发布一般支持以获取进一步的帮助)
  • 单击 添加虚拟机按钮。
  • 请遵循本指南来创建您的VM,并确保遵循以下特定设置:
    • BIOS设置保留为SeaBIOS。
    • 将“  操作系统安装ISO”留空。
    • 确保指定 VirtIO驱动程序ISO,以后将需要它们。
    • 使 主虚拟磁盘的大小足以容纳要复制的物理磁盘。
    • 如果转换包含Windows操作系统的磁盘
      • 通过单击绿色加号添加 第二个虚拟磁盘
      • 将第二个虚拟磁盘的大小设置为 1M
      • 取消选中 创建后启动VM的选项

步骤3:通过Telnet或SSH连接到您的unRAID服务器

  • 使用支持telnet或SSH的客户端,通过局域网连接到您的unRAID系统。默认用户名是root,默认情况下没有密码。
  • 输入以下命令以开始将物理磁盘转换为虚拟映像:

qemu-img convert -p -O raw /dev/sdX /mnt/user/vdisk_share/vmname/vdisk1.img

  • 更换 sdX的与你在步骤1中记下的设备信手柄,更换 vdisk_share与您创建用于存储虚拟磁盘,并更换共享 虚拟机名称与你给它,当你在步骤2中创建它的名称。
  • 所述 -p在一个百分比的形式标签将输出进度而转换正在发生。

步骤4:编辑虚拟机的XML(仅Windows Guest)

  • 在“虚拟机”选项卡中,单击“虚拟机”图标,然后从上下文菜单中选择“编辑XML”。
  • 向下滚动XML并找到 <目标>的标签 <磁盘> <源>文件集到vdisk1.img,这将看起来像这样:


<disk type='file' device='disk'>
     <driver name='qemu' type='raw' cache='writeback'/>
     <source file='/mnt/cache/vdisk_share/vmname/vdisk1.img'/>
     <backingStore/>
     <target dev='hda' bus='virtio'/>
     <boot order='1'/>
     <alias name='virtio-disk0'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
   </disk>
  • 通过将 总线属性更改为 <target>标记为 ide调整vdisk1.img 
  • 删除该 <disk>的整个 <address>
  • 更正了以下XML示例:


<disk type='file' device='disk'>
     <driver name='qemu' type='raw' cache='writeback'/>
     <source file='/mnt/cache/vdisk_share/vmname/vdisk1.img'/>
     <backingStore/>
     <target dev='hda' bus='ide'/>
     <boot order='1'/>
   </disk>
  • 单击 更新以更新虚拟机XML。

步骤5:从VM内部安装VirtIO驱动程序(仅Windows guest虚拟机)

  • 使用 Windows File Explorer,导航到VirtIO虚拟CD-ROM以浏览其内容。
    • 导航到 Balloon文件夹中。
    • 导航到以 Windows操作系统版本(例如w8.1)命名的子文件夹。
    • 导航到 amd64子文件夹
    • 右键单击其中的 balloon.inf文件,然后从上下文菜单中单击“安装”(您可能需要启用文件扩展名的查看)
  • 对以下每个文件夹重复上述过程:
    • NetKVM
    • 暴力的
    • 维斯托尔
  • 安装完驱动程序后,再在虚拟CD-ROM内导航一次,然后打开 guest-agent文件夹。
  • 双击 qemu-ga-x64.msi以安装QEMU / KVM guest虚拟机代理。

步骤6:从您的VM中删除辅助虚拟磁盘(仅限Windows Guest虚拟机)

  • 如果尚未 关闭您的VM,请 关闭它。
  • 在“  虚拟机”选项卡中,单击“虚拟机”图标,然后从上下文菜单中选择“  编辑 ”。
  • 通过单击红色减号删除vdisk2.img虚拟磁盘。
  • 单击 更新以更新VM。
  • 启动新转换的虚拟机!

额外:帮助!通过“从硬盘引导”卡在SeaBIOS上

如果您的操作系统是使用UEFI安装的(与传统的VGA BIOS相对),请从步骤3重新开始,但选择OVMF作为BIOS类型而不是SeaBIOS。大多数操作系统安装使用传统的VGA BIOS进行安装,但是也可以进行UEFI安装,在这种情况下,SeaBIOS将不起作用。其余转换过程相同。




相关文章


其它的Unraid 虚拟机管理文章:

https://www.52help.net/unraid/333.html

Unraid 虚拟机客户端支持

https://www.52help.net/unraid/334.html