
从成品NAS换到自组FreeNAS 11.3这个念头其实在我心里盘踞了很长时间。之前两年多我用的是一台四盘位成品NAS日常存照片、跑下载、备份手机相册表面看没什么大毛病但真到想扩容、想加功能的时候就很被动盘位满了不好换、配置太低跑不动虚拟机、系统里很多功能是黑盒出了问题只能按厂商逻辑来。后来看到一个朋友用FreeNAS组了一台八盘位的机器ZFS的可靠性、快照和复制功能我都眼馋很久加上11.3这个版本在易用性上有明显进步干脆趁着周末把方案定了下来。这篇文章就是我搭建和使用了几个月后的完整心得从为什么选11.3、硬件怎么配到安装、建池、共享、插件以及后面踩过的各种坑都一次性讲透给想自组NAS的人一个能直接参考的路线。1. 从成品NAS转向FreeNAS先把这笔账算清楚1.1 成品NAS好是好但总有些地方让人憋屈成品NAS最大的优势是省心开箱、插盘、联网跟着向导点几下就能用。可是当你的需求稍微超过“共享文件夹”这个层面难受的地方就陆续冒出来了。第一个是盘位。四盘位的机器看着很够用但你还得分出一块或两块做校验和冗余真正能存的容量其实没多少。等把照片和电影塞进去之后想再加盘只能整机淘汰或者外接设备数据和设备绑得太死。第二个是性能。成品机为了控制功耗和成本很多用的都是低功耗平台跑跑SMB没问题但一旦开索引、跑缩略图、装几个Docker容器CPU就长时间满载这个时候操作界面都跟着卡。第三个问题更隐蔽权限、快照、同步这类数据管理功能在成品系统里往往是简化过的。要么只能选预设的方案要么很多操作不够透明。比如文件权限出了问题你很难知道系统内部到底发生了什么。所以对我来说自组FreeNAS不是图新鲜而是把数据的控制权拿回自己手里。1.2 11.3为什么值得在这个节点入局FreeNAS的版本分支不少我之所以直接锁在11.3而不是最新的某个测试版主要是因为11.3在架构和易用性上是真正的分水岭。11.3把原来的插件管理从Warden换成了更现代的iocage创建Jail的速度和稳定性明显提升它同时引入了新的界面风格信息密度更高操作链路也更合理老用户可能觉得改得突兀但从新用户角度看上手门槛降了不少。还有一个关键点是复制Replication任务在11.3里配置异地备份和本机快照推送变得非常直观不需要再通过命令行敲一堆参数。当时让我下决心的另一个原因是这个版本已经经历了好几个小版本的修复社区讨论资源也非常多。FreeNAS的文档虽然全面但新手遇到的很多问题是“发生了没预料到的状况”而不是“不知道按钮在哪”这类经验在论坛和博客里沉淀得足够多遇到问题能搜到相似案例对第一次搭建的人来说是很重要的安全感。还有一点要提醒FreeNAS 11.3对硬件的默认要求已经比早年高了不少官方说最低内存8GB实际体验是16GB起步才舒服。这个需求也是我后面选硬件时优先考虑内存通道数和扩展性的原因。2. 硬件选型一个能长期稳定跑的装机方案是怎么定下来的2.1 最容易被忽略的存储控制器问题自组NAS最经典的误区是随便找一块家用主板、插几块硬盘就用。表面看能用但家用主板的SATA接口数量有限而且很多主板所谓的RAID功能其实是软件RAID扩展性和稳定性都不够。FreeNAS的根基是ZFSZFS完全不需要硬件RAID卡的参与所有数据冗余和校验都由系统层自己完成。所以选择硬件的核心逻辑反而变得简单不要买带RAID功能的阵列卡而是要用一块HBA卡Host Bus Adapter主机总线适配器做硬盘通道的扩展。我最初踩过这个坑。当时图便宜收了一块带硬RAID功能的扩展卡默认创建了一个RAID卷后交给FreeNAS用。结果在创建池时ZFS性能奇差原因是数据经过了RAID层又被ZFS再次管理这层“套娃”既影响性能也影响故障时的数据恢复。后来换成一张刷成IT模式的HBA卡让硬盘直接暴露给系统ZFS才能完整拿到每个盘的SMART信息和控制权。如果你也要买HBA卡记住两件事一是要IT模式而不是IR模式二是确认卡的固件支持直通刷卡之前先查好卡的具体型号和兼容性。2.2 网卡、内存和ECC的那些匹配问题FreeNAS本质上是FreeBSD系统对硬件的兼容性跟常见桌面板并不完全一致。第一个要重点确认的是网卡。我一开始用主板上板载的Realtek网卡结果测速稳定在读写五六十MB/s还偶尔断流。后来查了FreeBSD驱动支持情况发现问题出在网卡驱动上。换了一块非常普通的Intel千兆网卡后同样环境下SMB读写轻松跑满115MB/s左右。如果有条件建议直接上万兆网卡但至少要确认芯片方案是被FreeBSD支持比较好的。第二个是内存。ZFS对内存的需求没有一个“上限”它会用动态ARC缓存尽量把热点数据留在内存里。前文提到16GB是舒服的起点不是说8GB不能用而是当你是多块大容量硬盘做校验池时内存不够会明显影响随机读性能而且ZFS检查Scrub这类操作也会更慢。ECC内存的问题我说说自己的看法如果主板和CPU支持尽量用ECC。ZFS对数据校验很严格如果内存本身出错坏数据可能被写入缓存再落到磁盘这时代价很大。说“必须ECC”有点绝对但对存储服务器这种长期通电机种来说ECC是性价比最高的保险。我选择的是支持ECC内存的入门级服务器平台整体功耗和噪音也能接受。2.3 硬盘盘位与SMR避坑硬盘选型是整个系统里最不该省钱的地方。我一开始图容量便宜买了一批某品牌的NAS专用盘结果其中有几块在持续写入时掉速严重查了颗粒规格才发现是SMR叠瓦式磁记录盘。SMR的典型特征是写入缓存用完以后速度断崖式下跌在ZFS的持续写入和Scrub场景下非常难受。所以我的建议是选盘之前一定要查清楚目标型号是CMR还是SMR同一个产品系列里面不同容量甚至不同批次都可能混用不同记录方式。做存储池的话尽量选CMR盘或者你确定自己负载比较轻SMR盘只做冷存储也能接受。考虑到ZFS的校验机制组RAIDZ时每块盘的性能一致性非常重要某一块盘拖后腿会直接拉到整个池的写入速度。盘位设计我后来也做了调整。原计划直接用普通塔式机箱但后来发现硬盘散热和减震都很重要毕竟数据可靠性不仅取决于盘本身也取决于工作环境。我现在用的方案是机箱内带独立硬盘笼前置风扇直吹整体温度稳定在40度以下。如果你盘多这一点不能图省事。2.4 我的最终配置单与理由最终我定下来一套成本和性能都相对均衡的平台。CPU用的是入门级的至强E3系列四核八线程不支持核显但处理存储和转码绰绰有余主板是支持ECC的入门级服务器主板有8个SATA接口内存上了32GB ECC DDR4差不多把ZFS ARC给喂到了一半的水平网卡是第一张Intel千兆为了测试万兆还专门插了一张Mellanox的ConnectX-3双口万兆卡驱动在FreeBSD下老而弥坚。存储部分我没有上来就追求一堆大容量盘。起初是4块4TB的CMR盘做RAIDZ1后来数据量上来了又加了4块迁移成了两个池分开管理。系统盘用了两个32GB的SATA接口小容量SSD做镜像坐系统池不放业务数据这样的好处是系统故障时重建非常快而且业务数据不会因为系统盘损坏而受影响。这些年组下来我对这套配置的评价是“刚好够用且留有合理余量”。你如果只是普通家庭存储不需要那么强的计算能力G5400这类入门级CPU配16GB内存也完全够用但网卡一定要认真选。3. 安装和初始配置从ISO到第一次进入Web界面3.1 U盘启动盘制作与安装中的小插曲FreeNAS 11.3的安装过程其实非常简单官方ISO做启动U盘引导进安装界面选择目标系统盘确认之后就会把系统写进去。这里有一个容易忽略的点安装程序会把整个目标盘作为系统设备使用而不是像普通Linux安装那样还有单独的swap分区和boot分区规划。所以千万不要手滑把数据盘选成系统盘否则整块盘会被覆盖。另一个点是系统盘建议用SSD小容量就行。有朋友试着用机械盘做系统盘开机和界面的响应速度都会明显变慢而且系统日志频繁读取的时候整台机器都会有一点迟钝。我安装时遇到的一个小插曲是U盘引导时卡在了黑屏状态。排查后发现是U盘的主控芯片兼容性问题换了一个知名主控的U盘后一次引导成功。这个现象不多见但如果碰到了不要盲目怀疑镜像问题先换U盘试。安装完成拔掉U盘重启看到控制台菜单的那一刻意味着系统已经起来了。这时候默认的网络可能是DHCP自动获取所以我会先用路由器后台找到这台机器的IP再从浏览器进入Web界面。首次登录账号是root密码是你在安装时设置的root密码。3.2 控制台设置与网络配置很多人装完FreeNAS习惯直接就进Web界面点下一步但有些基础配置其实在控制台阶段确认更可靠尤其是网络部分。在控制台菜单里选择“Configure Network”进入网络设置我先把管理接口设成静态IP避免以后路由器DHCP地址变化导致找不到机器。这一步强烈建议做因为你后续要配置NFS、iSCSI或各种同步任务如果IP老变所有服务都得跟着改。接着设置DNS、默认网关。DNS很重要FreeNAS要用它来解析更新服务器、时钟服务器等等。我把NTP同步也顺手检查了一遍因为ZFS和快照对时间非常敏感时间错乱会导致快照覆盖、复制任务无法正常判断增量。控制台里还有一个“Shell”入口很多人会忽略它。等系统出了问题、Web打不开的时候Shell是唯一能帮你救命的通道。我建议新手至少在Shell里学会看两个命令zpool status和ifconfig这能帮你快速定位池状态和IP配置问题。3.3 创建存储池时的那些注意点Web界面登录后在“存储”菜单里可以创建新的存储池。这一步是FreeNAS的核心我把当时踩过的点总结一下。第一点是校验方式的选择。创建池时会让你决定用哪种布局最常见的选项是Stripe、Mirror和RAIDZ系列。Stripe没有冗余不要碰Mirror是镜像两块盘互为备份RAIDZ则类似传统RAID5/6。不要上来就追求RAIDZ2组多大的池、选哪种冗余完全取决于你有几个盘、能接受多长的重建时间。我自己在4盘阶段做的是RAIDZ1后来盘多了才切换为双池方案。第二点是“据纸质盘”容易掉进的坑。FreeNAS会在创建池时让你选择添加哪些硬盘如果你有几块旧盘或测试盘混在里面ZFS会忠实按照你的选择创建但之后想从池里去掉一块盘是很麻烦的。所以在创建之前最好在系统里先确认每个盘对应的设备号和容量标签而不是只信盘架位置。第三点是池名。ZFS的池名在创建后是不能改的建议用有意义的名字比如tank、data这类不要用“新卷”这种没信息量的名字。名字会出现在后续所有挂载路径里改起来很伤筋动骨。4. 数据集、共享和自动任务这次不像普通NAS那么简单了4.1 池拓扑选择镜像还是RAIDZ很多人问我“到底该做RAIDZ1还是RAIDZ2”我的回答始终是一句话“这取决于你害怕的损失是什么而不是你希望省多少空间。”RAIDZ1类似RAID5允许坏一块盘不丢数据所需校验空间是单盘容量RAIDZ2允许坏两块校验空间加倍。从空间利用率看磁盘越多RAIDZ的性价比越高但有个关键点是重建风险。大容量盘重建需要很长时间重建期间如果第二块盘也出问题RAIDZ1就宣告失败。所以我个人建议如果你的数据真的重要、盘的数量又不高于6块RAIDZ2比RAIDZ1更稳妥如果你只有4块盘且希望有更好的扩展灵活性那两组两盘镜像也许是更合理的选择因为镜像池扩容、迁移、重平衡都比RAIDZ灵活。我自己的实际情况是电影、镜像这类可再生的数据放在RAIDZ1里求容量而照片、工作文档放另一组Mirror池求的是稳定和容错。分区管理能够让你针对不同数据制定不同的冗余策略这也是ZFS相比传统NAS系统的一大优势。4.2 数据集划分与配额在ZFS里池建好之后你还需要在里面创建数据集。一个数据集可以简单理解为单独的文件系统有自己的挂载路径、配额、快照和权限设置。我最常用的做法是把不同的业务类型拆成不同数据集。比如一个数据集放个人文件共享一个数据集放媒体库一个数据集放Docker/应用的数据还有一个数据集挂下载目录。这样做的好处是你可以针对不同数据集设置不同的快照周期、复制任务和压缩策略。压缩方面ZFS的lz4压缩在11.3里已经可以按数据集开启。日常使用建议开启因为它几乎不占CPU却能在存储文本、日志和部分图片时节约不少空间。需要注意压缩是针对数据集生效的不是对池生效所以创建数据集的时候就想清楚未来使用场景。配额设置我当初也没有太在意直到有一天下载任务把数据盘塞满才意识到需要在下载数据集上设置一个比磁盘总空间略小的配额防止它吞掉别的数据集的可用空间。ZFS的配额是按数据集上限做硬限制的这一点比文件系统层的“目录配额”简单很多。4.3 共享与用户权限Windows访问不顺畅的问题创建了数据集接下来就要把它共享出去。FreeNAS支持SMB、NFS、AFP、iSCSI等多种方式普通人最常用的是SMB。11.3的SMB共享配置比老版本人性化但仍有一个地方特别容易让新手困惑权限的“鱼和熊掌不可兼得”问题。FreeNAS对数据集的访问权限有两种模型一种是类Unix的普通权限POSIX一种是Windows风格的ACL。你可以在共享时开启ACL模式这样可以在共享里对用户或用户组做细粒度授权但代价是如果你在Linux或命令行里直接改目录权限很可能会破坏ACL结构反而导致共享无法访问。我遇到过一次很典型的故障新建了一个共享Windows端能连接但打开文件夹提示没有权限。排查时发现是数据集的属主是root而访问用户是普通用户。解决方法是登录Web界面在数据集权限编辑器中把属主改成对应的用户或组同时确认共享里启用了“允许来宾访问”或正确配置了“用户映射”。如果是中小型家庭环境其实建议用最简单的模式共享里开启“启用ACL”然后直接指定一个权限最合适的管理员用户其他用户按需要建立账号并加入对应组。先把共享跑通再研究更细粒度的控制。4.4 快照和ScrubZFS的快照是我决定从成品NAS转出来的最重要原因之一。快照是瞬时完成的几乎不占空间直到源数据变化后才会记录差异。你可以对一个数据集设置定时快照每小时一个、每天一个、每周一个保留多个版本这样误删文件后可以从任意快照恢复。11.3的快照界面非常直观在“存储”菜单中可以对数据集启用定期快照任务。我之前用成品NAS的时候也号称有“多版本保护”但真误删了一批照片之后才意识到成品NAS的快照是卖了很大存储空间的而ZFS快照在这种场景里几乎不占额外空间。一次误删事故之后我连上快照一点点找回文件整个过程干净利落。Scrub是ZFS特有的数据完整性校验任务作用是定期读取池里的所有数据并对比校验和发现静默损坏后尝试自动修复。这个功能相当于给所有硬盘做定期体检。我创建了每月一次的Scrub计划一般选在工作日的凌晨执行。第一次完整Scrub大约用了七八个小时之后每次都稳定在这个范围内。5. 从Jail到插件让NAS做点NAS之外的事5.1 iocage与旧插件系统的差异FreeNAS 11.3最大的变化之一是插件系统彻底转向iocage。如果你接触过早期FreeNAS 9.x或11.0的老版本应该还记得Warden时代的Jail管理创建速度不稳定结构分散。iocage下的Jail创建速度和一致性都好了很多而且每个Jail都有独立的文件系统层级和网络栈。11.3里可以方便地在“插件”菜单安装官方仓库里的插件比如Plex、Nextcloud、Syncthing等等。安装插件会自动创建一个对应的Jail把应用放进隔离环境里运行。这样做的好处是应用升级、出问题时不会拖累主系统。我曾经遇到过插件应用崩溃导致整个系统负载异常重启对应Jail就好宿主没有任何影响。不过要注意插件本质上是打包好的应用想要真正灵活还是得手动创建Jail并安装软件。插件能省掉手工配置但人家维护者更新不及时你用的可能是几周甚至几月前的包。我的经验是主流大件用插件小众工具直接进Jail里用pkg安装两者混用最舒服。5.2 装一个媒体服务的实际流程和坑我安装的插件里最常用的是Plex。搭建流程不复杂Web界面的插件页点击安装选择版本等待下载安装即可。装完后需要在Plex界面里把媒体库指向挂载点这就会涉及到标题的坑如何让插件Jail访问NAS主机的数据目录。在11.3的默认配置里Jail对底层目录没有自动访问权限除非你在创建插件或Jail时把宿主机的存储池挂载进去。我最初装完Plex后在添加媒体库时死活找不到数据集查了一圈才发现是安装阶段没有添加存储挂载点。解决方法是编辑这个Jail的配置在“挂载点”中把宿主机的媒体数据集路径加到Jail对应路径下然后重启Plex服务。另外一个容易遇到的问题就是硬件转码。Plex的硬件转码功能需要把显卡设备透传给Jail11.3对核显或独立显卡的透传支持还可以但不同环境下驱动差异很大。我测试了多次发现失败率高、收益低后来干脆放弃硬件转码依靠服务器的CPU软件转码1080p转720p是完全吃得住压力的。如果你主要观看设备不自持硬解4K建议先评估一下服务器CPU能不能扛住不行再加显卡。5.3 虚拟机要不要碰FreeNAS的虚拟化功能基于bhyve属于FreeBSD自研的虚拟机方案。11.3的虚拟机管理界面已经很完整可以创建Windows、Linux和FreeBSD虚拟机。我的态度很明确可以玩但不要把关键业务全部押进去。bhyve的兼容性和性能跟成熟方案相比还有一些距离特别是一旦虚拟机里跑负载很高的任务宿主机的CPU、网络和存储资源都会有明显压力间接影响NAS的核心功能。我自己的使用方式是跑了一个轻量级的Linux虚拟机用来跑一些只在Linux下才有工具的定时脚本。更重的业务我宁可放到Jail里跑或者用另一台小主机专门处理。如果你对虚拟化有刚需可能需要考虑换平台FreeNAS更适合的定位始终是“存储和存储周边的轻应用”。6. 跑了几个月后的复盘值得表扬的和想吐槽的6.1 稳定性与数据保护的真实体验截至写这篇心得的时候这套FreeNAS 11.3已经连续运行了几个月。这几个月里系统盘和存储池都没有出现过一次异常中断固件更新也都正常完成。让我印象最深的一次是某块硬盘在Scrub阶段报出了大量校验错误。当时ZFS并没有直接把整块盘标记为故障而是把那些扇区的坏块自动重定向到预留空间同时记录了错误信息。我在仪表板里看到预警后果断把那块盘更换掉全程没有中断服务也没有丢一个字节的数据。换成以前用成品NAS可能得先做备份、再全盘替换、最后慢慢重建整个过程复杂得多。ZFS对数据完整性的持续校验能力和热替换能力确实值回配置成本。但也不是说FreeNAS完全不用管。我每两周会看一眼存储池的健康状态和硬盘SMART信息每个月固定检查一次Scrub报告。系统的一切可靠都建立在“你及时知道出了问题”的基础上所以邮件告警一定要配好。11.3可以在系统设置里配置告警通过邮件发送这一步我强烈建议尽早做。6.2 性能和功耗的取舍性能方面千兆网络下SMB传输可以稳定跑满110-115MB/s无论是大文件拷贝还是小文件批量写入都能保持一致。这个数据让我整个体验非常踏实因为成品NAS的某些低价型号在混合读写时经常掉到六七十。万兆网络我也做了测试多线程传输能跑到800MB/s以上瓶颈主要在网络和中转设备的处理能力。如果你不是有很多视频剪辑或虚拟机镜像要频繁拷贝万兆方案可以往后放优先级没有硬盘可靠性那么高。功耗是我一直在权衡的点。我这套平台空载大约30到35瓦满载大概70瓦具体取决于硬盘数量和CPU负载。对这个性能级别来说可以接受但你要是真的追求低功耗用G5400这类低端桌面CPU配合更少盘位会明显降低。需要注意的是硬盘从启动到稳定运行功耗差异很大所以如果家里经常断电或不稳定UPS是不可或缺的。我曾经有一次停电时把Scrub中断了重新开机后ZFS需要重新校验虽然没有丢数据但整个池在修复完成前性能都受影响。6.3 一些可以少走弯路的日常小建议最后再分享几个日常使用中最实用的小建议这些是踩过不少次坑后才养成的习惯。我强烈建议给系统盘做镜像。两个小容量SSD组启动池镜像看似浪费了一个盘位但系统盘损坏时能免去重装系统、重新导入池的麻烦而且SSD主控出问题的概率并不比机械盘低。数据盘则根据重要程度合理选择冗余级别至少保证重要数据在另一台机器上有备份不要把FreeNAS当成唯一副本。对于初次接触FreeNAS的朋友我建议把界面和任务菜单都自己点一遍尤其是“存储”和“系统”这两个模块下的所有选项。11.3的界面组织已经非常好懂了大部分功能都能从界面完成命令行只是辅助手段。不要一上来就到处抄配置命令自己理解了再做后面维护起来会轻松很多。另外系统安装完成之后建议第一时间做一个系统配置文件备份路径在“系统”-“高级”-“配置”里可以手动下载一个后缀为.db的备份文件。以后不管是你改了网络、改了共享还是加了用户出问题时都还有退路可走。上面这些经验就是我折腾FreeNAS 11.3以来觉得最值得分享的核心内容。从硬件选型到日常保养每一步都可能踩进不同的坑但当你亲手拼出一台数据可控、运行稳定且能按需扩展的存储设备后那种踏实感是成品NAS完全给不了的。如果你也正在计划组一台建议先从自己最核心的需求出发再用这篇文章作为避坑参考逐步把方案落地。