首页/系统/服务器硬件与 RAID 速查/ZFS RAIDZ 与硬件 RAID 的差异
RAID 级别与计算68 条

ZFS RAIDZ 与硬件 RAID 的差异

RAIDZ 是 ZFS 的校验级别(raidz1/2/3),与硬件 RAID 相比增加校验和(checksum)与自愈能力,但要求整盘直通并把冗余规划交给池管理层。

RAIDZ 与硬件 RAID 的差异

RAIDZ 是 ZFS 自带的校验级别(raidz1/raidz2/raidz3),把冗余放在文件系统与池这一层,而不是控制器固件里。它比传统 RAID 多出一项关键能力:每个数据块都有校验和,遇到静默损坏时能识别并借助其他盘的副本自动修复。代价是必须把整盘直通给 ZFS,扩容也只能通过增加 vdev 实现,规划思路与硬件 RAID 完全不同。

对照

维度硬件 RAIDZFS RAIDZ
冗余位置控制器固件文件系统与池层
静默损坏不感知(除非做巡查)块校验和可检测并修复
盘直通对操作系统呈现单个逻辑盘需要整盘或分区直通
扩容OCE 扩展逻辑盘容量增加 vdev,无法直接扩现有 vdev
写性能卡上缓存保护可显著提升依赖内存做缓存与事务组,无电池缓存概念

查看池与 vdev 状态

查看池与 vdev 状态
zpool status -v                 # 池与 vdev 状态、错误计数
zpool list -v tank              # 容量与 vdev 分布
zdb -C tank | head -40          # 池配置详情
zpool set autoreplace=on tank   # 换盘后自动替换(按需)

关键前提

硬件要求整盘直通,不经过硬件 RAID 的逻辑盘封装
内存要求ZFS 依赖内存做 ARC 缓存,内存不足会明显影响性能
ashift建池时设定扇区对齐(4K 盘通常用 12),建好后无法在线修改
校验级别raidz1 相当于单盘容错,raidz2 相当于双盘容错
扩容方式加 vdev 或替换为更大容量盘,容量增长方式与 RAID 不同

选型时的注意

  • 需要自动检测并修复静默损坏:ZFS 是少数原生支持的选择
  • 单 vdev 内盘数不宜过多:盘数多会导致校验开销与重建时间上升
  • 大容量盘建议 raidz2 起步:单盘容错在重建期风险偏高
  • 与硬件 RAID 混用要谨慎:ZFS 需要看到真实盘,逻辑盘会屏蔽 SMART 与错误信息
RAIDZ 的常见建议:单 vdev 内盘数适中、raidz2 起步,配合 ashift=12 对齐 4K 扇区盘,减少读写放大。

易错点

  • 把 RAIDZ1 与 RAID 5 当等价物:条带与校验布局不同,扩容方式与性能特征也不一样
  • ashift 设置过小导致 4K 扇区盘读写放大:池建好后无法在线修改,只能重建池
  • 在硬件 RAID 的逻辑盘上再建 ZFS:ZFS 看不到真实盘,SMART 与错误信息全部丢失
  • 内存配置不足:ARC 与事务组都吃内存,容量规划时要一并评估
  • 以为可以像 RAID 一样在线扩容量:ZFS 只能加 vdev 或换大盘,规划时要预留盘位

数据来源与参考

  • OpenZFS 文档(raidz 与 ashift)
  • man 8 zpool
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌