存储技术基础
ZFS vs Btrfs vs ext4、RAID-Z、RAID5/6、SMR/CMR/HAMR、ECC、快照 / scrub。这一页是理解后面 nas-systems 和 nas-pitfalls 的概念地基。
1. 文件系统对比
| 维度 | ZFS | Btrfs | ext4 |
|---|---|---|---|
| CoW(写时复制) | ✓ | ✓ | ✗(传统) |
| 内置 RAID | RAID-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 容器 volume | ext4/ZFS 都行 | OK | OK |
| 适合备份盘 | ✓ | ✓ | ✓ |
选择建议:
- 数据高价值 / 想睡安稳 → 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)/N | 4-6 盘,不推荐 ≥ 6 盘(URE 风险) |
| RAIDZ2 (RAID6 类似) | 2 | (N-2)/N | 4-12 盘,家用推荐起点 |
| RAIDZ3 (RAID7 类似) | 3 | (N-3)/N | 8+ 大阵列 |
| 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-1 | 3 份 / 2 种介质 / 1 份异地 | 设计原则 |
6. 容量与 RAID 选型速算
| 你要(净容量) | 推荐盘数 + 配置 |
|---|---|
| 4TB(单盘够) | 1 块 8TB(留 50% 用) |
| 8TB | 2 块 4TB mirror / RAIDZ1 |
| 16TB | 4 块 4TB RAIDZ2 (8TB 净冗余 2 盘) |
| 32TB | 4 块 8TB RAIDZ2 |
| 64TB | 6 块 14TB RAIDZ2(2 盘冗余,28TB 净) |
| 100TB+ | 8+ 盘 RAIDZ3 或 dRAID |
经验:满盘使用率不要超 80%,要给 ZFS COW 预留空间(快照、元数据)。ZFS
autoexpand自动扩 pool,但quota留 20%。
7. 引用
- ✓ https://www.seagate.com/products/nas-drives/ironwolf-hard-drive/ — IronWolf 2026 全系 CMR,180 TB/年
- ✓ https://www.seagate.com/products/nas-drives/ironwolf-pro-hard-drive/ — IronWolf Pro 2026 全系 CMR,顶配 32TB
- ⏳ HAMR Exos M 30TB 国内零售、HAMR 在 ZFS rebuild 实测、WD Red Plus 全系 CMR 名单 = 待人工核