Skip to content

磁盘调度与 RAID

基于通用操作系统概念 · 核于 2026-08

速查

  • 磁盘结构:**盘片(platter)**双面涂磁性材料 → **磁道(track)**是盘片上一圈 → **扇区(sector)**是磁道上一段(最小读写单位,512B/4KB) → 柱面(cylinder)是所有盘片上同一半径磁道的集合。**磁头(head)**每个盘面一个,所有磁头共装在磁臂上一起移动。
  • 磁盘地址三元组:(柱面号, 磁头号/盘面号, 扇区号) —— 先寻道到柱面、选磁头、等扇区转过来。
  • 访问三时间寻道时间(磁头移到目标柱面,最慢、主导,ms 级)+ 旋转延迟(盘片转到目标扇区,ms 级)+ 传输时间(读写扇区数据,μs 级)。优化寻道 = 优化总性能
  • 调度目标:磁臂移动是机械动作,寻道距离越长越慢——调度算法通过重排请求顺序,减少磁臂总移动距离。
  • FCFS(先来先服务):按请求到达顺序服务——公平但磁臂来回乱跑,寻道距离长
  • SSTF(最短寻道优先):每次选离当前磁头最近的请求——平均性能好,但可能饥饿(远处请求长期得不到服务)。
  • SCAN(电梯算法):磁头单向移动并服务沿途请求,到边界再反向——像电梯,无饥饿,分布均匀。
  • C-SCAN(循环扫描):只单向服务(如只向上),到顶后快速返回底部(返回途中不服务)——各请求等待时间更均匀。
  • LOOK / C-LOOK:SCAN/C-SCAN 的优化——磁头到最远请求即返,不跑到磁盘物理边界(不跑空)。
  • RAID(廉价磁盘冗余阵列):多盘组合成逻辑盘条带化提速(并行 I/O)、镜像/校验容错。
  • RAID 0:纯条带,无冗余——最快但一块坏全毁,可靠性最低。
  • RAID 1:镜像,两盘内容相同——读快、容错好,但容量减半(利用率 50%)。
  • RAID 5:条带 + 分布式校验(每盘轮流存校验)——读快、容 1 块坏、利用率高((N-1)/N),主流
  • RAID 10(1+0):先镜像再条带——性能与可靠兼优,成本高。
  • SSD vs 传统磁盘:SSD 无机械部件(无寻道/旋转延迟),随机访问快百倍;但有写入寿命(擦写次数)和写放大,需磨损均衡TRIM

一、磁盘的物理结构

传统机械硬盘(HDD)的物理结构决定了它的访问特性:

  • 盘片(Platter):硬盘由若干片(1+)铝合金/玻璃圆盘组成,两面涂磁性材料,数据存在磁性方向里。
  • 磁道(Track):盘片上一个同心圆叫一道。每个盘面有几千上万道。
  • 扇区(Sector):磁道被切成一段段,每段是一个扇区——最小的物理读写单位(通常 512B 或 4KB)。扇区有 ID 头 + 数据 + 纠错码(ECC)。
  • 柱面(Cylinder):所有盘片上同一半径的磁道组成一个柱面。因为所有磁头共装在一个磁臂上一起移动,所以访问同一柱面的不同盘面不用换道(只需切换磁头,电子切换比机械移动快得多)。
  • 磁头(Head):每个盘面有一个读写磁头,所有磁头一起固定在磁臂上,共同移动
  • 磁盘地址三元组(柱面号, 磁头号/盘面号, 扇区号)——先移动磁臂到柱面、选哪个磁头(盘面)、等目标扇区转到磁头下。

二、访问时间:寻道主导

读写一个扇区要三段时间:

时间含义量级优化
寻道时间(Seek)磁臂移动磁头到目标柱面ms 级(5-15ms)磁盘调度算法
旋转延迟(Rotational)盘片旋转,目标扇区转到磁头下ms 级(7200rpm 约 4ms)难优化(取决于转速)
传输时间(Transfer)读写扇区数据流过磁头μs 级提高转速/密度
  • 关键寻道时间最长且最可优化(机械移动距离越短越快)。所有磁盘调度算法都在重排请求顺序以减少总寻道距离
  • 现代盘 7200 转/分(RPM),一圈约 8.3ms,平均旋转延迟约 4.2ms;寻道平均 9ms;三者合计约 13ms/次随机访问——这就是磁盘随机 I/O 慢的根源。

三、磁盘调度算法

设当前磁头在柱面 53,请求队列:98, 183, 37, 122, 14, 124, 65, 67(磁盘共 200 柱面 0-199):

1. FCFS(先来先服务)

到达顺序服务:53 → 98 → 183 → 37 → 122 → 14 → 124 → 65 → 67。

  • 总移动:45+85+146+85+108+110+59+2 = 640 柱面。
  • 公平(严格按序),但磁臂来回大幅跳动,寻道距离长,性能差。是基准(最差)。

2. SSTF(最短寻道优先 Shortest Seek Time First)

每次选离当前磁头最近的请求:53 → 65 → 67 → 37 → 14 → 98 → 122 → 124 → 183。

  • 总移动:12+2+30+23+84+24+2+59 = 236 柱面(远好于 FCFS)。
  • 优点:平均寻道短,性能好。
  • 缺点可能饥饿——若远处(如 183)持续有近请求插入,183 可能永远轮不到。SSTF 不是最优,也不是无饥饿。

3. SCAN(电梯算法 / 扫描)

磁头沿一个方向(如向大柱面)移动,沿途服务所有请求,到磁盘边界(199)后反向(向小柱面),继续服务——像电梯上下运行:53 → 65 → 67 → 98 → 122 → 124 → 183 → 199(边界) → 14 → 37。

  • 优点无饥饿(每个请求最迟在磁头扫过两次内被服务);请求分布均匀时性能稳定。
  • 缺点:边界附近的请求等待较长(磁头要往返)。

4. C-SCAN(循环扫描 Circular SCAN)

SCAN 的变体:磁头只单向服务(如只向大柱面移动并服务),到边界(199)后快速返回起点(0),返回途中不服务任何请求,再从 0 重新向上扫:53 → 65 → 67 → 98 → 122 → 124 → 183 → 199 → 0 → 14 → 37。

  • 优点:所有请求的等待时间更均匀(都是单向被服务,不像 SCAN 边界处要等往返)。
  • 缺点:返回空跑有一段无服务的移动。

5. LOOK / C-LOOK(实际常用)

SCAN/C-SCAN 的优化——磁头不必跑到磁盘物理边界到最远的请求就折返("看"一眼有没有更远的,没有就返):

  • LOOK:53 → 65 → 67 → 98 → 122 → 124 → 183(最远请求)→ 14 → 37(不跑到 199)。

  • C-LOOK:53 → 65 → 67 → 98 → 122 → 124 → 183 → 14 → 37(到最远 183 即返,不到 199,直接回最近 14 再向上)。

  • 实际系统多用 LOOK/C-LOOK,省去了跑到边界再折返的空跑,性能更优。

四、RAID:冗余阵列

RAID(Redundant Array of Independent/Inexpensive Disks,独立磁盘冗余阵列):把多个物理盘组合成一个逻辑盘,通过条带化提升性能(并行 I/O)、镜像/校验提供冗余容错。

级别机制冗余利用率特点
RAID 0数据条带分布到 N 盘100%最快(并行),但任一盘坏全毁,可靠最差
RAID 1两盘镜像(数据完全相同)50%读快(可并行)、容错好;写与单盘相当;容量减半
RAID 5条带 + 分布式校验(每盘轮流存校验块)(N-1)/N读快、容 1 盘坏;写有惩罚(要算校验);主流
RAID 10(1+0)先镜像后条带(多对镜像再条带)50%性能与可靠兼优;成本高
  • RAID 0:纯提速无冗余,用于临时数据/缓存(如视频剪辑草稿),不可用于重要数据。
  • RAID 5:性价比之王——至少 3 盘,校验分散在各盘(避免单盘成为瓶颈)。可容忍任意 1 盘损坏(用其余盘+校验重建)。但写惩罚:每次写要重算并写校验(小写问题,read-modify-write)。
  • RAID 6:RAID 5 的加强版,双校验,可容任意 2 盘同时坏——用于大阵列(重建期长,单校验有二次损坏风险)。
  • 重建(Rebuild):坏盘换新后,用剩余数据+校验恢复——重建期间阵列性能骤降有二次损坏风险(剩余盘压力大),是大阵列的脆弱时刻。

五、SSD 与传统磁盘的差异

**SSD(固态盘,Solid State Drive)**用 NAND 闪存存数据,无机械部件,与机械磁盘(HDD)差异巨大:

维度机械磁盘(HDD)SSD
结构盘片+磁头+磁臂(机械)NAND 闪存芯片(全电子)
寻道/旋转有(机械移动,ms 级)
随机访问慢(寻道主导,~10ms)快百倍(μs 级,~100μs)
顺序访问更快
写入寿命无限有限(NAND 块擦写次数 1k-100k 次)
写放大(改一字节要擦除整个块)
特殊机制调度优化寻道磨损均衡(wear leveling)/ TRIM(标记废弃块)/ GC(垃圾回收)
调度算法SCAN/C-SCAN 有意义寻道无意义,调度转向减少写放大
  • SSD 的调度:传统磁盘调度(SCAN)是为减少机械寻道;SSD 无机械部件,寻道时间恒定,调度目标转向减少写放大、均衡磨损、合并随机写为顺序写
  • TRIM:删除文件时,OS 发 TRIM 命令告知 SSD 哪些块已废弃可擦除——避免后续写时的 read-erase-modify-write,提升写性能、降低写放大。
  • FTL(Flash Translation Layer):SSD 内部的映射层,把逻辑块地址映射到物理闪存页,并做磨损均衡——对 OS 透明,SSD 表现为普通块设备。

下一步

磁盘调度与 RAID 讲完后,建议回到参考查阅速查表与易错点,或转向操作系统安全(设备权限与访问控制),以及回顾文件系统(文件如何建立在块设备与 I/O 子系统之上)。