FreeNAS(现在叫 TrueNAS CORE)开虚拟机,硬件上需要 CPU 支持虚拟化、内存建议 16GB 起步,步骤上只需先在服务里开启 VM 服务,再上传系统镜像、创建虚拟机、分配资源并引导安装,半小时内就能跑起第一个系统。
FreeNAS 内置的虚拟机方案基于 bhyve 虚拟化框架,和常用的 VirtualBox、VMware 不同,它直接跑在系统底层,资源利用率更高,但这套方案对硬件有硬性要求,配置步骤也和普通虚拟机软件不一样,下面从硬件门槛讲到实际操作,再聊几个容易踩的坑。
freenas 虚拟机 硬件要求:先看看你的设备行不行
很多朋友最开始都栽在硬件检查这一步上,装了 FreeNAS 的机器一般年龄不小,十年前的 CPU 没有虚拟化扩展,直接连虚拟机服务都启动不了。
处理器的虚拟化扩展是硬门槛
bhyve 必须在 CPU 支持虚拟化扩展的情况下才能运行,Intel 平台要 VT-x 和 EPT,AMD 平台要 SVM 和 NPT,缺一不可,2010 年以后的消费级 CPU 基本都支持,但低端赛扬、老至强里有一部分型号会把虚拟化功能砍掉,需要特别小心。
验证方法很简单,在 FreeNAS 的 Web 界面里点“系统” → “Shell”,输入:
sysctl -a | grep vmm
如果输出一长串以 vmm.vmm 开头的参数,说明虚拟化支持已经就绪,如果只显示几行或者没有输出,多半是 BIOS 里的 VT-d 或 SVM 没打开,重启进 BIOS,在“Advanced”或“CPU Configuration”里找 Intel Virtualization Technology 或 SVM Mode,改成 Enabled 再试。
内存要留出“给虚拟机吃”的那一份
FreeNAS 本身基于 ZFS 文件系统,ZFS 会拿内存做 ARC 缓存,用得越多缓存越大,如果内存总量不够,再分出去一块给虚拟机,宿主机就会变得非常迟钝。
据 FreeNAS 官方文档,8GB 内存是底线,16GB 是推荐配置,虚拟机实际操作时,内存建议按 2GB 起步、4GB 舒适、8GB 充足的梯度来分配,如果打算同时跑两个虚拟机,内存总量最好直接上 32GB,行业共识认为,ZFS 的 ARC 缓存至少要保留物理内存的一半,所以16GB 内存的机器,虚拟机最多分 8GB,剩下的要留给系统做缓存。
存储别委屈:镜像和系统盘要分开
不少人在一块机械硬盘上既存电影又装虚拟机,结果虚拟机的系统启动慢得让人怀疑人生,虚拟机的磁盘 I/O 是持续随机读写,机械硬盘在这种负载下效率极低,实际操作时,至少准备一块 SSD 专门放虚拟机的虚拟磁盘文件,ISO 镜像和普通数据集放在机械盘上,把机械盘的顺序读写能力留给电影和备份文件,这样两边都不耽误。
一张表看明白推荐配置
下面是我个人用过觉得比较顺手的配置参考,不同需求可以按自己的情况调整:
| 配置项 | 最低要求 | 推荐配置 | 使用说明 |
|---|---|---|---|
| CPU | 4 核,支持 VT-x/AMD-V | 6 核以上,主频越高越好 | 虚拟机要占 2 核以上,剩余算力留给 ZFS 和网络共享 |
|
内存 | 16GB | 32GB 或 64GB | ZFS 缓存 + 虚拟机内存,两头都要顾 |
| 系统盘 | 1 块 SSD(120GB 以上) | NVMe SSD | 虚拟机虚拟磁盘和 FreeNAS 系统分开放 |
| 存储盘 | 2 块 HDD 做镜像 | 4 盘位 RAID-Z1 | 数据安全性靠盘位冗余,虚拟机盘不依赖它 |
| 网卡 | 千兆网卡 | 双千兆或万兆 | 虚拟机内跑软路由或下载机时需要大带宽 |
这套配置跑两个轻量级 Linux 虚拟机,或者一个 Windows 虚拟机做轻办公,完全够用。
freenas 安装 虚拟机 的完整步骤:从镜像导入到系统启动
硬件没问题以后,整个流程就是四个环节:开服务、传镜像、建虚拟机、装系统,每一步都有固定的操作路径,没有隐藏菜单。
开启虚拟机服务,设置开机自启
FreeNAS 的虚拟机服务默认是停用的,进入 Web 界面,点击左侧菜单的“服务”,找到 VM 这一行,点击右侧的“编辑”按钮,把“启用”复选框打上勾,然后保存,如果希望重启后虚拟机自动恢复运行,再把同一行右侧的“启动”开关打开,这样 FreeNAS 开机后 VM 服务会自动拉起。
上传 ISO 镜像:路径要记牢
虚拟机安装系统需要 ISO 镜像,首先在“存储” → “数据集”里选好一个挂载点,点击“添加” → “上传”把 ISO 传上去,上传完成后,一定要记下文件的路径,/mnt/pool0/iso/ubuntu.iso,后面创建虚拟机时要用到这个路径,很多人卡在这一步就是因为没记住。
更省事的方式是开启 SMB 共享,直接在电脑上把 ISO 拖进 FreeNAS 的共享文件夹里,前提是已经建好 SMB 共享服务。
创建虚拟机:几个关键参数别填错
上传完镜像,点击“虚拟化” → “虚拟机” → “添加”,这里的参数比较多,但核心只有几个:
- 名称:随意起,
ubuntu-vm,不要用中文,部分系统兼容性不好。 - 引导模式:老系统选 Legacy BIOS,新系统选 UEFI,Windows 10 以上建议 UEFI。
- CPU 核心数:物理机是 4 核 8 线程的,分 2 核给虚拟机比较合理,分太多反而拖累宿主机。
- 内存大小:按前面说的原则分配,比如物理内存 16GB,虚拟机分 4GB。
- 安装介质:选择刚才上传的 ISO 镜像路径。
- 网络接口类型:选 VirtIO,性能比 Intel e1000 好。
- 显示设备:选 VNC,方便后续连接控制台。
创建完成后,点击虚拟机列表右侧的“启动”按钮,再点击“VNC”进入图形界面,就会看到 ISO 引导画面,后面就跟在实体机上装系统一样了。
添加磁盘和网卡的常见失误
很多人在创建虚拟机时忘记添加虚拟磁盘,启动后系统没有安装目标,其实创建虚拟机时没找到“磁盘大小”选项的话,可以在虚拟机详情页里点击“添加设备” → “磁盘”,输入 zvol 大小,创建一块虚拟磁盘给虚拟机用。
另外一个高频错误是网络接口类型选错,如果安装的是 Windows 虚拟机,VirtIO 网卡需要额外驱动才能识别,安装过程中可能提示找不到网络设备,这种情况下可以把网络接口改成
Intel e1000,Windows 自带驱动,装完系统再换回 VirtIO 提升性能。
安装过程中的卡壳点
安装 Linux 系统时,如果出现黑屏或光标闪烁,多数是引导模式不对,把 UEFI 改成 Legacy BIOS 再试,安装 Windows 时,记得把虚拟机的“显示器”设备选为 VNC 而不是 SPICE,SPICE 在部分 FreeNAS 版本里没有配套客户端,连接时会报错。
freenas 虚拟机 性能 差?多半是这几处没调好
虚拟机能启动只是第一步,真正跑起来之后,性能调优才是关键,很多朋友反馈反馈虚拟机里的系统特别卡,多数不是硬件不够,而是下面几个细节没做好。
CPU 别超分,剩余算力要留给系统
bhyve 虚拟机支持 CPU 超分,也就是让多个虚拟 CPU 共享物理核心,但超分太多会导致宿主机自身网络共享卡顿,业内专家指出,虚拟机的核心数不宜超过物理核心数的一半,尤其是 NAS 还在跑 SMB 和 Rsync 任务时,剩下来的算力才够 ZFS 完成校验和压缩计算。
网络适配器选择 VirtIO 而非 e1000
e1000 是 Intel 的老型号网卡模拟,兼容性好但性能上限很低,千兆网络下实测吞吐量会打折扣,VirtIO 是半虚拟化网卡,能直接利用宿主机网卡的硬件队列,在虚拟机里跑下载工具时,同样的网络环境,VirtIO 的传输速度比 e1000 明显更快。
磁盘 I/O:sync 和 zvol 带来的速度差
默认情况下,FreeNAS 的虚拟磁盘是一个文件,存放在 ZFS 数据集里,如果这个数据集开了 sync 模式,每一次写入都会等一次落盘确认,虚拟机的磁盘性能会急剧下降,解决方法是在“存储” → “数据集”里,给存放虚拟磁盘的数据集设置 sync=disabled,写入速度能提升好几倍,当然这是有代价的:如果物理机在写入过程中突然断电,最后几秒的数据可能丢失,这一点需要自己权衡。
在 ZFS 里创建 zvol 作为虚拟磁盘,比使用普通文件性能更好,在数据集上点击“添加” → “zvol”,配置大小后,创建虚拟机时把这块 zvol 挂载上去,这种方法减少了文件系统层的一层封装,虚拟机里的数据库、网站等服务跑起来更稳。
内存预留和 Swap 的平衡
虚拟机内存分配过大,宿主机自身的可用内存就会不足,产生 swap 交换,系统整体响应变慢,建议把虚拟机内存固定在物理内存的 50% 以内,如果虚拟机里跑的是 Ubuntu Server 这类轻系统,分配的内存可以少一点,反而因为宿主机缓存充足,虚拟机磁盘读取更快。
freenas 虚拟机 网卡 直通:什么时候值得折腾
网卡直通是把物理网卡直接分配给虚拟机使用,绕过 FreeNAS 的虚拟交换层,这不是必选项,但在特定场景下价值很大。
直通能压榨性能,但只适合特定场景
如果你要在 FreeNAS 虚拟机上跑 OpenWrt 软路由,或者做一个高负载的乌云缓存服务器,虚拟网卡的性能瓶颈非常明显,直通物理网卡后,虚拟机独享这块网卡的收包和发包能力,延迟和吞吐量都接近物理机水平。
直通之前必须确认的硬件条件
直通要求主板的 VT-d(Intel)或 AMD-Vi(AMD)功能开启,这一步在 BIOS 里设置,名称可能是 “Intel VT for Directed I/O” 或 “IOMMU”,必须设为 Enabled,还要确认网卡本身没有被 FreeNAS 的核心网络功能占用,比如管理界面用的网卡千万别直通,否则 Web 界面会直接失联。
直通后宿主机失去设备,操作不可逆
在“虚拟化” → “虚拟机” → “添加设备”里,把物理网卡设备分配给虚拟机后,该网卡在 FreeNAS 自身系统里就不可见了,一旦直通完成,如果虚拟机没有正常启动,宿主机也没有备用管理网口,那就只能在物理机前面插显示器救急,我的建议是,至少保留一块主板板载网卡给 FreeNAS 管理,把 PCIe 扩展网卡留给直通。
除了网卡,硬盘控制器通常也可以直通,这对黑群晖视频很有意思,FreeNAS 官方文档对这种用法没有专门支持,但技术上可行。
Q&A:freenas 虚拟机 常见问题解答
Q1:freenas 虚拟机 性能 差,面板里面显示 CPU 占用率一直很高,怎么排查?
先检查虚拟机分配的 CPU 核数是否太少,换到 top 命令里看 vmm 进程的 CPU 占用,如果单个虚拟机只分配了 1 核,Windows 更新或 Linux 编译时会 100% 满负荷跑,这是正常现象,遇到这种情况,把虚拟机 CPU 核数加到 4,并确保宿主机物理核心不低于 6 核,但不是简单地调高核心,而是先增加核心数再重启虚拟机观察。
Q2:freenas 虚拟机 黑群晖 怎么安装,虚拟机和实体机安装有区别吗?
群晖系统本身只支持自家硬件,在 FreeNAS 虚拟机上运行需要自行准备引导镜像和系统镜像,属于非官方玩法,动手前要评估授权风险,技术路径上,创建一个虚拟机,把引导镜像作为启动盘,再直通一块独立硬盘或 SATA 控制器给虚拟机,开机后通过 Synology Assistant 搜索局域网设备,就能进入群晖安装界面,直通是必须的,否则群晖系统无法识别虚拟磁盘的空间管理功能,安装完成后的使用体验和实体黑群晖基本一致,但升级系统版本时要格外小心,引导文件不匹配会导致系统失联。
Q3:freenas 虚拟机 启动 失败,提示 “Cannot create VM” 或 “No such file or directory”,是什么原因?
最常见的原因是 ISO 镜像路径写错了,检查“安装介质”字段里的路径是否完整,路径要在 FreeNAS 的 Shell 里用 ls /mnt/你的存储池/具体目录 命令验证一下,另一个原因是虚拟机名称和已有文件冲突,删除之前出错的虚拟机,再到 Shell 里清理 /mnt/池名/.system/vms 目录下的残留文件,重新创建时就不会报错。
FreeNAS 开虚拟机这件事,硬件门槛说高不高,说低也不低,关键在于虚拟化支持和内存容量,按上面的流程走,把服务开启、镜像上传、参数配置这几步做好,再把 CPU、内存、磁盘的分配比例控制好,一台 FreeNAS 同时跑下载机、软路由和轻量级服务器都不是难事。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/623747.html





