FreeNAS 11.3到现在还有人在用,多半是被ZFS拴住了——快照、压缩、校验和这套组合拳用惯之后,很难再回去用普通文件服务器方案。前阵子我自己给两台机器装过这个系统,一台是朋友的,一台是工作室里做备份用的,折腾了两周,踩了无数坑,也沉淀出不少说明书上不会写的门道。这篇东西就围绕FreeNAS 11.3从选硬件、装系统、建存储池、配共享、做快照复制,到日常维护和问题排查,把我实际走过的路完整讲一遍。如果你正准备组一台基于FreeNAS 11.3的NAS,或者已经在用但想优化一下,这份心得应该能帮你少走点弯路。
1. 为什么选FreeNAS 11.3?先搞清楚这个版本的位置
1.1 11.3到底是什么样的版本
FreeNAS 11.3是整个FreeNAS 11系列后期的成熟版本,基于FreeBSD 11.3,也是后来改名TrueNAS CORE之前最后一波以FreeNAS命名的正式版本。它的Web管理界面是整体重写之后的形态,布局、任务向导都比11.1、11.2时代清晰不少;存储池创建、快照、复制这些核心操作的入口也统一了。装上之后最直观的感受是“接近现代化NAS系统”,该有的功能都齐了,又不像后续新版本那样频繁调整界面和插件兼容规则。
为什么选它而不是更早或更新的版本?更早的版本界面和功能确实落后;更新的TrueNAS CORE虽然还在继续更新,但插件生态、Jail管理方式都变了,一些老配置文件迁移之后不一定能用。如果你手头已经有针对FreeNAS 11.3的一套配置,或者只是想稳定地跑文件存储、备份、共享这些本职工作,11.3完全够用。它不像新版本那样激进,支持周期结束后的安全风险,对于放在内网里的存储设备来说其实影响不大——前提是你别把它直接暴露到公网,做好访问控制。
1.2 适合场景与劝退场景
适合的场景:家用影音存储,工作室里多台电脑共享文件,给拍摄素材做备份,服务器或虚拟机的备份落地点,轻度跑几个Jail服务。这些场景的特点是“读多写少、大文件连续读写为主”,正好是ZFS和FreeNAS最舒服的地方。
不适合的场景:长期承担高并发的数据库存储、大量随机小文件秒级读写、毫无冗余设计就只想把一堆闲置盘堆成一个池子。不是说FreeNAS 11.3做不了这些,而是要在硬件和参数上做很多额外投入。有这预算和精力,不如用专门方案。
| 场景 | 是否推荐 | 理由 |
|---|---|---|
| 家庭影音共享 / 文件存储 | 推荐 | 大文件连续读性能好,快照保护方便 |
| 小型工作室共享目录 | 推荐 | SMB/NFS权限控制清楚,稳定性够 |
| 备份落地点(目标端) | 推荐 | ZFS复制、校验和机制比很多方案可靠 |
| 虚拟化环境生产存储 | 不推荐直接拿来用 | 需要SLOG、高速网络、复杂网络配置 |
| 高并发数据库 | 不推荐 | ZFS对随机小IO的优化需要专门调参 |
| 系统盘/数据盘混用 | 禁止 | 系统盘故障或频繁写入会影响池稳定 |
1.3 资源诉求的整体认知
在动手之前,先想清楚这台NAS要承担什么角色。只做文件共享和备份,那它就是“存储底座”;跑虚拟机和Jail,那它就多了一层计算职责。目标不同,硬件投入和后续配置策略完全不同。我强烈建议把“存储”和“计算”分开看待,至少在数据盘上不要为了跑服务而牺牲稳定性和冗余设计。
2. 硬件选型与装机前的规划
2.1 内存、CPU、网卡的取舍
很多人关心到底要多少内存。官方指南有过“1GB内存对应1TB存储容量”的说法,虽然粗,但方向是对的。ZFS需要把热点数据放进ARC(自适应缓存),内存越大,缓存命中率越高,实际读写体验越好。我自己一台8盘位RAIDZ2的机器配了32GB内存,同时开着几个Jail,跑SMB持续拷贝时内存占用长期在15GB到20GB之间,剩下的才给系统和其他进程用。如果内存只有8GB,系统也能跑,但大文件读取时会明显感觉缓存不够,出现性能波动。
CPU方面不用太焦虑。ZFS的压缩和校验和计算确实吃CPU,但LZ4压缩算法非常轻量,现在一颗普通四核处理器就足够应付十盘位左右的存储池。真到万兆网络的场景,才需要考虑网卡中断绑定和CPU频率。内存、CPU、磁盘这三角关系里,内存排第一,磁盘排第二,CPU最后。
网卡建议优先选服务器级芯片的方案,尤其是长期开机的运行环境。板载消费级网卡不是不能用,但偶发断流、驱动不稳定这类问题会让人很头疼。如果只是千兆网络,选一款驱动成熟、散热良好的网卡即可;如果打算上万兆,再考虑光口或电口的具体方案。
2.2 磁盘选择与CMR/SMR
磁盘是最容易被低估的部分。买盘之前建议先确认一个词:CMR还是SMR。SMR叠瓦盘在持续写入大量数据时会掉速,而且一旦需要重建阵列,写入放大严重,性能和稳定性都不行。认准CMR盘再买,哪怕贵一点,长期用下来都值。
另外,缓存盘的定位要清楚。小容量SSD可以做L2ARC读缓存,但如果内存足够大、读负载不高,完全可以不配。SLOG闪存设备影响的是同步写性能,家庭和一般工作场景基本用不到,这笔钱可以先省下来。真正值得关心的是数据盘本身的质量和冗余规划。
2.3 阵列卡与盘位规划
阵列卡的选择有一条铁律:不要用硬RAID卡,要用IT模式(直通模式)的HBA卡。硬RAID卡会把磁盘包装成它自己的一套逻辑卷,ZFS看不到真实磁盘状态,SMART信息也拿不到,一旦卡的固件出问题,数据恢复会非常麻烦。IT模式下,一块卡只是把SATA/SAS信号转给系统,ZFS能直接管理每一块物理盘。服务器拆机卡需要刷IT固件,买的时候记得跟卖家确认。
盘位规划要提前想好未来三年的扩展需求。预留盘位比后期迁移省事太多。RAIDZ2一般建议5到8块盘一组比较合适;少于5块,校验空间占比太高;多于8块,单盘重建时间会拉得很长,这段时间整个池都处于风险窗口。
2.4 我用的参考配置
| 部件 | 推荐方向 | 说明 |
|---|---|---|
| CPU | 4核低功耗带ECC支持 | 跑ZFS足够,兼顾功耗 |
| 内存 | 16GB起步,32GB更舒服 | 容量公式1TB/1GB为底线 |
| 系统盘 | 32GB以上U盘或128GB SSD | 最好用企业级/高耐久度存储 |
| 数据盘 | 4TB、8TB、12TB的CMR盘 | 按RAIDZ2组池 |
| 网卡 | 板载千兆或服务器级芯片 | 避免低端消费芯片掉线问题 |
| HBA | IT模式直通卡 | 如果主板SATA口不够用 |
这只是一份参考方向,具体配置取决于你的盘位数和预算。硬件的核心逻辑是:稳定大于性能,冗余大于容量,别为了省一点钱埋下大隐患。
3. 安装与初始化:从镜像到管理界面
3.1 安装介质制作与安装过程
下载官方镜像之后,先校验SHA256值,再用镜像写入工具写进U盘。写盘工具选一个自己熟悉顺手的就行。写入完成后不要在Windows里把U盘当普通U盘格式化,安装完之后这个U盘就是系统盘了,不再承担文件传输角色。
11.3的安装流程很传统:开机选择引导设备,进安装器,选安装目标盘,设置root密码,然后重启。很多人在这里犯一个低级错误——把系统装到了数据盘上。系统盘和数据盘必须分开。系统盘可以选择32GB以上的U盘或128GB的小容量SSD,数据盘单独组池,这样即使系统盘挂了,池里的数据依然完好,重新装系统导入池即可。
3.2 首次Web配置
安装完重启,屏幕会显示管理地址提示,默认情况下是DHCP分配的IP。浏览器访问这个IP之后,第一步是改密码、设置固定IP、改主机名。固定IP非常重要,否则后面做快照复制、NFS挂载时,IP一变就全乱套。主机名也建议改成有意义的名称,后续在复制任务、告警邮件里看到的主机名就是它,方便识别。
首次进入之后,建议顺手做几件事:
- 开启SSH,但不要用密码登录root,改用密钥登录;
- Web界面启用HTTPS,自签名证书或内部CA都可以;
- 配置邮件告警,后续磁盘报错、池状态异常能第一时间收到邮件;
- 设置时区和NTP,快照和复制的调度都靠时间戳,时间不对会很麻烦。
我见过不少人把这些基本动作全部跳过,等出了问题才回来补。这就好比买了保险柜但不设密码,意义少了一大半。
3.3 上生产数据前的测试建议
安装完不要急着把珍贵数据拷进去。先建一个临时测试池,把SMB共享、快照、复制、Jail这些功能完整走一遍,确认每一步都符合预期,再开始正式迁移数据。我自己第一次装的时候,跳过测试直接迁移数据,结果SMB权限设置错误,所有文件拷贝过来之后客户端无法访问,又重新导入折腾了一遍,白白浪费一晚上。测试阶段多用点心,后面能省很多事。
4. 存储池设计与数据集的规划
4.1 RAIDZ2还是镜像组:选型逻辑
创建存储池是整个系统中最核心的操作。11.3的存储池创建向导会问你vdev类型,常见的几种:
- 条带(相当于RAID0):零冗余,任何一块盘挂了整个池就没了,别碰。
- 镜像(相当于RAID1):两块盘一组,可用空间一半,恢复快、性能好,适合小规模。
- RAIDZ1 / RAIDZ2 / RAIDZ3:RAIDZ1允许1块盘挂,RAIDZ2允许2块,RAIDZ3允许3块。
家庭和工作室一般选RAIDZ2。原因很实际:它能在容量和安全性之间取一个平衡点。RAIDZ1看起来空间利用率高,但重建时一块盘挂了之后,整个池处于高风险状态,万一重建过程中另一块盘也出问题,数据就没了;RAIDZ2至少还能扛住一次重建期间可能的二次故障。
IOPS方面要认识到:RAIDZ系列适合连续读写,随机IO能力比镜像组弱。用生活化比喻:镜像组像两个并排的水桶,各装一半,提水快;RAIDZ像一个大水池,容量大,但每次取水都要经过统一的分配逻辑。家里存电影、照片,大部分是连续读写,RAIDZ2足够了;如果大量小文件密集使用,那不如用镜像组。
ZFS还要求所有vdev尽量一样大小。混合不同容量盘不是不行,但空间计算会按最小的盘折算,很浪费。最好的做法是买同一型号的盘组一个池,但注意同批次也有风险,万一出厂批次有缺陷,坏起来可能是多块一起坏。所以可以考虑分两个批次购入,或者至少让不同时间的盘分布在不同的vdev里。
4.2 数据集:把存储池按用途切分
创建好池之后,不要直接往里塞所有文件,应该建数据集(Dataset)。数据集是ZFS管理的逻辑单元,可以单独设配额、单独做快照、单独设置recordsize,权限控制也更细。
我的规划习惯是每个用途一个顶层数据集,例如:
- “共享文件”:给工作区的文档和作品集;
- “影音库”:给媒体服务扫描和读取;
- “备份区”:作为其他机器的时间机器或备份落点;
- “临时区”:放下载中转文件和测试数据。
每块区域的recordsize不同。视频、大文件共享用128KB或1MB记录大小,连续读写表现最好;文档、代码这类小文件为主的地方,用64KB更均衡。recordsize设置可以后期调整,但会涉及数据重写,最好在建好后立刻设置对。
4.3 配额与预留
配额(Quota)防止某个目录把池塞满,把其他用途挤死;预留(Reservation)确保某块重要数据有保底空间。比如给影音库设置配额上限,给核心备份区设置预留。两个概念要理解:配额管上限,预留管下限。
创建数据集的界面里有明确的输入框,看着设就行。如果哪天发现池快满了,先看是哪个数据集撑起来的,再去决定是否扩容或清理,不要一上来就随意删文件。数据集的配额设置可以为不同用户和不同项目创建独立空间,这个习惯在多人使用场景下尤其重要。
4.4 压缩与去重的正确态度
压缩:开启LZ4即可。LZ4几乎不消耗CPU,压缩效果也实在——照片、日志、代码文本这些数据都能省下不少空间。开启之后是透明的,不用关心任何客户端设置。电影这类已经压缩过的视频格式基本压不动,但系统不会卡,这点可以放心。
去重(Deduplication):绝对劝退。开启之前,你需要先搞清楚内存能否装下去重表。官方建议的内存需求是随容量指数级增长的,家用几TB容量,去重表动辄几十GB内存,性价比极低。大部分人在11.3里完全不需要去重,老老实实靠快照和复制做保护就好。去重开启后如果内存不够,系统性能会雪崩,想关掉又要重新整理数据,非常麻烦。
5. 共享服务配置:SMB、NFS与iSCSI怎么选
5.1 SMB共享与Windows访问
家里和大部分公司都用Windows,SMB是绝对主力。在FreeNAS 11.3中添加SMB共享,需要注意几点:共享路径要指向数据集,而不是池根目录;身份验证模式建议选择需要账户,不要开放访客访问;权限用ACL管理,而不是老式的简单权限。
常见的坑:Windows里看到共享目录,但双击提示没有权限。这种基本都是ACL和SMB权限两层没对齐。FreeNAS的ACL分为文件系统层面和SMB共享层面,两层都需要给对账户。最稳妥的方案是新建一个专用账户组,把需要的用户加进去,然后ACL里给组权限,不要一个一个用户去加。
启用SMB多通道对多客户端性能有帮助,11.3默认是开启的,别误关。如果发现Windows拷贝文件慢,先看网络是不是协商成了千兆,再排查是否有其他任务占住磁盘IO。
5.2 NFS与其他客户端的连接
Mac、Linux、虚拟机环境里,NFS往往比SMB顺手。NFS的配置相对简单:指定可以挂载的网段,选择权限映射方式。把mapall配成特定的用户和组,客户端挂载后看到的文件所有者就是它,权限好控制。
NFS实际使用中有一个切记的点:把不相关的客户端网段尽量限制住,不要对全网开放。尽管是内网设备,但开放NFS且无鉴权,局域网里的任何机器都能挂载,这是个容易被忽略的隐患。建议在共享配置里确认网络掩码范围,并结合防火墙或交换机ACL做限制。
5.3 iSCSI块存储:什么时候才需要
iSCSI提供的是块设备,不是文件共享。它最适合的场景是给虚拟机提供磁盘,或者给某些不支持SMB/NFS的设备提供存储。FreeNAS 11.3的iSCSI配置流程分四段:target、portal、LUN、关联。理解思路后配置并不难,但步骤比较多。
实际用的时候,注意块设备没有文件系统层面的快照概念。ZFS快照可以给iSCSI LUN用,但要确保客户端文件系统对快照一致性有感知,否则快照可能不是崩溃一致的。对一般玩家,我更建议用NFS或SMB对接虚拟机,简单直接,少踩块设备一致性的坑。
| 共享方式 | 适用场景 | 优势 | 注意点 |
|---|---|---|---|
| SMB | Windows客户端为主 | 权限管理成熟,支持ACL | 注意访问协议版本和签名 |
| NFS | Linux/Mac/虚拟化 | 性能好,配置简单 | 注意网段限制和mapall权限 |
| iSCSI | 块存储场景 | 适合虚拟机裸设备 | 注意快照一致性和多路径配置 |
6. 数据保护:快照、复制与定期任务
6.1 ZFS快照原理和定期快照策略
ZFS快照的原理在于写时复制:数据块在写入新内容之前,旧内容不会被覆盖,而是原地保留,快照只是记录“我还需要这些旧块”。所以创建快照几乎瞬间完成,也不存双重数据——只有发生修改时,旧块才会作为快照占用额外空间。
但要明确一点:快照不等于备份。快照在同一套磁盘上,如果整机被火烧、被水淹,快照也一起没了。所以它应付的是误删、中毒、软件Bug这类场景,防不了物理灾难。
11.3的定期任务里可以建定期快照任务,保留策略按份数或周期长度。我常用的策略是每小时一份保留48份,每日一份保留14份,每周一份保留8周。这样既能覆盖今早误删文件这种短期恢复,也能回溯到几周前。快照能极大地缩短恢复时间——恢复一个误删的文件,几秒钟就能搞定,不用翻备份磁带。
6.2 复制任务:真正的异地备份
复制(Replication)是把本地快照推到另一台机器上。第一次全量,之后只传增量块,效率很高。这是整个方案里最值得投入的一步,没有复制任务的NAS,只能算高可用玩具。
在11.3里配置复制任务:源是本地池的快照,目标可以是同一个系统里的另一个池,也可能是远程另一台FreeNAS或TrueNAS。选远程时,需要配置SSH连接。第一次复制会花很长时间,具体取决于数据量,一旦走完,之后的增量复制通常很快。
我自己的做法是:本地NAS做主体存储,另一台旧机器也装上FreeNAS,每天凌晨把备份区这个数据集复制过去。优点是即使主设备彻底坏了,数据也还在另一台机器上,而且那台机器同样能随时接管一部分服务。如果你只有一台机器,可以考虑买一个便宜的移动硬盘,定期做手工同步,至少比没有强。
6.3 Scrub与SMART:别让故障积累
ZFS带校验和,但它需要定期通过Scrub来发现和修复静默数据损坏。建议每季度做一次Scrub。11.3的“定期任务”里有Scrub任务,设置好在低峰时段运行。Scrub期间磁盘IO压力不小,SMB拷贝会感觉到延迟,所以别选在白天工作高峰。
SMART测试也是必做项,短测试每周一次,长测试每月一次。SMART报错之后,结合zpool status的状态和池的告警,尽早做盘位更换。换盘流程是:告警 -> 定位坏盘 -> 拔出 -> 插入新盘 -> 执行replace。ZFS会自动重建,期间池仍然可用,只是性能下降。但也正因为透明,很多人懒得盯状态,结果小问题拖成大问题。
7. 插件、Jails与日常运维
7.1 插件还是手动Jail:11.3要做的选择
11.3的插件基于Jail管理工具,媒体服务、下载工具、网盘同步这类都可以一键安装。但插件库的更新维护并不总是及时,不少插件还停留在旧版依赖上。我的体会是:稳定性要求高的场景,尽量手动创建Jail,在Jail里直接安装服务,自己管理版本,依赖关系透明,出问题也好排查。
举个例子:如果你需要运行媒体服务,插件方式确实省事,但版本落后和升级麻烦是常态。手动Jail方式需要自己装软件源、配置权限、设置开机启动,一两小时就能搞定,换来的是对环境的掌控感。我更倾向于后者,尤其是这台NAS要长期稳定运行的情况下。
Jail的网络配置是另一个坑。11.3里默认用NAT方式,外部访问要做端口转发。如果你希望Jail和局域网其他设备同网段,要配置桥接或者独立IP的VNET方式,这个要先想好再创建,不然后面改起来麻烦。
7.2 监控、告警与日志
日常运维依赖监控。至少要做到三件事:邮件告警开启、SMART测试定时跑、zpool status定期看。邮件告警会在池状态异常、磁盘掉线、复制失败时第一时间通知你。SMART测试能提前发现磁盘硬件问题。zpool status输出能看到池的健康状态、scrub进度和最近错误统计。
日志文件在Web界面可以浏览,出现问题先看系统日志,排查思路会更清晰。不要一遇到问题就满世界查资料,先看日志里有没有明显报错,再决定下一步。
7.3 升级与回滚策略
FreeNAS 11.3的升级机制不错,支持配置和数据集保留,但在大版本升级前,先手动做一个配置备份,并且把关键数据集快照。这样一来,即使升级失败或某些功能异常,也能回滚到升级前的状态。
升级之后不要马上大量操作。先观察10到30分钟,确认Web界面正常、池状态正常、共享服务能访问,再继续日常使用。曾经有一次小版本升级后,I库里的某个插件崩了,由于事先拍了快照,回滚只花了五分钟。这让我每次升级前都养成了先做快照的习惯。
8. 常见问题与排查技巧实录
8.1 硬盘识别不到或容量不对
症状:插了盘,但Web界面看不到,或者显示的容量不对。可能原因:HBA卡没刷IT模式、SATA接口供电问题、盘在硬RAID卡下被包装。排查思路:先看BIOS能不能看到盘;再看系统日志中是否识别到块设备;如果识别为普通块设备但容量不对,重点检查HBA卡固件。
8.2 SMB拷贝速度慢
症状:千兆网下拷贝只有几十MB/s。可能原因:网络协商成百兆、ACL检查繁琐、磁盘正在跑Scrub或复制任务、SMB签名开销大。排查步骤:换网口与网线、在共享设置里调整签名策略、避开任务高峰时段再测速。还有一个容易被忽略的点:确认客户端和NAS都协商到了千兆,有些网线质量差,会悄悄掉到百兆。
8.3 重启后共享目录访问不了
症状:开机后共享目录提示不存在。原因:服务未设为自动启动、共享路径指向的数据集尚未挂载。排查:看服务页面里SMB/NFS是否开启自启;看存储池是否已导入并挂载。搞清池导入和服务启动的顺序,问题就好定位了。
8.4 池容量迅速变小
症状:池可用空间明显下降,或删除大量文件后空间没有释放。原因:快照保留策略设置得太激进,删文件后快照还保留旧数据块。处理:看看快照占用的空间,调小保留份数,手动删除一些旧快照。要理解:删除文件后如果快照还保留旧文件,空间不会立刻释放,这是快照机制的正常行为,不是系统Bug。
8.5 我替你踩过的坑
下面这些是我实际操作中总结出来的经验,几乎每一条都有人在网上问过:
- 不要用硬RAID卡,不要用硬RAID卡,不要用硬RAID卡。重要的事说三遍。
- 不要在同一个池里混装系统盘,也不要混装不同转速、不同用途的盘。
- 不要开了访客访问就觉得自己很安全,账户密码还是要设。
- 不要长时间不升级安全补丁,内网也不是铁桶。
- 在把所有数据入池之前,先完整测试一遍恢复流程。
- 创建共享之后先在本机写个测试文件,验证所有权和权限,再让其他人开始使用。
- 每个月抽出几分钟看一眼zpool status和SMART状态,省下的是以后几天通宵恢复数据的时间。
下面可以整理成速查表,方便后面照着排查:
| 症状 | 可能原因 | 优先排查项 |
|---|---|---|
| 硬盘不识别 | HBA固件/IT模式 | BIOS和系统日志 |
| 拷贝慢 | 网络协商、Scrub任务 | 协商速度、任务调度 |
| 开机共享丢失 | 服务自启、池未导入 | 服务状态、池挂载 |
| 池空间异常 | 快照占用 | 快照列表与空间统计 |
| 权限报错 | ACL两层配置 | 账户组与数据集权限 |
| 插件无法启动 | Jail网络模式 | 网络类型、端口映射 |
做成速查表的价值在于,遇到问题不用从头想一遍完整逻辑,直接按表格顺序排查,五分钟内能定位大多数常见故障。
最后说点个人的体会。FreeNAS 11.3这套东西,配置项确实不少,但它的设计逻辑其实非常统一:围绕ZFS把数据管理好。你花时间理解ZFS的快照、数据集和复制机制,比记住任何界面按钮都重要。我自己在装完这台机器之后,最大的收获不是把它调得多快,而是终于有了一个可以放心交数据的存储底座。以后不管是加盘、迁移还是换新机器,数据都走快照和复制的流程,心里有底。如果你也打算组一台,记住这句话:先把数据保护做扎实,再追求性能,顺序千万别搞反。