1. 存储介质演进:从磁带到固态硬盘
存储介质是文件系统最底层的物理基础。不同介质的读写特性、寻址方式和性能瓶颈,直接决定了上层文件系统的设计取舍。本章从磁记录介质出发,逐步过渡到闪存介质,剖析其物理原理与性能差异。
1.1 磁记录介质:磁带与硬盘
磁记录介质利用铁磁性材料的剩磁状态来存储数据。写入时,磁头线圈产生磁场,将磁畴排列方向翻转;读取时,磁畴翻转引起磁头线圈中磁通量变化,感应出电信号。
1.1.1 磁带:顺序访问的极致
磁带是最早的商用磁记录介质,至今仍用于冷数据归档和灾难备份。其核心特征是顺序访问:数据以连续条带形式存储在长磁带上,读写必须经过机械卷带和倒带。
| 特性 | 参数 | 说明 |
|---|---|---|
| 访问方式 | 顺序 | 定位任意数据块需卷带,平均寻道时间数十秒 |
| 传输速率 | 200–400 MB/s (LTO-9) | 顺序读写快,但随机访问极慢 |
| 容量密度 | 单盘 18 TB (LTO-9) | 单位存储成本最低,适合冷数据 |
| 寿命 | 15–30 年 | 保存条件要求高,但数据持久性好 |
关键设计约束: 磁带文件系统(如 LTFS)必须将数据组织为连续大块,避免频繁倒带。文件系统元数据通常存储在磁带开头,一次加载后缓存到内存。
1.1.2 硬盘:随机访问的机械奇迹
硬盘(HDD)在磁记录基础上引入了随机访问能力。盘片以恒定角速度旋转,磁头臂在盘片径向移动,通过寻道和旋转等待定位到目标扇区。
性能公式: I/O 延迟 = 寻道时间 + 旋转延迟 + 传输时间。寻道时间通常 4–10 ms,旋转延迟取决于 RPM(7200 RPM 约 4.17 ms),传输时间取决于接口带宽。
硬盘的物理结构决定了其性能特征:
- 寻道时间:磁头臂移动的机械延迟,是随机 I/O 的主要瓶颈。
- 旋转延迟:等待目标扇区旋转到磁头下方的时间。
- 区域位密度:外圈磁道更长,位密度更高,外圈传输速率通常比内圈高 30%–50%。
- 磁头切换:多盘片多磁头设计,切换磁头仅需电子延迟(微秒级)。
1.2 闪存介质:固态硬盘
固态硬盘(SSD)基于 NAND 闪存,没有机械运动部件。闪存单元通过浮栅晶体管中存储的电荷量来区分 0 和 1。其物理特性与磁记录介质有本质区别。
1.2.1 NAND 闪存单元结构
NAND 闪存的基本存储单元是浮栅晶体管。写入时,高电压将电子注入浮栅;擦除时,高电压将电子拉出。单元类型决定了存储密度和寿命:
| 单元类型 | 每单元位数 | 擦写寿命 (P/E Cycles) | 读取延迟 | 典型应用 |
|---|---|---|---|---|
| SLC | 1 | 50,000–100,000 | ~25 µs | 企业级缓存、工业控制 |
| MLC | 2 | 3,000–10,000 | ~50 µs | 消费级 SSD、高端 U 盘 |
| TLC | 3 | 1,000–3,000 | ~75 µs | 主流消费级 SSD |
| QLC | 4 | 300–1,000 | ~120 µs | 大容量冷数据存储 |
重要限制: NAND 闪存不能原地覆盖写入。写入前必须先擦除整个块(Block,通常 4–8 MB)。擦除操作比写入慢 10–100 倍,且会磨损单元。这是 SSD 需要 FTL(闪存转换层)和垃圾回收的根本原因。
1.2.2 SSD 内部架构与 FTL
SSD 内部包含多个 NAND 芯片、一个主控芯片和 DRAM 缓存。主控运行 FTL 固件,负责:
- 逻辑到物理地址映射:将文件系统的 LBA 映射到闪存的物理页。
- 磨损均衡:将写入均匀分布到所有块,避免部分块过早失效。
- 垃圾回收:回收包含无效数据的块,先读取有效页,再擦除整个块,最后写入有效页。
- 坏块管理:标记出厂坏块和运行中产生的坏块,不再使用。
1.3 性能差异对比
不同存储介质的性能差异跨越数个数量级。理解这些差异是设计文件系统和调度算法的前提。
| 指标 | 磁带 (LTO-9) | 硬盘 (15K RPM) | SATA SSD | NVMe SSD |
|---|---|---|---|---|
| 顺序读取 | 400 MB/s | 250 MB/s | 550 MB/s | 7,000 MB/s |
| 随机读取 (4K) | < 1 IOPS | 200–300 IOPS | 90,000 IOPS | 1,000,000 IOPS |
| 随机写入 (4K) | < 1 IOPS | 200–300 IOPS | 50,000 IOPS | 500,000 IOPS |
| 访问延迟 | 秒级 | 4–10 ms | 50–100 µs | 5–10 µs |
| 功耗 | 5–10 W | 8–15 W | 2–5 W | 5–10 W |
| 抗震性 | 低 | 低 | 高 | 高 |
设计启示: 磁带文件系统必须最小化寻道,采用大块顺序写入策略;HDD 文件系统依赖电梯调度(SCAN/C-SCAN)减少寻道时间;SSD 文件系统则需考虑写入放大、磨损均衡和 TRIM 命令,避免频繁小块写入。
1.4 介质特性对文件系统的影响
每种介质的物理特性都直接塑造了上层文件系统的设计决策:
- 磁带:顺序访问 → 文件系统采用连续分配,元数据集中存储,支持大块流式 I/O。
- 硬盘:随机访问但寻道昂贵 → 文件系统采用块组/柱面组局部性,预读策略,延迟分配。
- SSD:无寻道延迟,但擦除粒度大、写磨损 → 文件系统采用日志结构(LFS)、TRIM 支持、over-provisioning。