存储技术基础

ZFS vs Btrfs vs ext4、RAID-Z、RAID5/6、SMR/CMR/HAMR、ECC、快照 / scrub。这一页是理解后面 nas-systemsnas-pitfalls 的概念地基

1. 文件系统对比

维度ZFSBtrfsext4
CoW(写时复制)✗(传统)
内置 RAIDRAID-Z1/2/3(dRAID 实验性)RAID1/5/6/10需 mdraid
快照✓(几乎零成本,可加密)✓(可写快照)✗(LVM 模拟)
完整性校验✓(256-bit fletcher4 / SHA-256,端到端)✓(CRC32c)✗(只校验元数据)
自动修复(scrub)
内存需求(每 TB 数据 ~ 1GB ARC 默认;但可调)
Linux 原生支持通过 zfs-on-linux,内核模块✓(主线)✓(主线)
适合 NAS最佳(主数据完整性)次之(写性能 + 工具生态)传统(Samba + mdraid)
适合 Docker 容器 volumeext4/ZFS 都行OKOK
适合备份盘

选择建议:

  • 数据高价值 / 想睡安稳 → ZFS(配合 ECC 内存更安心)。
  • 想 Linux 原生、易排错 → Btrfs(写放大有时比 ZFS 小)。
  • 老 NAS、Samba 当 file server → ext4 + mdraid(简单可控)。

2. RAID 对照(2026 家用级别)

2.1 RAID-Z(在 ZFS 上) vs Linux mdraid

RAID 级别容忍坏盘容量效率(N 盘)适用
Mirror (RAID1)1(每对)50%2-4 盘入门,数据安全性强
RAIDZ1 (RAID5 类似)1(N-1)/N4-6 盘,不推荐 ≥ 6 盘(URE 风险)
RAIDZ2 (RAID6 类似)2(N-2)/N4-12 盘,家用推荐起点
RAIDZ3 (RAID7 类似)3(N-3)/N8+ 大阵列
dRAID分布冗余比 RAIDZ 稍高30+ 盘位

通用建议:

  • 永远至少 RAIDZ2(RAID1 mirror 也可,但 RAIDZ2 容量效率更高)。
  • 不用 RAID-Z1 做 6 盘以上阵列:RAID5/RAIDZ1 在 rebuild 时遭遇第二盘 URE(读错误)的概率随盘数 / 容量上升,实际生产数据丢失案例不缺。
  • 大型阵列 + HAMR 24TB+ 盘 → 用 dRAID 或 RAIDZ3,容忍更多并发坏盘。

2.2 Unraid parity

  • Unraid 不是传统 RAID-Z,是 JBOD + 1-2 个 parity 盘。
  • 优点:异构盘友好(可以 1T + 4T + 8T 混插)、加盘不动数据。
  • 缺点:单盘读写性能 = 单盘速度(不像 RAID0 striping);parity rebuild 时间长(盘越大越久)。
  • 适合:家庭异构盘 + 重视扩展灵活。

3. SMR / CMR / HAMR 三种磁记录

这是 NAS 选盘的核心常识。“SMR 在 NAS 一定挂”——这话太绝对,但 SMR 的 RAID/ZFS rebuild 风险确实要重视。

3.1 SMR(叠瓦式磁记录,Shingled Magnetic Recording)

  • 把磁道像瓦片一样相互覆盖,单盘写入吞吐高但”修改已写区域”很慢(需要 read-modify-write 把周边磁道缓存重写)。
  • 问题:RAID5 / RAIDZ1 rebuild 时全盘读,随机改写被覆盖区时掉速严重;若多盘同时遭遇 SMR 行为抖动,rebuild 跑不完,阵列降级。
  • 现状:希捷 IronWolf / IronWolf Pro 2026 全系 CMR(详见 nas-pitfalls > 盘 与 ⚠️ 待办 WD Red 状态);Seagate Barracuda Compute 在 2020 被抓 SMR;WD Red 2-6TB 在 2020 被抓改 SMR(WD 后来才公开承认并部分换回 CMR / Red Plus 命名)。

3.2 CMR(传统磁记录,Conventional Magnetic Recording)

  • 每个磁道独立,顺序/随机读写都直接落到目标位置,没有 SMR 的”邻近磁道重写”问题
  • NAS / RAID / ZFS / Unraid 重建都安全。
  • 2026 年 NAS 盘推荐:IronWolf / IronWolf Pro / Toshiba N300(具体容量段的 CMR/SMR 状态以厂商 datasheet 为准)。

3.3 HAMR(热辅助磁记录,Heat-Assisted Magnetic Recording)

  • 写入时用激光局部加热,磁密度提升 → 单盘容量大幅提升(30TB+)。
  • 已商用:Seagate Exos M 30TB 已上市(2024-2025 间发布);后续 32TB / 40TB 在路上。
  • 国内零售状态(⏳ 待人工核 2026-07-03):京东 / 淘宝 NAS 零售渠道暂未见批量现货;批发 / 数据中心 / 出海渠道可拿。
  • 对 ZFS rebuild 的影响(⏳ 待一手实测):HAMR 物理层依然 CMR-like 行为(无 SMR 叠瓦),但叠密度更高,URE 概率需要在更长时间窗口观察。Seagate 自己 / StorageReview / ServeTheHome 还没有大规模公开 RAID rebuild 数据。

4. ECC 内存(纠错码内存)

为什么:

  • 普通内存(RAM)的”位翻转”(bit flip)概率虽低,但内存容量上去后概率累积。
  • ZFS / 文件系统 checksum 能检测数据损坏,但发现时已经晚了;ECC 能在”位翻转发生”时就纠正,保证写下去的数据本身正确。
  • 争议:家用非关键数据,很多人跑 ZFS 非 ECC 多年没事;但服务器 / 数据中心的工程共识是”非 ECC 不用”。

结论:

  • 数据价值 > 1 万 → 上 ECC(用 ThinkStation P / Precision T 系列二手)。
  • 家用 / 照片/媒体 → 非 ECC 也 OK,但 at-least 配 UPS 防断电。

5. 快照、scrub、复制、灾备

动作做什么多长时间
Snapshot冻结数据集的一个时点读视图(几乎零成本)实时(可任意时点)
scrub(ZFS)全盘 checksum 重读,发现并自动修复 silent corruption每月-每季
rebuild(RAID-Z parity)单盘坏后重建冗余单盘寿命内可能发生
zfs send/receive快照流式发到另一个 pool 或异地机器备份周期触发
3-2-13 份 / 2 种介质 / 1 份异地设计原则

6. 容量与 RAID 选型速算

你要(净容量)推荐盘数 + 配置
4TB(单盘够)1 块 8TB(留 50% 用)
8TB2 块 4TB mirror / RAIDZ1
16TB4 块 4TB RAIDZ2 (8TB 净冗余 2 盘)
32TB4 块 8TB RAIDZ2
64TB6 块 14TB RAIDZ2(2 盘冗余,28TB 净)
100TB+8+ 盘 RAIDZ3 或 dRAID

经验:满盘使用率不要超 80%,要给 ZFS COW 预留空间(快照、元数据)。ZFS autoexpand 自动扩 pool,但 quota 留 20%。

7. 引用