跳到主要内容

VM 设置

在 Unraid 上设置一个 VM 是在容器和本地应用程序旁运行完整操作系统(如 Windows、Linux 或其他平台)的灵活方法。无论您是想测试新软件、运行遗留应用程序、托管桌面环境,还是利用硬件直通进行游戏或创意工作,Unraid 的 VM 管理器 使得所有技能水平的用户都可以轻松掌握这一过程。

New 在 Unraid 7.0 中

查看 VM 管理器功能 部分以了解更多详情。

  • %%VM|虚拟机%% 克隆和快照
  • 用户创建的 %%VM|虚拟机%% 模板
  • 内联 XML 编辑/查看
  • 高级 GPU 共享和直通功能

查看 VM 管理器功能 部分以了解更多详情。

:::

在准备好系统和设置好偏好后,您可以使用 WebGUI 创建新的 %%虚拟机 (VM)|虚拟机%%。

创建您自己的虚拟机

在系统准备就绪并设置好偏好后,您可以使用 WebGUI 创建一个新的 VM

Before 开始
  • 虚拟机 页面中点击 添加 VM
  • 上传您的操作系统安装 ISO,以及适用于 Windows %%VM|虚拟机%% 的最新 %%VirtIO|virtio%% 驱动程序 ISO 到 isos 共享。
  • 决定是否使用 GPU 直通VNC 进行图形处理。

Unraid 7.1+引入了用户VM模板,使得保存和重用您自定义的VM配置变得容易。用户模板简化了VM的部署,并确保设置的一致性。

  1. 虚拟机 页面中点击 添加 VM
  2. 模板 设置为 自定义,或者为常见发行版选择预定义的操作系统模板。
  3. 输入 %%VM|虚拟机%% 的 名称,并可选提供描述。
  4. 如果希望 %%VM|虚拟机%% 随 %%array|array%% 自动启动,请切换 自动启动
  5. 选择操作系统类型。这也会调整VM图标。
  6. 分配给VMCPU核心。您可以分配最多与主机上的物理核心数相等的数量。
  7. 指定VM初始内存(RAM)。请参阅您的来宾操作系统文档以获得建议值。
  8. isos 共享中选择 OS 安装 ISO
  9. 配置 主 vDisk(位置、大小和类型)。
    • vDisk 存储 VM 的操作系统。
    • 使用加号按需添加附加的 vDisk
  10. 选择 显卡
    • 选择 VNC 以进行远程访问或选择物理 GPU 进行直通。
    • 如果使用物理GPU,请分配USB键盘/鼠标。
    • 如果需要,请设置 VNC 密码。
  11. 分配 声卡(可选,但对于通过GPU实现HDMI音频是必须的)。
  12. 按需分配 USB 设备
    • 设备必须在启动 %%VM|虚拟机%% 之前连接(不支持 USB 热插拔)。
    • Unraid 启动设备 (USB) 无法分配。
  13. 点击创建VM。除非您取消勾选创建后启动VM,否则VM将自动启动。

用户 VM 模板

Unraid 7.1+引入了用户VM模板,使得保存和重用您自定义的VM配置变得容易。用户模板简化了VM的部署,并确保设置的一致性。

创建用户模板:

  1. 将鼠标悬停在用户模板上,然后单击箭头将其导出到服务器或下载它。
  2. 在另一台 Unraid 系统上,使用 从文件导入上传 来添加模板。
  3. 您的模板现在将可在 添加 VM 屏幕上的用户模板区域中使用。

使用用户模板:

  • VMs 页面上,点击 添加 VM,并从 用户模板 部分选择您的模板。

Unraid 7.x为**VM管理器**引入了许多强大的增强功能,简化了运行和管理虚拟机的过程。这些功能满足了初学者和高级用户的需求,使得部署、定制和优化您的VM更加简单。

  • 将鼠标悬停在用户模板上,然后单击箭头将其导出到服务器或下载它。
  • 在另一台 Unraid 系统上,使用 从文件导入上传 来添加模板。

Unraid 7.x 新增功能:VM 管理器

Unraid 7.x 引入了一系列强大的增强功能,改进了 VM 管理器 的运行和管理流程。这些功能兼顾初学者和高级用户,使部署、定制和优化您的 VMs 更加简单。

Highlights
  • 通过 %%VM|虚拟机%% 克隆、快照和可重用模板节省时间
  • 通过高级直通和存储选项优化性能和兼容性
  • 通过使用情况统计和内联 XML 编辑享受更好的可见性和控制

增强的图形和 GPU 共享

  • VM 克隆与 快照 复制 VMs 或快速保存/恢复其状态以进行测试或备份。
  • 用户 VM 模板: 保存您的自定义 VM 配置,只需几次点击即可部署新 VMs
  • 内联 XML 查看/编辑: 立即查看或复制 WebGUI 生成的 XML;切换到 XML 模式以进行高级编辑。
  • 自动启动禁用: 选择哪些 %%VM|虚拟机%% 随您的 %%array|array%% 自动启动。
  • 计时器/偏移配置选项

工作流增强

  • PCI 多功能/其他: 为高级直通场景分配复杂的 PCI 设备或组。
  • QEMU 命令行直通: 添加自定义 QEMU 参数以进行专家级别的 %%VM|虚拟机%% 调优。
  • 存储覆盖: 指定每个 VM 的 虚拟磁盘 的存储位置。
  • SSD 标志与 unmap: 优化 vDisk 性能使其适用于 SSD,并启用 discard/unmap 支持。
  • SR-IOV 用于 Intel iGPU: 在多个 %%VM|虚拟机%% 之间共享集成 Intel 图形。
  • ZFS 的 VM 名称验证: 防止在 ZFS 存储池 使用不受支持的字符。

高级硬件与存储选项

  • VirGLQXL 虚拟 GPU: 在多个 Linux %%VM|虚拟机%% 间共享 Intel/AMD GPU,或利用 QXL 进行多屏幕/内存选项。
  • CPU 绑定 可选: 允许 Unraid 自动管理 CPU 分配,或根据需要手动设置核心。

增强的图形和 GPU 共享

  • View all graphics cards and VM-assigned IP addresses in the VM tab
  • 支持 QEMU ppc64 target 和 qemu:override
  • Windows %%虚拟机%% 的 hypervclock 支持
  • 仿真 CPU 的“可迁移”开/关
  • 计时器/偏移配置选项
  • 不支持的特定用例的 no keymap/nogpu 选项
  • 改进的 %%VM|虚拟机%% 图标选择与编辑
  • 当设置主 GPU 作为直通时的警告(可能需要vBIOS
  • 通过 QXL 视频驱动程序,将 Unraid %%VM|虚拟机%% 启动到 GUI 模式
  • XML 视图中修复路径和图标问题

高级选项

VM 快照允许您在特定时间点保存当前 VM 的状态。如果出现问题,您可以恢复到该状态,或者使用快照安全地测试更改。这在安装新软件、进行配置更改或执行系统更新之前特别有用。

How 提示

创建快照时,Unraid 会生成一个“覆盖文件”,记录创建快照后在虚拟机上进行的所有更改。您可以这样理解:

  • 原始 VM 磁盘:这表示您的 VM 当前状态(类似于一张照片)。
  • 快照覆盖:这是一个独立的文件,记录快照之后的所有更改(像是编辑列表)。
  • VM 继续运行:您的 VM 结合使用原始磁盘和覆盖文件。

这种设置允许您创建多个快照,每个快照都会生成自己的覆盖文件。这意味着您可以轻松恢复到任何先前的状态。

在您可以将 GPU 或任何 PCI 设备分配给 虚拟机 之前,重要的是要将该设备 "绑定" 到 vfio-pci 驱动程序。这个过程将设备从 Unraid 中隐藏,并完全供您的 VM 使用。

  1. 您创建一个名为“干净的 Windows 安装”的快照。
  2. 您安装了一些软件并进行了更改。
  3. 您创建另一个名为“软件安装后”的快照。
  4. 您现在可以恢复到干净安装或软件安装后的状态。
  5. 您还可以使用“块提交”或“块提取”以使更改永久化。

要为您的 VM 创建快照:

  1. 转到 WebGUI 中的 VMs 页面。
  2. 点击 VM 名称以展开其详细信息。
  3. 查找 快照 部分并点击 创建快照
  4. 为快照输入一个描述性的名称(例如,“Windows 更新前”或“清除安装状态”)。
  5. 内存转储选项: 在当前 Unraid 构建中,默认情况下未选中“内存转储”复选框。选中它会包含 VM 的 RAM,以获取完整的内存支持快照(捕获实时运行状态,但创建/恢复较大且较慢)。不选中它将创建一个仅限磁盘的崩溃一致快照(较小且较快,但任何未保存的内存数据将丢失)。请根据需要选择是进行完整的现场状态保护还是只进行磁盘恢复。
  6. 点击 创建 以保存快照。

::提示[最佳实践]

  • 在对您的 VM 进行重大更改之前创建快照。
  • 使用描述性名称帮助您记住快照的内容。
  • 根据您的需求选择内存转储:启用它以获取完整的现场状态保护,或关闭它以更快的仅磁盘恢复。
  • 为重要的里程碑保留快照,但删除旧快照以节省存储空间。

快照存储

快照使用系统上的存储空间。每个快照仅保存当前状态与快照状态之间的差异;然而,这些差异仍然可能随着时间的推移累积。

以下是一些需要考虑的要点:

  • QCOW2 磁盘 支持快照,并与这一功能很好地结合使用。
  • 存储位置:快照与您的VM文件一起存储,因此请确保您的cache poolsarray有足够的空间。

GPU透传允许您将物理显卡直接分配给虚拟机 (VM),为游戏、创作工作或机器学习提供近乎原生的性能。

  • 快照元数据存储在 /etc/libvirt/qemu/snapshotdb/VM_name/
  • 实际快照数据与您的VM文件一起存储在cache poolsarray上。
Advanced 快照概念

有关 VM 快照工作原理的更详细技术信息,包括块图和多个快照的高级场景,请参阅 QEMU 快照文档

Common 使用案例
  • 在系统更新前: 在安装 Windows 更新或 Linux 包更新之前创建快照。若出现问题,您可以快速恢复到以前的版本。
  • 测试软件: 安装新应用程序或进行配置更改。如果您不满意结果,可以从更改之前的清除 VM 快照中恢复。
  • 开发工作: 在项目的不同阶段创建快照。这使您可以自由实验并返回到已知的良好状态。
  • 备份策略: 尽管不能替代适当的备份,快照提供了最近更改的快速恢复。

使用虚拟 GPU 和 GPU 共享

Unraid 现在支持通过 VirGLQXL 的高级 GPU 共享适用于 Linux %%VM|虚拟机%%(及支持 Nouveau 驱动的某些 Nvidia GPU)。

  • 使用 VirGL:将 显卡 设置为 虚拟,并将 VM 控制台视频驱动 设置为 VirtIO(3D)
  • 使用 QXL:将 显卡 设置为 虚拟,并将 VM 控制台视频驱动 设置为 QXL (最好)
  • VirGL 不输出到物理显示器,并且不兼容 Windows %%VM|虚拟机%% 或标准 Nvidia 插件。
  • QXL 支持多屏幕和可配置的视频内存。

高级选项

展开此部分查看有关更多高级选项的指南

添加 VM 页面上切换到 高级视图 以访问其他设置。

以下是最重要的高级选项,分为集中部分:

CPU 模式:

  • 主机直通:向 %%虚拟机%% 暴露所有主机 CPU 功能以获得最佳性能。
  • 仿真:使用通用 CPU 模型,减少兼容性问题,但性能有限。

内存气球:

  • 设置 最大内存 值以启用动态内存分配(内存气球)。
  • 具有 PCI 设备分配(例如 GPU 直通)的 %%虚拟机%% 不可用。

机器类型:

BIOS 类型:

  • SeaBIOS:传统 BIOS,适用于旧版操作系统。
  • OVMFUEFI BIOS,适用于 Windows 8+、大多数现代 Linux 发行版,以及 GPU 直通
备注

BIOS 类型只能在创建新 VM 时设置。

Hyper-V 扩展:

  • 对于 Windows %%虚拟机%%,启用 Hyper-V 扩展以提高兼容性和性能。

VirtIO 驱动 ISO:

  • 如有需要,尤其是在测试或使用更新驱动时,覆盖默认的 VirtIO ISO。

vDisk 类型:

  • RAW:最佳性能,快照功能较差。
  • QCOW2:支持快照但性能稍差。

VirtFS 映射(Linux %%虚拟机%%):

  • 添加多个 VirtFS (9p) 共享以实现主机和来宾之间的文件系统集成。
  • 参阅 QEMU 9p 文档

网络设置:

  • 修改 网络 MAC 地址 或选择备用 网络桥
  • 单击刷新符号以自动生成新 MAC 地址。
  • 根据需要添加额外的虚拟网络接口。
Troubleshooting 提示
  • 如果您的 %%VM|虚拟机%% 启动失败,请仔细检查您的 ISO 和 %%vDisk|vdisk%% 路径。
  • 对于 GPU 直通,确保您的硬件和 BIOS 设置支持 IOMMU/VT-d/AMD-Vi。
  • 某些 USB 设备可能在直通时工作不稳定 - 测试并咨询 Unraid 论坛 以获得设备特定建议。

绑定 PCI 设备以进行直通

Before you can assign a GPU or any PCI device to a VM, it's important to "bind" the device to the vfio-pci driver. This process hides the device from Unraid and dedicates it solely to your VM.

要绑定PCI设备(GPU、USB控制器、NVMe等)以进行直通:

  1. 定位到 WebGUI 中的 工具→系统设备
  2. 查看所有检测到的 PCI 设备及其 IOMMU 组的列表。
  3. 选中您希望绑定到 vfio-pci 的每个设备的复选框(以将其从 Unraid 隐藏)。
    • 注意,Unraid 已使用的设备(例如磁盘控制器和网卡)无法选择。
    • 如果选择了 GPU,请选择相关的声音设备。
  4. 单击 绑定选择到 VFIO 开机时 以保存更改。
  5. 重新启动服务器以使绑定生效。
注意

GPU透传允许您将物理显卡直接分配给虚拟机 (VM),为游戏、创作工作或机器学习提供近乎原生的性能。

绑定后,绑定设备将在编辑或创建 %%虚拟机|虚拟机%% 时出现在 其他 PCI 设备 下拉菜单中。

故障排除

  • 如果您之前使用过 VFIO-PCI 配置插件,请卸载它 - 这项功能已经集成。
  • 要重置所有绑定,删除 /boot/config/vfio-pci.cfg 并重新启动系统。
  • 重启后,在系统设备页面上使用查看VFIO-PCI日志按钮进行高级故障排除。
  • 请记住,如果您绑定了唯一的 GPU,Unraid 可能无法引导到 GUI。请确保对此有规划。
  • 有关更多信息,请查看Unraid论坛官方指南

GPU透传用于虚拟机

GPU 通道 允许您直接将物理显卡分配给 VM,提供接近原生的游戏、创意工作或机器学习性能。

Why 使用 GPU 直通功能?
  • **性能:**为高需求应用提供直接硬件访问。
  • **兼容性:**运行需要专用GPU的图形密集型工作负载。
  • **灵活性:**将您的 Unraid 服务器转换为多用途工作站。

先决条件

硬件:

  • 支持Intel VT-d或AMD-Vi的处理器(在BIOS中启用IOMMU)。
  • 与透传兼容的GPU(参见社区测试硬件)。
  • 主板支持正确隔离PCIe设备。

注入ROM:

  • Unraid 6.9以上版本,启用了虚拟化。
  • OVMFUEFI) BIOS用于VM(推荐使用OVMF而不是SeaBIOS)。

设置 GPU 通道:

  1. 确保您的硬件支持IOMMU并在您的BIOS中启用。
  2. 在BIOS中启用虚拟化特性(Intel VT-x/VT-d或AMD-v/AMD-vi)。
  3. 将 Unraid 更新到最新稳定版本。
  4. 在图形卡部分中,将GPU分配给VMVM创建或编辑屏幕。
  5. 如果使用GPU透传,请为VM分配USB键盘和鼠标。
  6. VM使用OVMF BIOS,以便更好地兼容GPU透传
  7. 启动VM并确认GPU正确透传。
备注

某些GPU可能需要额外配置或ROM注入才能正常透传。

停留在UEFI shell

某些GPU,特别是特定的NVIDIA型号,需要手动为VM提供ROM文件才能正确初始化。这通常在GPU的板载固件未默认正确传递时是必要的,导致诸如黑屏或无法启动等问题。在尝试BIOS和VM配置调整后,手动ROM注入是最后的手段。

注入ROM:

  1. 下载GPU ROM:

    • 访问TechPowerUp VGA BIOS数据库
    • 搜索您的GPU型号并下载正确的ROM文件。
    • 在您的 Unraid isosdomains 共享中存储 rom。
  2. 编辑VM XML:

    • 停止VM并打开其XML配置(在VM上下文菜单中选择编辑XML)。

    • 定位GPU的<hostdev>块并添加<rom>标签:


      <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
      <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/gpu_roms/your_gpu.rom'/> <!-- Update path -->
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
      </hostdev>
  3. 保存并测试:点击更新并启动VM


常见问题

本节涵盖在 Unraid 上管理 VMs 时常见问题的高级主题和解决方案。展开下列部分以获取逐步说明和故障排除技巧。

扩展vDisk

如果您的 VM 磁盘空间不足,您可以直接从 WebGUI 增加其 vDisk 的大小。

要扩展vDisk

  1. 进入 WebGUI 中的 VMs 标签。
  2. 确保VM已停止。
  3. 点击VM的名称以展开其详细信息。
  4. 找到您要扩展的vDisk。点击容量字段中的值以使其可编辑。
  5. 输入新的所需大小(例如, 100G表示100GB)并按Enter
  6. 新的容量现已设置。
备注

您不能从 Unraid 图形界面缩小 vDisk;仅支持扩展。

在您的客户操作系统中扩展分区

调整vDisk大小后,启动您的VM。您必须在客户操作系统中扩展分区以使用新空间:

  • **Windows:**使用内置磁盘管理工具扩展分区。

  • **Linux (LVM):**使用fdiskpvresizelvextendresize2fs等工具扩展分区和逻辑卷。

示例:

sudo fdisk /dev/vda
sudo pvresize /dev/vda3
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

根据您的设置调整设备名称。

提示

在进行磁盘更改之前,始终备份您的VM

停留在UEFI shell

如果您的VM启动到UEFI shell而非您的操作系统,您可以手动启动引导过程:

UEFI shell提示符下输入:

fs0:
cd efi/boot
bootx64.efi

VM现在应该继续引导您的操作系统。

提示

如果该情况频繁发生,请检查您的VM的引导顺序,并确保在VM设置中将正确的vDisk或ISO设置为主要引导设备。

启动后黑屏

如果您的VM启动但显示器保持空白:

  1. 检查BIOS设置:
  • 将主图形设置为集成GPU(iGPU),而不是透传GPU。
  • 将主板和GPU BIOS更新至最新版本。
  1. 调整VM设置:
  • SeaBIOS换为OVMFUEFI)在VM设置中。
  • 机器类型 从i440fx更改为Q35。
  1. 手动ROM注入(最后一招):手动注入GPU ROM

错误:“设置容器的IOMMU失败:操作不允许”

此错误通常指示IOMMU组冲突或缺少中断重映射:

  1. 启用PCIe ACS重置:
  • 进入设置 → VM管理器
  • PCIe ACS重置设置为下游
  • 重启 Unraid。
  1. 允许不安全的中断(高级):
  • 编辑您的 Unraid 启动卷上的 syslinux.cfg

    append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot
  • 仅在您完全信任您的VM客户时使用此功能。

备注

有关详细的IOMMU组说明,我们建议查看Alex Williamson的博客