VM 设置
在 Unraid 上设置虚拟机(VM)是一种灵活的方法,可以在您的容器和本地应用程序旁运行完整的操作系统 - 例如 Windows、Linux 或其他平台。无论您是想测试新软件,运行旧版应用,托管桌面环境,还是为游戏或创意工作使用硬件直通,Unraid 的 VM 管理器使这一过程对所有技能水平的用户都变得切合可行。
Unraid 7.x 为 %%虚拟机 (VM)|虚拟机%% 带来了显著增强,包括:
- %%VM|虚拟机%% 克隆和快照
- 用户创建的 %%VM|虚拟机%% 模板
- 内联 XML 编辑/查看
- 高级 GPU 共享和直通功能
查看 %%VM|虚拟机%% 管理器功能 部分以了解更多详情。
如果您还没有,请查看 概述和系统准备 指南,以确保您的硬件和共享已准备好虚拟化。
创建您自己的虚拟机
在准备好系统和设置好偏好后,您可以使用 WebGUI 创建新的 %%虚拟机 (VM)|虚拟机%%。
要创建一个基本的 %%VM|虚拟机%%:
- 从 虚拟机 页面中点击 添加 VM。
- 将 模板 设置为 自定义,或者为常见发行版选择预定义的操作系统模板。
- 输入 %%VM|虚拟机%% 的 名称,并可选提供描述。
- 如果希望 %%VM|虚拟机%% 随 %%array|array%% 自动启动,请切换 自动启动。
- 选择操作系统类型。这也会调整VM图标。
- 分配给VM的CPU核心。您可以分配最多与主机上的物理核心数相等的数量。
- 指定VM的初始内存(RAM)。请参阅您的来宾操作系统文档以获得建议值。
- 从 isos 共享中选择 OS 安装 ISO。
- 配置 主 vDisk(位置、大小和类型)。
- 选择 显卡:
- 分配 声卡(可选,但对于通过GPU实现HDMI音频是必须的)。
- 按需分配 USB 设备。
- 设备必须在启动 %%VM|虚拟机%% 之前连接(不支持 USB 热插拔)。
- Unraid USB 闪存设备无法进行分配。
- 点击创建VM。除非您取消勾选创建后启动VM,否则VM将自动启动。
用户 VM 模板
Unraid 7.1+引入了用户VM模板,使得保存和重用您自定义的VM配置变得容易。用户模板简化了VM的部署,并确保设置的一致性。
创建用户模板:
- 编辑您想要模板化的 %%VM|虚拟机%%。
- 选择 创建/修改模版 并输入名称。
- 您的模板现在将可在 添加 VM 屏幕上的用户模板区域中使用。
使用用户模板:
- 在 VMs 页面上,点击 添加 VM 并从 用户模板 部分选择您的模板。
导入/导出:
- 将鼠标悬停在用户模板上,然后单击箭头将其导出到服务器或下载它。
- 在另一台 Unraid 系统上,使用 从文件导入 或 上传 来添加模板。
Unraid 7.x 新增功能:VM 管理器
Unraid 7.x为**VM管理器**引入了许多强大的增强功能,简化了运行和管理虚拟机的过程。这些功能满足了初学者和高级用户的需求,使得部署、定制和优化您的VM更加简单。
:::tip[Highlights]
- 通过 %%VM|虚拟机%% 克隆、快照和可重用模板节省时间
- 通过高级直通和存储选项优化性能和兼容性
- 通过使用情况统计和内联
XML
编辑享受更好的可见性和控制
:::
工作流增强
- VM 克隆与快照: 复制 %%虚拟机%% 或快速保存/恢复其状态以进行测试或备份。
- 用户 VM 模板: 保存您自定义的 %%虚拟机%% 配置,并只需几次点击即可部署新 %%虚拟机%%。
- 内联 XML 查看/编辑: 立即查看或复制 WebGUI 生成的
XML
;切换到XML
模式以进行高级编辑。 - 自动启动禁用: 选择哪些 %%VM|虚拟机%% 随您的 %%array|array%% 自动启动。
- VM 使用统计: 直接从仪表板跟踪每个 %%VM|虚拟机%% 的资源使用情况。
工作流增强
高级硬件与存储选项
VirGL
与QXL
虚拟 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
视图中修复路径和图标问题
使用虚拟 GPU 和 GPU 共享
Unraid 现在支持通过 VirGL
和 QXL
的高级 GPU 共享适用于 Linux %%VM|虚拟机%%(及支持 Nouveau
驱动的某些 Nvidia GPU)。
- 使用
VirGL
:将 显卡 设置为 虚拟,并将 VM 控制台视频驱动 设置为 VirtIO(3D)。 - 使用
QXL
:将 显卡 设置为 虚拟,并将 VM 控制台视频驱动 设置为QXL
(最好)。 VirGL
不输出到物理显示器,并且不兼容 Windows %%VM|虚拟机%% 或标准 Nvidia 插件。QXL
支持多屏幕和可配置的视频内存。
高级选项
展开此部分查看有关更多高级选项的指南
在 添加 VM 页面上切换到 高级视图 以访问其他设置。
以下是最重要的高级选项,分为集中部分:
CPU 模式:
- 主机直通:向 %%虚拟机%% 暴露所有主机 CPU 功能以获得最佳性能。
- 仿真:使用通用 CPU 模型,减少兼容性问题,但性能有限。
内存气球:
机器类型:
i440fx
:Windows VMs的默认值。只有在GPU直通问题时更改。Q35
:Linux 虚拟机%% 的默认值,建议大多数现代操作系统使用,尤其是在有 %%GPU 直通 场景下。
BIOS 类型:
仅在创建新的VM时才可以设置BIOS类型。
Hyper-V 扩展:
- 对于 Windows %%虚拟机%%,启用 Hyper-V 扩展以提高兼容性和性能。
VirtIO 驱动 ISO:
- 如有需要,尤其是在测试或使用更新驱动时,覆盖默认的 VirtIO ISO。
vDisk 类型:
RAW
:最佳性能,快照功能较差。QCOW2
:支持快照但性能稍差。
VirtFS 映射(Linux %%虚拟机%%):
网络设置:
- 修改 网络 MAC 地址 或选择备用 网络桥。
- 单击刷新符号以自动生成新 MAC 地址。
- 根据需要添加额外的虚拟网络接口。
绑定 PCI 设备以进行直通
在您可以将 GPU 或任何 PCI 设备分配给 虚拟机 之前,重要的是要将该设备 "绑定" 到 vfio-pci 驱动程序。这个过程将设备从 Unraid 中隐藏,并完全供您的 VM 使用。
要绑定PCI设备(GPU、USB控制器、NVMe等)以进行直通:
- 定位到 WebGUI 中的 工具→系统设备。
- 查看所有检测到的 PCI 设备及其 IOMMU 组的列表。
- 选中您希望绑定到 vfio-pci 的每个设备的复选框(以将其从 Unraid 隐藏)。
- 注意,Unraid 已 使用的设备(例如磁盘控制器和网卡)无法选择。
- 如果选择了 GPU,请选择相关的声音设备。
- 单击 绑定选择到 VFIO 开机时 以保存更改。
- 重新启动服务器以使绑定生效。
如果您进行了硬件更改(如添加或删除PCI设备),请返回到系统设备以确保正确的设备仍然绑定。如果设备未绑定或错误绑定,它们可能不会出现用于直通。
绑定后,绑定设备将在编辑或创建 %%虚拟机|虚拟机%% 时出现在 其他 PCI 设备 下拉菜单中。
故障排除
- 如果您之前使用过
VFIO-PCI
配置插件,请卸载它 - 这项功能已经集成。 - 要重置所有绑定,删除
/boot/config/vfio-pci.cfg
并重新启动系统。 - 重启后,在系统设备页面上使用查看
VFIO-PCI
日志按钮进行高级故障排除。 - 请记住,如果您绑定了唯一的 GPU,Unraid 可能无法引导到 GUI。请确保对此有规划。
- 有关更多信息,请查看Unraid论坛官方指南。
GPU透传用于虚拟机
GPU透传允许您将物理显卡直接分配给虚拟机 (VM),为游戏、创作工作或机器学习提供近乎原生的性能。
- **性能:**为高需求应用提供直接硬件访问。
- **兼容性:**运行需要专用GPU的图形密集型工作负载 。
- **灵活性:**将您的 Unraid 服务器转换为多用途工作站。
先决条件
硬件:
软件:
设置GPU透传:
- 确保您的硬件支持IOMMU并在您的BIOS中启用。
- 在BIOS中启用虚拟化特性(Intel VT-x/VT-d或AMD-v/AMD-vi)。
- 将 Unraid 更新到最新稳定版本。
- 在图形卡部分中,将GPU分配给VM的VM创建或编辑屏幕。
- 如果使用GPU透传,请为VM分配USB键盘和鼠标。
- 为VM使用OVMF BIOS,以便更好地兼容GPU透传。
- 启动VM并确认GPU正确透传。
某些GPU可能需要额外配置或ROM注入才能正常透传。
手动ROM注入
某些GPU,特别是特定的NVIDIA型号,需要手动为VM提供ROM文件才能正确初始化。这通常在GPU的板载固件未默认正确传递时是必要的,导致诸如黑屏或无法启动等问题。在尝试BIOS和VM配置调整后,手动ROM注入是最后的手段。
注入ROM:
-
下载GPU ROM:
- 访问TechPowerUp VGA BIOS数据库。
- 搜索您的GPU型号并下载正确的ROM文件。
- 在您的 Unraid
isos
或domains
共享中存储 rom。
-
编辑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>
-
保存并测试:点击更新并启动VM。
常见问题
本节涵盖在 Unraid 上管理 虚拟机 (VMs) 时常见问题的高级主题和解决方案。展开以下部分以获取分步说明和故障排除提示。
扩展vDisk
点击展开/折叠
如果您的 VM 磁盘空间不足,可以直接通过WebGUI增加其%%virtual disk (vDisk)|vdisk%% 的大小。
要扩展vDisk:
- 进入 WebGUI 中的 VMs 标签。
- 确保VM已停止。
- 点击VM的名称以展开其详细信息。
- 找到您要扩展的vDisk。点击容量字段中的值以使其可编辑。
- 输入新的所需大小(例如,
100G
表示100GB)并按Enter。 - 新的容量现已设置。
You cannot shrink a vDisk from the Unraid GUI; only expansion is supported.
在您的客户操作系统中扩展分区
调整vDisk大小后,启动您的VM。您必须在客户 操作系统中扩展分区以使用新空间:
-
**Windows:**使用内置磁盘管理工具扩展分区。
-
**Linux (LVM):**使用
fdisk
、pvresize
、lvextend
和resize2fs
等工具扩展分区和逻辑卷。示例:
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
点击展开/折叠
启动后黑屏
点击展开/折叠
错误:“设置容器的IOMMU失败:操作不允许”
点击展开/折叠
此错误通常指示IOMMU组冲突或缺少中断重映射:
-
启用PCIe ACS重置:
- 进入 设置 → 虚拟机管理器。
- 将PCIe ACS重置设置为下游或均。
- 重启 Unraid。
-
允许不安全的中断(高级):
-
在您的 Unraid 闪存驱动器上编辑
syslinux.cfg
:append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot
-
仅在您完全信任您的VM客户时使用此功能。
-
对于详细的IOMMU组解释,建议查看Alex Williamson的博客。