raid-z2能容忍两块盘同时故障,因其为每个条带生成两个独立奇偶校验块并分布式存储,结合端到端校验和与数据强绑定,可精准定位并修复静默损坏,且仅限单个vdev内有效。

RAID-Z2 为什么能扛住两块盘同时故障
ZFS 的 RAID-Z2 不是传统 RAID 6 的简单复刻,它在数据写入时对每个条带(stripe)生成两个独立的奇偶校验块,并与数据块一起分布在同一 vdev 内。只要任意两块物理盘失效,ZFS 就能用剩余数据块 + 两个校验块反推还原原始数据。关键点在于:校验计算是端到端、按块进行的,且校验和与数据强绑定——哪怕某块盘只坏了一小段(bit rot),zfs 也能定位并用副本修复,不依赖整盘健康状态。
创建 RAID-Z2 存储池前必须确认的硬件条件
这些不是建议,而是 ZFS 强制要求:
- 至少需要
4块硬盘组成单个 vdev;少于 4 块,Web 界面会直接禁用 RAID-Z2 选项 - 所有参与 vdev 的硬盘最好同型号、同容量;混用时,ZFS 会以最小容量盘为基准切分条带,多余空间被浪费
- 不要把系统盘(如安装 TrueNAS 的 SSD)加入数据 vdev;它只负责 OS,混入会极大增加降级风险
- 如果计划未来扩容,别用单 vdev 装满全部硬盘;RAID-Z2 vdev 无法在线“加盘”,扩容只能靠新增 vdev(条带化扩展),但可靠性取决于最弱的那个 vdev
Web 界面中配置 RAID-Z2 的实际操作要点
进入 Storage > Pools > ADD 后,注意三个易错环节:
- 选盘阶段:必须手动勾选 ≥4 块硬盘,不能依赖“Select All”——系统盘或已挂载的缓存盘可能被误选
- 布局类型:下拉菜单里选
RAID-Z2,不是RAID-Z或Mirror;TrueNAS SCALE 和 CORE 界面文字一致,但旧版 CORE 可能标为 “RAIDZ2”(无短横) - 高级选项里:
ashift建议保持自动(通常为 12),除非你明确知道硬盘是 4K 扇区且控制器不支持 512e;手动改错会导致性能断崖式下跌 - 池名称避免用中文或特殊字符,
mydata-z2这类纯英文+数字组合最稳妥,后续命令行管理不会出编码问题
创建后立刻要做的三件事
池显示 ONLINE 不代表高冗余已就绪,必须验证:
- 执行
zpool status -v,确认 config 下每个设备状态都是ONLINE,且没有DEGRADED或UNAVAIL字样 - 进
Storage > Disks页面,逐个点击每块盘,检查 S.M.A.R.T. 状态是否为PASSED;有FAILING的盘必须立即更换,别等它真坏 - 手动触发一次 scrub:
zpool scrub mydata-z2(替换为你的池名),等完成后再看zpool status输出里是否有scrub repaired 0—— 如果是repaired N(N>0),说明已有静默损坏,ZFS 已悄悄修复,这正是 RAID-Z2 + 校验和的价值所在
真正容易被忽略的是 vdev 边界:RAID-Z2 只保护单个 vdev 内的双盘故障。如果你建了两个 RAID-Z2 vdev 组成一个池,那每个 vdev 各坏两盘才各自扛住;但若一个 vdev 坏了三盘,整个池就 FAULTED,数据全丢。设计之初就要想清楚——宁可多建几个小 vdev,也不要堆一个超大 vdev。











