计算机基础(三):存储系统(HDD 与 SSD)

对比 HDD 与 SSD 的工作原理、SATA 与 NVMe 接口带宽差异、SLC/MLC/TLC/QLC 寿命特性、SSD 优化技术(4K 对齐、TRIM)、RAID 阵列配置方式。

一块 SSD 为何能让服役五年的笔记本“起死回生”?标称仅支持 1000 次 P/E(编程/擦除)循环的 TLC SSD,普通用户为何仍能使用十余年?全新 SSD 在基准测试中可达 3500 MB/s,但几周后却骤降至 50 MB/s——原因何在?本系列《计算机基础深度解析》第三讲将从第一性原理出发,逐一解答这些问题:旋转磁盘与电荷俘获型 NAND 单元的本质差异、接口带宽(SATA、PCIe Gen 3/4/5)与协议并行能力(AHCI vs NVMe)的相互作用、RAID 各级别在容量与容错性之间的权衡、文件系统如何将原始块设备组织为可寻址的字节序列,以及如何在生产环境中兼顾性能与数据安全。

章节概念示意图


系列导航#

《计算机基础深度解析》系列(共 6 讲)

  1. CPU 与计算核心
  2. 内存与高速缓存
  3. → 存储系统(HDD vs SSD、接口、RAID、文件系统、分层存储)← 当前所在
  4. 主板、显卡与扩展总线
  5. 网络、电源与实用排障
  6. 深度附录

第一部分 — HDD 与 SSD:两种截然不同的物理实现#

硬盘驱动器(HDD)与固态硬盘(SSD)的根本区别不在于“是否旋转”,而在于单个比特如何存储及访问所需时间。HDD 将每个比特编码为旋转盘片上微小磁性颗粒的磁化方向,读取时需机械寻道,再等待目标扇区随盘片旋转至磁头下方;而 SSD 则将每个比特存储为 NAND 单元内浮栅或电荷俘获晶体管的阈值电压,读取是纯电子操作,耗时仅为微秒级。

HDD 与 SSD 物理结构对比

结构差异为何关键? 图左 HDD 中,每次随机读取至少消耗一次 寻道时间(典型值 4–10 ms)和 旋转延迟(7200 RPM 下平均约 4 ms)。顺序读取速率受限于单位时间内经过磁头的数据量——现代 24 TB HDD 外圈轨道约为 200 MB/s,内圈则更低。图右 SSD 中,同一读取请求由控制器分发至多个 NAND 芯片并行执行,其 持续带宽 由控制器可同时通信的 NAND 芯片数量决定,而非任何机械部件。

属性HDD(7200 RPM)SATA SSDNVMe Gen 4 SSD
比特存储介质盘片上的磁性颗粒NAND 单元(电荷俘获)NAND 单元(电荷俘获)
随机读取延迟~10 ms~100 µs~30 µs
顺序读取速率100–200 MB/s550 MB/s7000 MB/s
4 KiB 随机 IOPS~120~95000~1000000
空闲 / 工作功耗5–10 W2–4 W4–7 W
抗冲击能力(运行中)~30 G~1500 G~1500 G
每 TB 成本(2026 年)~15 美元~60 美元~110 美元
典型容量上限24 TB8 TB8 TB

HDD 仅在两个方面仍具优势:单位美元的原始容量故障后的法医级数据恢复能力(因磁性编码在控制器损坏后仍可读取);而 SSD 则在所有人类可感知的方面全面胜出,包括开机时间、应用启动、游戏关卡加载、大文件拷贝和电池续航。

为何 SSD 升级带来最显著的主观体验提升?#

用户并不直接感知顺序带宽,而是真切感受到 随机读取延迟队列深度。Windows 启动过程涉及约 30000 个小型文件;启动 Chrome 又需访问约 4000 个。HDD 上每次访问均需完整寻道;NVMe SSD 上数千条命令可并发执行。因此,从 HDD 升级至任意 SSD,通常可将开机时间缩短 4–7 倍——这一提升幅度远超双倍内存或升级一代 CPU 所带来的体验变化。

HDD 内部结构:盘片、磁头与区域划分#

HDD 将多个圆形盘片堆叠于单一主轴,以 5400、7200 或 10000 RPM 旋转。每张盘片表面配有一个独立的读写磁头,安装于音圈电机驱动臂上。数据面划分为同心圆状的磁道,每条磁道再分割为扇区(传统为 512 字节,现代驱动器普遍采用 4 KiB “高级格式”扇区)。

寻道(Seeking):驱动臂将磁头摆动至目标磁道。全程寻道(最内圈至最外圈)耗时约 15 ms;短距离寻道(跨越数千磁道)约 2 ms;平均随机寻道时间为中间值:4–8 ms。

旋转延迟(Rotational Latency):磁头就位后,需等待目标扇区旋转至其正下方。7200 RPM 下单圈耗时 8.33 ms,故平均旋转延迟为一半:~4.17 ms;5400 RPM 下升至 ~5.56 ms。

区位记录(ZBR, Zone Bit Recording):外圈磁道物理长度更长,故每磁道容纳更多扇区。现代硬盘将盘片划分为约 15–30 个区域;最外圈区域顺序读取速率可达 ~250 MB/s,最内圈则可能跌至 ~100 MB/s。这也是半满 HDD 显得更慢的原因——操作系统优先填满高速外圈区域。

叠瓦式磁记录(SMR, Shingled Magnetic Recording):部分高容量消费级硬盘通过重叠写入磁道(类似屋顶瓦片)来增加单位盘片磁道密度。代价是:随机写入需先读取整个磁带(30–50 MB),重写后再刷回。这使 SMR 硬盘完全不适用于 NAS 或数据库场景,也解释了为何用户选购最便宜的 8 TB 驱动器后,会遭遇突发性的写入速度断崖式下跌。

SSD 内部结构:晶粒(Die)、平面(Plane)、块(Block)与页(Page)#

SSD 控制器位于主机接口(SATA 或 NVMe)与一组 NAND 闪存芯片之间。每颗 NAND 芯片包含一个或多个 晶粒(die);每个晶粒含 平面(plane)(通常为 2 或 4 个);每个平面含数千个 块(block);每个块含 128–512 个 页(page)(每页 4–16 KiB)。

关键不对称性在于:可对单个页进行读/写,但只能对整块(block)执行擦除。块大小通常为 4–16 MB。这一不对称性驱动了几乎所有 SSD 固件工程:FTL(闪存转换层)、垃圾回收(GC)、磨损均衡(wear leveling)和预留空间(over-provisioning)均旨在缓解页/块粒度不匹配问题。

并行性(Parallelism):控制器可同时向多个晶粒发起读取请求——称为 通道交错(channel interleaving)晶粒交错(die interleaving)。消费级 SSD 通常有 4–8 条 NAND 通道;企业级则达 8–16 条。通道越多,并行度越高,吞吐量越大。这也解释了为何同一系列下,256 GB SSD 往往比 1 TB 型号实测更慢:晶粒数量更少,控制器可利用的并行资源更有限。

第二部分 — 存储性能:三个关键指标#

几乎所有存储决策均可基于三个数字做出——吞吐量(Throughput)IOPS延迟(Latency)——但必须关注其在正确百分位(percentile)下的表现。平均值具有欺骗性;用户真正感知的是长尾(long tail)。

吞吐量、IOPS 与延迟(对数坐标)

  • 吞吐量(MB/s) 在处理大型连续文件时至关重要:视频剪辑、备份、游戏资源补丁。注意各代接口(SATA → PCIe 3 → 4 → 5)的理论上限大致逐代翻倍。
  • IOPS 则主导其余所有场景:应用启动、代码编译、数据库运行、操作系统启动。此处 HDD 到 SSD 的跃迁达 三个数量级(120 → 95000),因此即使是入门级 SATA SSD 也带来革命性体验。
  • 延迟 在高负载下尤为关键。现代 NVMe Gen 4 驱动器执行一次 4 KiB 随机读取仅需 ~30 µs;同操作在 7200 RPM HDD 上耗时 ~10 ms——差距达 300 倍,且当请求队列堆积时,HDD 的延迟劣势会进一步恶化。

经验法则:若工作负载队列深度(queue depth)为 1,则延迟占主导;若队列深度较大,则 IOPS 与吞吐量占主导。 消费级工作负载几乎总是队列深度为 1,因此 NVMe Gen 5(其优势主要体现在 QD32+ 场景)对桌面用户属边际升级,但对数据库服务器却是重大提升。

如何客观解读厂商规格表#

厂商标称值(如“7000 MB/s 读取,1000000 IOPS”)是在以下严苛条件下测得:128 KiB 顺序传输QD256 工作负载全新驱动器SLC 缓存已清空。真实桌面工作负载表现约为:

  • 持续写入速率(SLC 缓存填满后)约为标称顺序速率的 50–70%;
  • QD1 下的 IOPS 约为标称值的 5–15%;
  • 驱动器填充率超过 70% 后,延迟为标称值的 2–4 倍。

务必核查 SLC 缓存填满后的持续写入速率QD1 下的延迟——这些才是决定实际体验的关键数字。

第三部分 — 接口与协议:SATA、NVMe 及二者本质不同#

决定驱动器与 CPU 通信速度的有两个独立要素:物理总线(bus,即导线)协议(protocol,即语言)。混淆二者是存储领域最常见的误解。

总线最大带宽典型协议队列深度限制
SATA III600 MB/sAHCI32
PCIe 3.0 ×43940 MB/sNVMe65535
PCIe 4.0 ×47880 MB/sNVMe65535
PCIe 5.0 ×415760 MB/sNVMe65535

SATA + AHCI:SATA 数据线提供 600 MB/s 半双工带宽。AHCI(高级主机控制器接口)于 2004 年为 HDD 设计,仅管理单个 32 条目命令队列。对一次仅处理一条命令的 HDD,32 条目绰绰有余;但对可并发处理数千条读取请求的 SSD,32 条目成为严重瓶颈。

NVMe:NVMe(非易失性内存快速)专为基于 NAND 的 PCIe 存储从零设计。它支持 65535 个队列,每队列最多 65536 条目。它直接通过 PCIe 与 CPU 通信,绕过陈旧的 AHCI 层。结果是:软件延迟更低(2.8 µs vs 6 µs/命令)、并行能力极大提升、带宽随 PCIe 代际自然扩展。

为何 SATA SSD 仍感觉极快? 即便 SATA SSD 顺序速率被限制在 550 MB/s,其随机读取延迟(~100 µs)仍比 HDD(~10 ms)快 100 倍。绝大多数消费级工作负载受延迟制约,而非带宽。对于无 M.2 插槽的老款笔记本,SATA SSD 仍是完全合理的选择。

物理形态(Form Factor)#

形态连接器总线典型用途
2.5 英寸 SATASATA 数据 + 供电线SATA III老款笔记本/台式机升级
M.2 2280(B+M 键)M.2 插槽SATA III紧凑型笔记本、入门级装机
M.2 2280(M 键)M.2 插槽PCIe ×4现代台式机/笔记本(NVMe)
U.2U.2 接口PCIe ×4企业级/服务器 2.5 英寸 NVMe
E1.S / E3.SEDSFF 接口PCIe ×4下一代数据中心
AIC(扩展卡)PCIe 插槽PCIe ×4/×8/×16高性能服务器、工作站

形态不决定协议。M.2 插槽既可承载 SATA 亦可承载 NVMe——需依据键位缺口(key notch)及主板规格确认。将 SATA M.2 驱动器插入仅支持 NVMe 的 M.2 插槽(反之亦然),会导致驱动器无法识别。

第四部分 — SSD 内部机制:NAND、FTL 及为何 TLC “仅” 1000 次 P/E 循环却永不磨损?#

NAND 单元是一个阈值电压可编程的晶体管。SLC 每单元存储 1 比特(2 个电压等级),MLC 存储 2 比特(4 级),TLC 存储 3 比特(8 级),QLC 存储 4 比特(16 级)。在相同物理单元内塞入更多电压等级,可使单位 GB 成本约减半,但 耐久性(endurance)约降为四分之一,读取延迟约翻倍

NAND 类型每单元比特数电压等级数P/E 循环次数相对单位 GB 成本当前主流应用场景
SLC12~100000工业级 / 启动 SSD 缓存
MLC(eMLC)243000–10000企业级(消费级罕见)
TLC381000–30001.0×主流消费级与数据中心
QLC416500–10000.7×入门级大容量存储

总是令人惊讶的寿命计算#

耐久性参数看似惊人,但结合真实工作负载计算后便不足为惧。一块 1 TB TLC SSD(1000 P/E 循环)可写入总量达 1 PB 方告磨损。重度桌面用户日均写入约 50 GB;普通用户为 5–15 GB:

使用场景日均写入量耗尽 1 PB TBW 所需时间耗尽标称 600 TBW 所需时间
轻量办公 / 浏览网页5 GB548 年329 年
开发者(编译、虚拟机)30 GB91 年55 年
重度创意(视频剪辑)100 GB27 年16 年
数据库服务器500 GB5.5 年3.3 年

即使“重度创意”场景,其寿命也远超任何现实驱动器生命周期。NAND 磨损殆尽前,驱动器的电子元件或固件早已失效。因此,TLC 是除数据库服务器外所有场景的默认正确选择;后者则需企业级 MLC 或已停售的 Intel Optane。

闪存转换层(FTL)#

FTL 是固件层,负责将主机发出的逻辑块地址(LBA)映射为 NAND 上的实际物理页位置。其存在根源正是读-写-擦除的不对称性:可向干净页写入,但无法覆盖脏页——必须先擦除整个块。

FTL 在 DRAM 中维护一张 映射表(mapping table)(逻辑页 → 物理页)。当你向 LBA 1000 写入时,FTL 并非覆写原物理页,而是写入新干净页、更新映射表,并将旧页标记为 无效(stale)。此即 日志结构写入(log-structured writing),与日志结构文件系统(LFS)及 LSM-tree 数据库所用策略一致。

为何映射表需驻留 DRAM? 1 TB 驱动器(4 KiB 页)含 2.56 亿个条目,按每条目 4 字节计,映射表体积达 1 GB。因此 SSD 出厂标配 DRAM(通常 1 GB / 1 TB);而无 DRAM SSD 在随机工作负载下明显更慢:需从 NAND 读取映射条目,每次地址翻译额外增加一次读取延迟。

HMB(Host Memory Buffer):无板载 DRAM 的入门级 NVMe 驱动器可借用主机系统内存的一小块(32–64 MB)缓存映射表热区。这对 LBA 工作集较小的消费级工作负载,基本可弥补性能差距。

垃圾回收(Garbage Collection, GC)#

当 FTL 可用干净块不足时,需回收含有效页与无效页混合的块。流程为:读取该块中所有有效页,写入新干净块,再擦除旧块。

由此产生两大后果:

  1. 写入放大(Write Amplification, WA):驱动器向 NAND 写入的数据量大于主机实际写入量。WA=2× 意味着主机每写入 1 GB,NAND 实际写入 2 GB。高 WA 不仅浪费耐久性,还降低持续写入速度。
  2. 后台活动(Background Activity):GC 通常在空闲时段后台运行,因此定期让 SSD 保持通电并空闲有益健康。始终处于高负载的驱动器(如 24/7 数据库)需在负载下执行 GC,引发延迟尖峰。

TRIM:操作系统告知 SSD 哪些数据已被删除#

删除文件时,文件系统仅将对应 LBA 标记为“空闲”,但不会通知驱动器。FTL 仍视这些页为有效,在 GC 时将其一并复制——徒增写入放大。

TRIM(SCSI 中称 UNMAP,NVMe 中称 DEALLOCATE)是操作系统向驱动器发送的指令,声明“这些 LBA 已不再使用”。FTL 可立即标记这些页为无效,后续 GC 即跳过它们。

实际影响:未启用 TRIM 的驱动器使用数月后,有效页计数将严重虚高。GC 更频繁、复制更多数据,持续写入速度下降——有时极为显著。这正是“新 SSD 数周后变慢”的根源。启用 TRIM(现代 Windows、Linux、macOS 默认开启)是零成本的性能优化。

1
2
3
4
5
6
# Linux:验证挂载文件系统是否启用 TRIM
lsblk --discard
# DISC-GRAN 和 DISC-MAX 列应为非零值

# 手动触发所有已挂载文件系统的 TRIM
sudo fstrim -av

磨损均衡(Wear Leveling)#

FTL 将写入均匀分布至所有 NAND 块,避免单个块过早失效。分两类:

  • 动态磨损均衡(Dynamic):将 新写入 引导至磨损最少的块。简单有效,但对仅写入一次即长期静默的块(如 OS 分区)无改善——这些块“零老化”,而其他块持续磨损。
  • 静态磨损均衡(Static):周期性地将冷数据(极少写入)迁移至磨损较多的块,并将热数据移至磨损较少的块。此举均衡全盘磨损,包括静态数据所在块。所有现代 SSD 均支持此功能。

预留空间(Over-provisioning, OP)#

消费级 SSD 将 7–28% 的原始 NAND 容量作为不可见的备用空间。“1 TB” 驱动器实际搭载 1024 GiB 或更多原始 NAND,但仅向主机呈现 931 GiB。该备用空间有三大用途:

  1. GC 清洁块来源:FTL 总有可用块供 GC 写入,避免阻塞主机请求。
  2. 坏块替换:当某块错误率超纠错能力时,FTL 将其退役,并映射备用块替代。
  3. 降低写入放大:更多备用块使 GC 可更精细地选择回收目标,减少不必要的数据搬移。

企业级 SSD 通常配备 28% OP;消费级为 7%。用户可通过在驱动器末尾保留未分区空间,人为增加 OP——对写入密集型工作负载,建议预留 10–20%。

SLC 缓存技巧#

多数现代 TLC/QLC SSD 将部分 NAND 以 SLC 模式(每单元 1 比特)运行。此“SLC 缓存”提供高爆发写入速度:TLC 单元以 SLC 模式写入,速度提升 3×,寿命延长 30–100×。

代价是:SLC 模式占用 3× 物理空间。一块 1 TB TLC 驱动器若配备 100 GB 动态 SLC 缓存,实际用于该缓存的物理 NAND 达 300 GB。一旦缓存填满,驱动器必须将 SLC 页“折叠(fold)”回 TLC 模式,新写入则直接进入较慢的原生 TLC 速度。这便是持续写入基准测试中,30–120 GB 区间出现的“SSD 写入速度断崖”。

缓存类型容量行为优点缺点
静态 SLC 缓存固定(如 12 GB)可预测;无折叠突兀感容量小;大写入时迅速填满
动态 SLC 缓存随空闲空间增长初始爆发写入容量大随驱动器填充而缩小;折叠引发延迟
全盘 SLC 模式整盘以 SLC 运行始终最快写入可用容量减半;部分驱动器在极空闲时自动启用

第五部分 — 4K 对齐与 SSD 优化#

什么是 4K 对齐及其重要性#

NAND 页大小通常为 4 KiB(部分新型 NAND 为 8 KiB 或 16 KiB)。若文件系统分配单元(簇)未对齐至 NAND 页边界,单次 4 KiB 逻辑写入可能跨越两个物理页,导致写入放大翻倍、小随机写入 IOPS 减半。

现代操作系统(Windows 7+ 及所有主流 Linux 发行版)默认以 1 MiB 边界对齐分区,天然保证 4K 对齐。问题多见于:

  • 从旧系统克隆的驱动器(Windows XP 使用 63 扇区偏移)
  • 手动分区时采用非标准对齐
  • 虚拟磁盘镜像位于未对齐的宿主分区上
1
2
3
4
5
6
7
# Linux:检查对齐状态
sudo parted /dev/sda align-check optimal 1
# 输出 "1 aligned" 表示正确

# Windows(PowerShell):
Get-Partition | Format-Table DiskNumber, PartitionNumber, Offset
# Offset 值应能被 4096 整除(理想情况为 1048576 的倍数)

五项 SSD 优化实践#

实践操作方法原因
启用 TRIM验证 discard 挂载选项或 fstrim.timer防止 GC 复制已被删除的数据
保留 10–20% 空闲空间不要填满至 80% 以上为 GC 提供缓冲空间,避免写入阻塞
禁用磁盘碎片整理关闭 SSD 的计划碎片整理碎片整理产生无意义写入;SSD 无寻道惩罚
启用 AHCI/NVMe 模式进 BIOS 确认——非 IDE/兼容模式IDE 模式禁用 TRIM 与 NCQ
更新固件定期使用厂商工具检查更新FTL 固件缺陷在首发年份较为常见

监控 SSD 健康状态#

每块 SSD 均暴露 SMART 属性,揭示剩余寿命:

1
2
3
4
5
6
7
8
# Linux:安装 smartmontools
sudo smartctl -a /dev/nvme0n1

# 需重点关注的属性:
# - Percentage Used:         已消耗的标称耐久性比例
# - Available Spare:         剩余备用块(应 >5%)
# - Media and Data Integrity Errors:  应为 0
# - Data Units Written:     已写入总字节数(用于自行计算 WA)

Windows 用户可使用 CrystalDiskInfo 获取相同信息的图形界面。

第六部分 — RAID:以磁盘冗余换取容错能力#

RAID(独立磁盘冗余阵列)将多个物理驱动器组合为单一逻辑卷。各 RAID 级别在数据与校验码分布方式上存在差异。

RAID 级别决策树

级别最小磁盘数可用容量容错能力读取速度写入速度典型用途
RAID 02100%0 块临时空间、缓存、渲染农场
RAID 1250%1 块系统盘、启动镜像
RAID 53(N-1)/N1 块(N-1)×中等通用文件服务器
RAID 64(N-2)/N2 块(N-2)×较低大型阵列(>4 块)
RAID 10450%每镜像对 1 块N× 读取(N/2)×数据库、虚拟机存储

RAID 0:为速度而设,零安全性#

数据以固定大小条带(stripe)分散于各驱动器。任一驱动器故障即导致整个阵列失效。仅适用于可再生数据(构建缓存、渲染农场、游戏安装)。

RAID 1:简单镜像#

每次写入同步至两块驱动器。任一驱动器均可响应读取请求。可用容量为 50%。最简单、最可靠的冗余形式。对于双盘台式机或服务器启动卷,RAID 1 往往是最优解。

RAID 5:分布式校验#

数据与校验码跨所有驱动器条带化分布。一块驱动器容量用于校验,其余存储数据。可容忍单块驱动器故障。重建过程需读取所有幸存驱动器,这正是 RAID 5 在大容量驱动器上风险所在:重建一块 16 TB 驱动器需 12–24 小时,期间若发生第二块故障,阵列即告毁灭。对于单盘容量 >4 TB 的阵列,RAID 6 是更安全的选择。

RAID 6:双重校验#

类似 RAID 5,但每条带含两个校验块。可容忍两块驱动器同时故障。写入惩罚更高(每次写入需更新两个校验块),但对大型阵列而言,这是最低可接受的保护级别。

RAID 10:镜像化的条带#

成对镜像驱动器再进行条带化。兼具 RAID 0 的速度与 RAID 1 的容错性。可承受每组镜像中各一块驱动器故障。对写入密集型工作负载(数据库、虚拟机),当性能与安全性均需兼顾时,RAID 10 是最佳选择。

硬件 RAID 与软件 RAID#

类型控制器CPU 开销启动支持成本
硬件 RAID带电池后备缓存的专用卡200–2000 美元
软件 RAID(mdadm, ZFS)操作系统内核中等是(需配置)免费
伪 RAID(主板)BIOS + 驱动有限免费

现代 CPU 性能足够强大,软件 RAID(Linux mdadm、ZFS、Windows Storage Spaces)对大多数服务器而言是完全可行的选择。硬件 RAID 控制器的电池后备缓存(BBWC)是软件 RAID 无法复制的唯一特性——它可在写入中途断电时防止数据丢失。

RAID 不等于备份#

此点需单独强调,因误解极为普遍。RAID 仅防护 驱动器故障,无法防护:

  • 误删除(删除操作即时同步至所有镜像)
  • 勒索软件(加密操作即时同步至所有镜像)
  • 控制器故障(阵列元数据可能无法被其他控制器识别)
  • 火灾、盗窃、水灾(所有驱动器位于同一台机器内)

备份 意味着副本存于不同介质、不同地点,并具备版本控制。RAID 与备份功能迥异,二者缺一不可。

第七部分 — 文件系统:字节如何变为文件#

文件系统是软件层,负责将文件名、目录结构映射到存储设备上扁平的块序列。文件系统选择直接影响性能、可靠性与功能集。

文件系统操作系统单文件最大尺寸卷最大尺寸日志(Journaling)写时复制(COW)典型用途
NTFSWindows16 EB256 TBWindows 系统盘
ext4Linux16 TB1 EBLinux 默认,通用场景
XFSLinux8 EB8 EB大文件、高吞吐量
BtrfsLinux16 EB16 EB快照、校验和、灵活扩展
ZFSLinux/BSD16 EB256 ZB企业级、自修复、RAIDZ
APFSmacOS8 EB8 EBmacOS/iOS,SSD 优化
FAT32任意4 GB2 TBUSB 驱动器、跨平台兼容
exFAT任意16 EB128 PBSD 卡、大容量 USB 驱动器

日志(Journaling)#

日志型文件系统在将变更提交至主数据结构前,先写入一份变更日志(journal)。若写入中途断电,下次挂载时可依据日志重放或丢弃未完成操作——避免旧式文件系统所需的数小时 fsck

仅元数据日志(Metadata-only journaling)(ext4 默认)仅记录文件系统元数据(目录项、inode 表),不记录文件数据。可防护结构损坏,但无法防止部分文件写入。

完全日志(Full journaling)(ext4 启用 data=journal)同时记录元数据与数据。更安全但更慢,因每个字节需写入两次:一次进日志,一次至最终位置。

写时复制(Copy-on-Write, COW)#

COW 文件系统(ZFS、Btrfs、APFS)从不在原地覆写数据。而是将新版本写入新位置,并原子性更新指针。由此支持:

  • 免费快照(Free snapshots):快照仅为冻结的指针树;数据共享直至被修改。
  • 自修复(Self-healing):每个块均经校验和验证。若读取返回损坏数据且存在镜像或校验副本,文件系统可静默修复。
  • 原子多文件更新(Atomic multi-file updates):整个事务可整体成功或失败。

代价是:COW 文件系统在随机写入工作负载下碎片化更严重,元数据开销更高。ZFS 通过 ARC 缓存与大记录尺寸缓解;Btrfs 通过自动碎片整理(autodefrag)缓解。

第八部分 — 存储分层:热、温、冷数据#

并非所有数据访问频率相同。存储分层将高频访问(热)数据置于快速昂贵介质,低频访问(冷)数据置于慢速廉价介质。

层级介质延迟每 TB 成本典型数据示例
热(Hot)NVMe SSD~30 µs$110活跃数据库、工作集
温(Warm)SATA SSD~100 µs$60日志、近期备份、开发环境
冷(Cold)HDD~10 ms$15归档、合规数据、旧媒体
归档(Archive)磁带 / 云冷存储秒至小时级$3法律留存、监管要求、灾难恢复

实际中的自动分层#

现代存储阵列(NetApp、Pure Storage、Ceph)及云对象存储(S3 Intelligent-Tiering、阿里云 OSS 生命周期规则)可根据访问模式自动在层级间迁移对象。

对于家庭或小型服务器环境,最简分层方案为:

  1. 操作系统与应用置于 NVMe SSD(256 GB – 1 TB);
  2. 活跃项目文件置于 SATA SSD(1–4 TB);
  3. 媒体库、备份与归档置于 HDD(4–16 TB);
  4. 站外备份置于云冷存储(无限容量)。

此四层布局成本低于全盘 NVMe,性能优于全盘 HDD。

第九部分 — 存储选型指南:决策框架#

存储介质选型指南

台式机 / 笔记本购买清单#

  1. 机器是否配备 M.2 NVMe 插槽? → 选购 PCIe Gen 4 NVMe SSD。Gen 5 对消费者属边际升级且价格贵 2 倍;若主板不支持 Gen 4,则 Gen 3 完全够用。
  2. 无 M.2 插槽? → 选购 2.5 英寸 SATA SSD。相较 HDD 仍是巨大升级。
  3. 需大容量媒体存储? → 增加内置 HDD 或外置 USB 3.2 HDD 盒。
  4. 容量需求? → OS + 应用最低 512 GB;2026 年 1 TB 为甜点容量(约 $60);视频剪辑或游戏收藏狂魔可选 2 TB。

服务器 / NAS 购买清单#

  1. 数据库或虚拟机主存储? → NVMe SSD 组 RAID 10。
  2. 通用文件服务器? → SATA SSD 组 RAID 5/6;若容量 >20 TB,则 HDD 组 RAID 6。
  3. 备份目标? → HDD 组 RAID 6 或 JBOD + ZFS RAIDZ2。
  4. 写入密集型工作负载? → 查看驱动器 SLC 缓存填满后的持续写入速率。选用带断电保护的企业级驱动器。避免 QLC 与 SMR。

记忆口诀#

HDD 旋转,SSD 切换 —— 物理原理在任何基准测试前即已决定延迟。
总线定带宽,协议定并行 —— SATA 封顶 0.5 GB/s,NVMe 可扩展至 12 GB/s。
TLC 对人类而言即是永恒 —— 1 PB 耐久性远超任何消费级写入速率。
对齐、TRIM、留空间 —— 三项免费设置可使持续写入寿命翻倍。
RAID 保运行时间,备份保可恢复性 —— 切勿混淆二者。
热字节存于快介质,冷字节存于廉介质 —— 分层,否则付费。

系列下一期: 主板、显卡与扩展总线 —— 芯片组、VRM、PCIe 通道分配、GPU 架构及 BIOS 配置。

本系列

计算机底层原理 6 篇

  1. 01 计算机基础(一):CPU 与计算核心
  2. 02 计算机基础(二):内存与高速缓存系统
  3. 03 计算机基础(三):存储系统(HDD 与 SSD) 当前
  4. 04 计算机基础(四):主板、显卡与扩展
  5. 05 计算机基础(五):网络、电源与故障排查
  6. 06 计算机基础(六):深度解析与系统协作

读有所得?

GitHub 关注我 → 新文周更

GitHub