这件事到底靠不靠谱,先给你一句准话
在虚拟机里搭建 FreeNAS(现已更名为 TrueNAS CORE)不仅能实现数据安全存储,而且非常适合学习、测试、以及非关键业务的数据归集,你完全可以用一台普通的台式机或老旧服务器,通过 Proxmox VE 或 VMware ESXi 虚拟化平台,把硬盘直通给虚拟化的 FreeNAS 系统,再基于 ZFS 文件系统构建带冗余的存储池,最终在家里或办公室打造出一个支持快照、复制和校验的数据堡垒。
为什么要在虚拟机里跑 FreeNAS,而不是直接物理机安装
很多朋友一听到“虚拟机里跑 NAS”,第一反应就是性能损失。行业共识认为,只要正确配置硬盘直通和网卡直通,虚拟化的性能损耗可以控制在相当低的水平。
- 硬件利用率更高:一台物理机可以同时跑 FreeNAS、软路由、Windows 下载机等多个系统,不必为单一功能单独买一台机器。
- 快照和迁移更灵活:虚拟化平台自带的快照功能,可以在升级 FreeNAS 系统前先打一个保险,出问题秒回滚。
- 硬件兼容性更宽容:FreeNAS 对某些老网卡、老 RAID 卡支持不佳,虚拟化平台可以帮你模拟出兼容性最好的硬件。
- 缺点是存在的:少数小众功能(比如直通 NVMe 硬盘做 SLOG)配置稍微复杂;如果宿主机本身不稳定,所有虚拟机都会受影响,包括你的 FreeNAS。
虚拟机安装 FreeNAS 教程里最核心的一句话是:不要虚拟磁盘,要直通物理硬盘,一旦你明白了这个原则,后面的路就顺畅了。
虚拟机安装 FreeNAS 教程:从建虚拟盘到配置存储池
第一步:选择合适的虚拟化平台,别再纠结用什么
目前市面上主流的选择就三个:
| 平台 | 适合谁 | 特点 |
|---|---|---|
| Proxmox VE | 爱折腾的极客、家庭用户 | 开源免费,基于 Debian,Web 界面友好,支持 ZFS 直接做底层 |
| VMware ESXi | 企业 IT 运维、老手 | 稳定到可怕,驱动兼容性挑剔,免费版有单机 CPU 限制 |
| VirtualBox | 纯新手体验 | 最容易上手,但性能损耗相对较大,不适合长期 7×24 小时跑数据 |
如果你问我推荐哪个,Proxmox VE 是最优解,因为它本身就是基于 Debian 的系统,对 ZFS 的支持非常完善,而且直通硬盘只需要在 Web 界面上点几下就行,不用命令行敲一堆参数。
第二步:下载系统镜像和规划虚拟机参数
去 FreeNAS 官网下载 TrueNAS CORE 的 ISO 镜像(现在建议直接下载 TrueNAS CORE 13.0 之后的版本,稳定性和易用性都很成熟)。
创建虚拟机的时候,参考以下参数配置:
- CPU:给 2 核以上,如果你的工作负载包含多个客户端同时读写,建议给 4 核。
- 内存:这是最关键的,FreeNAS 的 ZFS 文件系统吃内存大户。最低 8GB,强烈建议 16GB 起,内存越大,缓存命中率越高,读写性能越好。
- 磁盘控制器:BIOS 模式默认是 IDE,请务必改成 SATA 或 VirtIO,FreeNAS 对 IDE 虚拟磁盘的支持不够好,容易出现硬盘无法识别或 SMART 信息异常的问题,很多人在虚拟机里装 FreeNAS 后找不到硬盘,80% 就是因为这一步没做对。
第三步:把物理硬盘直通给 FreeNAS,这一步最核心
记住一个原则:FreeNAS 本身运行在虚拟磁盘上,但你存数据的硬盘必须是物理直通。
在 Proxmox VE 中这样操作:
- 在宿主机上先执行
lsblk查看所有物理硬盘的名字,找到你要分配给 FreeNAS 的数据盘(/dev/sdb、/dev/sdc)。 - 编辑虚拟机的配置文件
/etc/pve/qemu-server/101.conf,在文件末尾加上:scsi0: /dev/disk/by-id/ata-WDC_WD40EFRX-68N32N0_WD-WCC7K7FLJHK7,size=4000787030016把这行命令中的 id 替换成你自己硬盘的实际 id,用
/dev/disk/by-id/方式引用,比直接写/dev/sdb更可靠,因为重启后设备名可能会变。 - 保存文件并启动虚拟机,进入 FreeNAS 安装界面,这时候你会看到直通硬盘已经能被系统正确识别了。
如果你用的是 ESXi,可以用 RDM(Raw Device Mapping,原始设备映射)方式同样实现物理硬盘直通。
第四步:安装 FreeNAS 系统并配置存储池
用 ISO 引导启动虚拟机,选择安装目标盘(建议单独分配一块 16GB 以上的虚拟磁盘给系统安装,不要和存储盘混用),安装完成后重启,进入控制台界面,记下自动获取的 Web 管理地址。
打开浏览器进入 Web UI,默认账号是 root,密码是你安装时设置的,接下来配置存储池:
- 点击左侧菜单的 存储 → 创建池。
- 把刚才直通的那块物理硬盘拖入右侧的“数据 VDev”区域,选择布局方式。如果只有一块盘,选择条带(Stripe)模式;如果有两块盘选择镜像(Mirror)模式;四块盘及以上建议选择 RAID-Z1 或 RAID-Z2,镜像和 RAID-Z 的好处是坏一块硬盘数据不丢,代价是可用容量减半。
- 勾选“加密”选项可以启用 ZFS 原生加密,这里的加密能保护你在硬件被盗的情况下数据不被读走。
创建完成后,点击存储池右侧的三个点,选择“添加数据集”,给你的共享文件夹起个名字,然后到“共享”菜单里开启 SMB 共享,Windows 电脑在文件管理器里输入
\你的FreeNAS地址 就能直接访问了。
FreeNAS 虚拟机怎么榨干性能,又保证数据安全
跑通基础功能不算本事,真正让 NAS 好用的是下面这几个细节。
性能优化:这几项设置能让你少走半年弯路
- 给虚拟机开启 NUMA:在 Proxmox 的虚拟机 CPU 设置里勾选 NUMA 选项,配合多核 CPU 能显著降低内存访问延迟。
- 网卡选 VirtIO 半虚拟化:默认的 Intel e1000 网卡只能跑够千兆,换上 VirtIO 可以跑到 2.5G 以上,前提是你要在 FreeNAS 里手动加载驱动。
- 虚拟磁盘缓存机制:在 Proxmox 虚拟机硬件设置里,把虚拟磁盘的缓存模式改成 Write Back,可以显著提升写入速度,但要确保你有 UPS(不间断电源),否则突然断电会丢数据。
- 内存预留:如果是 16GB 内存的宿主机,至少给 FreeNAS 虚拟机预留 12GB 并勾选“锁定内存”选项,这样 ZFS 的 ARC 缓存才能真正生效。
数据安全:比 RAID 更重要的其实是快照
很多人以为做了 RAID-Z 就万事大吉,这其实是误解,RAID 解决的是磁盘物理损坏的问题,它能防止你因为一块硬盘坏了而全盘灭失,但它不能救你于误删除文件、中勒索病毒、或者自己手滑覆盖了重要文件。
ZFS 的杀手锏是快照(Snapshot),在 FreeNAS 的 Web UI 里:
- 进入 存储 → 数据集 → 编辑快照计划。
- 设置每 6 小时做一次快照,保留最近 48 个。
- 再把快照远程复制到另一台机器(或者同一台宿主动态里的另一个物理磁盘),这样即使整个机器被火烧了,你还有异地的一份额。
- 开启“定期快照”任务后,可以顺手在“任务计划”中配置一条命令:
0 2 root zfs snapshot data@daily-$(date +%Y%m%d)这段命令每天凌晨 2 点自动执行一次快照,保留 7 天的滚动备份。
快照不等于备份这个行业里无数前辈踩过的坑,值得你记在心里,快照和原数据在同一个池里,磁盘挂了快照照样丢,所以完整的方案应该是:本地 RAID-Z + 本地快照 + 远程异地复制,三层防线缺一不可。
FreeNAS 虚拟机和其他 NAS 系统怎么选
做决定之前,除了性能,还有一个因素也要考虑:你到底需要多强的存储协议支持。
| 系统 | 协议支持 | 适合人群 |
|---|---|---|
| TrueNAS CORE(原 FreeNAS) | SMB、NFS、iSCSI、FTP,兼容性最好 | 注重数据完整性、想要企业级 ZFS 功能的用户 |
| OpenMediaVault | SMB、NFS、FTP | 追求轻量、插件生态丰富的用户 |
| Unraid | SMB、NFS、Docker 原生支持 | 想要灵活扩容硬盘、爱跑 Docker 应用的用户 |
真要说 FreeNAS 优胜的地方,ZFS 的自愈能力是独一份的,它在读取数据时,会对每个数据块做校验,如果发现校验值不匹配,而且有对应的镜像副本或 RAID-Z 奇偶校验,它会自动用冗余数据修复损坏部分,然后把正确的数据写回磁盘,这个机制能有效降低“静默数据损坏”发生的概率,而传统 RAID 基本没有这种能力,如果你存的是多年积累的照片、设计素材或代码仓库,这个特性是值得付出的。
关于搭建 FreeNAS 虚拟机的硬件要求,建议你的宿主机 CPU 至少 8 线程以上,内存不小于 16GB,因为是虚拟化再加 ZFS 的内存开销,尤其在首次构建存储池时,ZFS 会进行全盘顺序校验,这个过程往往持续十几个小时,如果你的虚拟机内存不足,系统虽然能跑起来,但写入速度会掉得非常离谱。
一句话回到原点
在虚拟机里搭 FreeNAS 完全可行,关键是直通硬盘 + 足够的内存 + 定期快照三件套,它能让你用最小的硬件成本换来接近企业级的数据安全感,虚拟化和数据安全本身并不冲突,冲突的只是你的懒不肯做备份,什么系统都救不了你。
问答:虚拟机做 NAS 的常见疑虑
Q:虚拟机里做 NAS,性能损失到底有多大?
A:绝大多数场景下,只要做物理硬盘直通和网卡 VirtIO,千兆局域网下的 SMB 传输速度可以达到 110~118 MB/s 左右,这和物理机安装 FreeNAS 的表现几乎一致,只有当你频繁进行小文件随机读写或运行多线程数据库应用时,虚拟化带来的损耗才会明显提升,这种情况下可以给虚拟机多分配几个 CPU 核心,效果改观比较大。
Q:FreeNAS 的 ZFS 至少要多大内存才够用?
A:ZFS 的 ARC 缓存机制决定了它喜欢内存越多越好,但实际使用中 16GB 是一个很舒服的起步线,在虚拟机环境中,系统数据量每达到 1TB,建议至少增加 1GB 内存用于元数据缓存,所以如果你的存储池规划是 8TB,就往 24~32GB 的方向配,别抠这点内存钱。
Q:虚拟机里跑 FreeNAS 需要独立网卡吗?
A:如果只是家庭自用,宿主机的板载千兆网卡加上 VirtIO 虚拟网卡完全够用,但如果你有多终端并发访问 NAS、编辑 4K 视频素材或跑虚拟化集群,那就建议给宿主机加一张四口千兆网卡或双口万兆网卡,其中两个口做“网卡直通”直接分配给 FreeNAS 虚拟机,这样数据走独享通道,延迟明显降低,性价比相当高。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/620828.html





