VM 设置
在 Unraid 上设置一个 VM 是在容器和本地应用程序旁运行完整操作系统(如 Windows、Linux 或其他平台)的灵活方法。无论您是想测试新软件、运行遗留应用程序、托管桌面环境,还是利用硬件直通进行游戏或创意工作,Unraid 的 VM 管理器 使得所有技能水平的用户都可以轻松掌握这一过程。
查看 %%VM|虚拟机%% 管理器功能 部分以了解更多详情。
- %%VM|虚拟机%% 克隆和快照
- 用户创建的 %%VM|虚拟机%% 模板
- 内联 XML 编辑/查看
- 高级 GPU 共享和直通功能
查看 %%VM|虚拟机%% 管理器功能 部分以了解更多详情。
:::
在准备好系统和设置好偏好后,您可以使用 WebGUI 创建新的 %%虚拟机 (VM)|虚拟机%%。
创建您自己的虚拟机
在系统准备就绪并设置好偏好后,您可以使用 WebGUI 创建一个新的 VM。
Unraid 7.1+引入了用户VM模板,使得保存和重用您自定义的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的部署,并确保设置的一致性。
创建用户模板:
- 将鼠标悬停在用户模板上,然后单击箭头将其导出到服务器或下载它。
- 在另一台 Unraid 系统上,使用 从文件导入 或 上传 来添加模板。
- 您的模板现在将可在 添加 VM 屏幕上的用户模板区域中使用。
使用用户模板:
- 在 VMs 页面上,点击 添加 VM,并从 用户模板 部分选择您的模板。
Unraid 7.x为**VM管理器**引入了许多强大的增强功能,简化了运行和管理虚拟机的过程。这些功能满足了初学者和高级用户的需求,使得部署、定制和优化您的VM更加简单。
- 将鼠标悬停在用户模板上,然后单击箭头将其导出到服务器或下载它。
- 在另一台 Unraid 系统上,使用 从文件导入 或 上传 来添加模板。
Unraid 7.x 新增功能:VM 管理器
Unraid 7.x 引入了一系列强大的增强功能,改进了 VM 管理器 的运行和管理流程。这些功能兼顾初学者和高级用户,使部署、定制和优化您的 VMs 更加简单。
:::tip[Highlights]
- 通过 %%VM|虚拟机%% 克隆、快照和可重用模板节省时间
- 通过高级直通和存储选项优化性能和兼容性
- 通过使用情况统计和内联
XML编辑享受更好的可见性和控制
:::
增强的图形和 GPU 共享
工作流增强
高级硬件与存储选项
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视图中修复路径和图标问题
高级选项
VM 快照允许您在特定时间点保存当前 VM 的状态。如果出现问题,您可以恢复到该状态,或者使用快照安全地测试更改。这在安装新软件、进行配置更改或执行系统更新之前特别有用。
创建快照时,Unraid 会生成一个“覆盖文件”,记录创建快照后在虚拟机上进行的所有更改。您可以这样理解:
- 原始 VM 磁盘:这表示您的 VM 当前状态(类似于一张照片)。
- 快照覆盖:这是一个独立的文件,记录快照之后的所有更改(像是编辑列表)。
- VM 继续运行:您的 VM 结合使用原始磁盘和覆盖文件。
这种设置允许您创建多个快照,每个快照都会生成自己的覆盖文件。这意味着您可以轻松恢复到任何先前的状态。
在您可以将 GPU 或任何 PCI 设备分配给 虚拟机 之前,重要的是要将该设备 "绑定" 到 vfio-pci 驱动程序。这个过程将设备从 Unraid 中隐藏,并完全供您的 VM 使用。
- 您创建一个名为“干净的 Windows 安装”的快照。
- 您安装了一些软件并进行了更改。
- 您创建另一个名为“软件安装后”的快照。
- 您现在可以恢复到干净安装或软件安装后的状态。
- 您还可以使用“块提交”或“块提取”以使更改永久化。
- 创建快照
- 管理快照
- 恢复快照
要为您的 VM 创建快照:
- 转到 WebGUI 中的 VMs 页面。
- 点击 VM 名称以展开其详细信息。
- 查找 快照 部分并点击 创建快照。
- 为快照输入一个描述性的名称(例如,“Windows 更新前”或“清除安装状态”)。
- 内存转储选项: 在当前 Unraid 构建中,默认情况下未选中“内存转储”复选框。选中它会包含 VM 的 RAM,以获取完整的内存支持快照(捕获实时运行状态,但创建/恢复较大且较慢)。不选中它将创建一个仅限磁盘的崩溃一致快照(较小且较快,但任何未保存的内存数据将丢失)。请根据需要选择是进行完整的现场状态保护还是只进行磁盘恢复。
- 点击 创建 以保存快照。
::提示[最佳实践]
- 在对您的 VM 进行重大更改之前创建快照。
- 使用描述性名称帮助您记住快照的内容。
- 根据您的需求选择内存转储:启用它以获取完整的现场状态保护,或关闭它以更快的仅磁盘恢复。
- 为重要的里程碑保留快照,但删除旧快照以节省存储空间。
拥有快照后,您可以在 VM 详细信息部分看到它们的列出。每个快照显示:
- 名称: 你给快照的名称。
- 日期: 快照创建的日期。
- 大小: 它占用的存储空间。
管理快照:
::提示 恢复快照:这将把您的 VM 恢复到创建快照时的状态。 创建快照后的所有更改将会丢失。VM 将使用原始磁盘文件,就像快照不存在一样。
**块提交:**此过程将所有更改从快照覆盖文件复制回原始 VM 磁盘文件。默认情况下,显示“翻转”和“删除”选项已选中:
-
**翻转:**此选项使您的 VM 从使用覆盖文件切换回使用原始磁盘文件。提交后,您的 VM 将使用原始磁盘(现在包含更改)而不是覆盖文件。
-
**删除:**此选项在将更改提交到原始磁盘后删除快照覆盖文件。
-
两个选项(“翻转”+“删除”)一起使用:
- **同时选中这两个选项:**更改被提交到原始文件,您的 VM 切换回使用原始磁盘,并删除覆盖文件。这是最常见的选择。
- **在两者都未选中时:**更改被提交到原始文件,但您的 VM 继续使用覆盖文件,并且覆盖文件仍然存留以记录未来的更改。
在对更改感到满意并希望使其成为永久性时,使用块提交。
**块提取:**这会将原始磁盘数据合并到快照覆盖文件中,使覆盖文件变得完整且独立。您的 VM 继续使用覆盖文件,但不再依赖于原始磁盘。若希望保留当前状态并使快照永久化,请使用此功能。
快照存储
快照使用系统上的存储空间。每个快照仅保存当前状态与快照状态之间的差异;然而,这些差异仍然可能随着时间的推移累积。
以下是一些需要考虑的要点:
- QCOW2 磁盘 支持快照,并与这一功能很好地结合使用。
- 存储位置:快照与您的VM文件一起存储,因此请确保您的cache pools或array有足够的空间。
GPU透传允许您将物理显卡直接分配给虚拟机 (VM),为游戏、创作工作或机器学习提供近乎原生的性能。
- 快照元数据存储在
/etc/libvirt/qemu/snapshotdb/VM_name/。 - 实际快照数据与您的VM文件一起存储在cache pools或array上。
:::info[Advanced 快照概念
有关 VM 快照工作原理的更详细技术信息,包括块图和多个快照的高级场景,请参阅 QEMU 快照文档。
:::
:::tip[Common 使用案例
- 在系统更新前: 在安装 Windows 更新或 Linux 包更新之前创建快照。若出现问题,您可以快速恢复到以前的版本。
- 测试软件: 安装新应用程序或进行配置更改。如果您不满意结果,可以从更改之前的清除 VM 快照中恢复。
- 开发工作: 在项目的不同阶段创建快照。这使您可以自由实验并返回到已知的良好状态。
- 备份策略: 尽管不能替代适当的备份,快照提供了最近更改的快速恢复。
:::
使用虚拟 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 类型:
BIOS 类型只能在创建新 VM 时设置。
Hyper-V 扩展:
- 对于 Windows %%虚拟机%%,启用 Hyper-V 扩展以提高兼容性和性能。
VirtIO 驱动 ISO:
- 如有需要,尤其是在测试或使用更新驱动时,覆盖默认的 VirtIO ISO。
vDisk 类型:
RAW:最佳性能,快照功能较差。QCOW2:支持快照但性能稍差。
VirtFS 映射(Linux %%虚拟机%%):
网络设置:
- 修改 网络 MAC 地址 或选择备用 网络桥。
- 单击刷新符号以自动生成新 MAC 地址。
- 根据需要添加额外的虚拟网络接口。
绑定 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等)以进行直通:
- 定位到 WebGUI 中的 工具→系统设备。
- 查看所有检测到的 PCI 设备及其 IOMMU 组的列表。
- 选中您希望绑定到 vfio-pci 的每个设备的复选框(以将其从 Unraid 隐藏)。
- 注意,Unraid 已使用的设备(例如磁盘控制器和网卡)无法选择。
- 如果选择了 GPU,请选择相关的声音设备。
- 单击 绑定选择到 VFIO 开机时 以保存更改。
- 重新启动服务器以使绑定生效。
绑定后,绑定设备将在编辑或创建 %%虚拟机|虚拟机%% 时出现在 其他 PCI 设备 下拉菜单中。
故障排除
- 如果您之前使用过
VFIO-PCI配置插件,请卸载它 - 这项功能已经集成。 - 要重置所有绑定,删除
/boot/config/vfio-pci.cfg并重新启动系统。 - 重启后,在系统设备页面上使用查看
VFIO-PCI日志按钮进行高级故障排除。 - 请记住,如果您绑定了唯一的 GPU,Unraid 可能无法引导到 GUI。请确保对此有规划。
- 有关更多信息,请查看Unraid论坛官方指南。
GPU透传用于虚拟机
GPU 通道 允许您直接将物理显卡分配给 VM,提供接近原生的游戏、创意工作或机器学习性能。
- **性能:**为高需求应用提供直接硬件访问。
- **兼容性:**运行需要专用GPU的图形密集型工作负载。
- **灵活性:**将您的 Unraid 服务器转换为多用途工作站。
先决条件
硬件:
注入ROM:
设置 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注入才能正常透传。
停留在UEFI shell
某些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 增加其 vDisk 的大小。
要扩展vDisk:
- 进入 WebGUI 中的 VMs 标签。
- 确保VM已停止。
- 点击VM的名称以展开其详细信息。
- 找到您要扩展的vDisk。点击容量字段中的值以使其可编辑。
- 输入新的所需大小(例如,
100G表示100GB)并按Enter。 - 新的容量现已设置。
您不能从 Unraid 图形界面缩小 vDisk;仅支持扩展。
在您的客户操作系统中扩展分区
调整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重置:
- 进入设置 → VM管理器。
- 将PCIe ACS重置设置为下游或均。
- 重启 Unraid。
-
允许不安全的中断(高级):
-
在您的 Unraid 闪存驱动器上编辑
syslinux.cfg:append vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot -
仅在您完全信任您的VM客户时使用此功能。
-
有关详细的IOMMU组说明,我们建议查看Alex Williamson的博客。