外存
机械硬盘
机械硬盘(Hard Disk Drive, HDD)是一种使用磁性存储介质来存储和读取数据的非易失性存储设备,广泛应用于计算机和数据存储系统中。
存储区域
为了理解机械硬盘是如何存储数据的,需要理解如下概念:
- 磁头(Heads):磁头是位于硬盘驱动器的读/写臂上的设备,用于读取和写入磁盘上的数据。每个盘片(硬盘通常包含多个盘片,每个盘片都有两个表面)上都有一个磁头,因此每个磁头都可以读取或写入盘片上的数据。磁头通过移动到不同的磁道(track)来寻找并访问数据。
- Track(磁道):磁道是磁盘上的一个同心圆环。
- Cylinders(柱面):柱面是硬盘上的一个数据存储区域,由相同半径位置上的多个盘片上的磁道组成。换句话说,它是所有盘片上相同半径位置的磁道的集合。
- Sectors(扇区):扇区是磁盘上的最小数据存储单元。磁盘通常被划分成许多扇区,每个扇区可以存储一定数量的数据。扇区的大小通常是 512 字节或 4KB。操作系统和磁盘控制器使用扇区作为数据的最小单元,以读取和写入数据。
CHS 地址
当磁盘驱动器访问磁盘中的扇区时,需要根据 CHS 地址(Cylinder-Head-Sector Address,柱面 - 磁头 - 扇区地址)定位到特定的扇区。 CHS 地址可以理解为盘块在磁盘中的编号,它通过以下三个字段来唯一标识磁盘上的一个扇区:
柱面号(Cylinder Number):目标扇区在哪一个柱面上 $$\text{\small 柱面号位数} =\lceil log_2 \text{\small(柱面数量)} \rceil$$
磁头号:目标扇区在哪一个盘面上 $$\text{\small 磁头号位数} =\lceil log_2 \text{\small(盘面数量)} \rceil$$
扇区号:目标扇区具体是磁道中的哪一个扇区 $$\text{\small 扇区号位数} =\lceil log_2 \text{\small(磁道中的扇区数量)} \rceil$$
一个磁盘有多个盘片,每个盘片有两个盘面,对个盘面对应一个磁头,每个盘面包含多个磁道和多个扇区,开始读取数据时,磁头从某个磁道和扇区的交叉位置开始扫描。
示例
假设一个磁盘有 1000 个柱面、4 个盘面、32 个扇区/磁道:
- 柱面号位数:$\lceil \log_2(1000) \rceil \approx \lceil 9.97 \rceil = 10$ 位
- 磁头号位数:$\lceil \log_2(4) \rceil = 2$ 位
- 扇区号位数:$\lceil \log_2(32) \rceil = 5$ 位
- CHS 地址总位数:$10 + 2 + 5 = 17$ 位
通过 CHS 地址(例如,C=500, H=2, S=15),磁盘驱动器可以精确定位到特定扇区。
性能指标
平均存取时间
平均存取时间是磁盘完成一次读写操作的平均耗时,由寻道时间(Seek Time)、旋转延迟(Rotational Latency)和传输时间(Read/Write Time)这三部分构成:
- 寻道时间:磁头从当前位置移动到目标磁道所需的时间,通常与磁头移动距离和致动器性能有关。
- 旋转延迟:盘片旋转使目标扇区到达磁头下方所需的时间,通常为盘片旋转半圈的平均时间,取决于转速。
- 传输时间:读取或写入目标扇区数据的实际时间,与扇区大小和数据传输率相关。
平均存取时间的计算公式为:
$$\text{\small 平均存取时间} = \text{\small 寻道时间} + \text{\small 旋转延迟时间} + \text{\small 传输时间}$$
数据传输率
数据传输率表示磁盘每秒向主机传输数据的字节数,反映硬盘的读写速度。假设磁盘转速为 $r$ 传/秒,每条磁道容量为 $N$ 字节,则数据传输率 $D_r$ 为:
$$D_{r} = rN$$
RAID
RAID 全称为独立磁盘冗余阵列(Redundant Arrar of Independent Disks) 由于磁盘存储介质数据的可靠性容易受到环境影响,而发生数据错误的代价非常大,因此需要考虑存储的容灾与恢复。
RAID 将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性。
RAID 的实现涉及以下核心技术:
- 磁盘镜像:将相同数据写入多块磁盘,提高可靠性。典型如 RAID1。
- 条带化:将数据分段交叉存储在多个磁盘上,提升性能。典型如 RAID0,但不具备容错能力。
- 奇偶校验:通过冗余校验位在部分磁盘损坏时重建数据,兼顾可靠性与存储效率。用于 RAID3/5/6。
- Cache 机制:提高读写性能,但本身不增加可靠性,除非使用掉电保护的写缓存。
常见 RAID 等级如 RAID1(镜像)、RAID5(条带化 + 奇偶校验)、RAID6(双重奇偶校验)等在性能与容错能力之间做出不同权衡。
固态硬盘

固态硬盘(Solid State Drive, SSD)是一种使用闪存(NAND Flash)作为存储介质的非易失性存储设备,与传统机械硬盘(HDD)相比,SSD 在性能、耐用性和能效等方面具有显著优势。SSD 具备以下特点:
- 无机械部件:SSD 没有旋转盘片、磁头或机械臂等移动部件,它使用闪存存储芯片来存储数据。这意味着它不会受到机械故障的威胁,具有更高的耐用性。
- 更快的读写速度:SSD 的读写速度远远超过传统的机械硬盘,因为数据可以立即访问,无需等待盘片旋转和磁头寻道。这使得计算机启动更快,应用程序响应更迅速。
- 低访问时间:由于 没有机械延迟,SSD 的访问时间极低,通常在微秒级别。这有助于加快文件读取和数据检索。
- 长寿命:虽然每个存储单元有写入次数的限制,但现代 SSD 使用错误检查和纠正(ECC)技术,以延长其寿命,并且通常拥有较长的保修期。
- 无碎片化:SSD 的数据存储方式基于闪存单元,读取速度不受数据物理位置的影响,因此不会像 HDD 那样因数据碎片化而降低性能。
- 局限性:
- 容量限制:SSD 的高容量型号(例如 4TB 以上)价格昂贵,而 HDD 在大容量存储上更具优势。
- 写入寿命有限:尽管现代技术已大幅延长寿命,但重度写入场景下仍需关注寿命问题。
机械和固态硬盘对比
以下是从多个维度对 SSD 和 HDD 进行的详细对比:
特性 | SSD(固态硬盘) | HDD(机械硬盘) |
---|---|---|
存储介质 | 闪存(NAND Flash) | 旋转盘片 + 磁头 |
机械部件 | 无,纯电子存储 | 有,盘片、磁头、机械臂等 |
读写速度 | 极快(500 MB/s 至 7000 MB/s,视接口而定) | 较慢(100-200 MB/s) |
随机访问时间 | 极低(0.1 毫秒以下) | 较高(5-10 毫秒) |
耐用性 | 抗震抗摔,无机械故障风险 | 易受震动、摔落影响,机械故障风险较高 |
噪音 | 无噪音 | 有盘片旋转和磁头移动的噪音 |
重量与体积 | 轻薄,适合移动设备 | 较重,体积较大 |
碎片化问题 | 无需碎片整理 | 需定期碎片整理以维持性能 |
适用场景 | 系统盘、高性能计算、移动设备 | 大容量存储、备份、成本敏感场景 |