磁盘的结构
一、磁盘的物理结构
二、磁盘的逻辑结构
逻辑结构是磁盘如何组织和存储数据的方式。常见的逻辑结构包括:
-
扇区(Sector)
- 磁盘最小的数据存储单元,传统上每个扇区大小为 512 字节,较新的磁盘扇区大小可能是 4096 字节(即 4KB)。
- 每个扇区都有唯一的编号。
-
磁道(Track)
- 磁盘表面上同心圆形的轨道,每个磁盘面由多个磁道组成。
- 每个磁道由若干扇区组成,磁头在磁道上移动来读取和写入数据。
-
柱面(Cylinder)
- 由不同盘片的相同位置的磁道组成,贯穿整个磁盘堆叠。即,多个磁盘面中相同半径的磁道组成一个柱面。
- 磁头可以在一个柱面内同时访问不同盘片的相应位置。
-
- 现代硬盘普遍采用 LBA(Logical Block Addressing)方式,它使用线性地址来标识数据存储的位置,提高了寻址效率。
磁盘的调度算法
磁盘时间
算法
磁盘调度算法用于决定磁盘读写请求的顺序,以提高磁盘访问效率,减少平均寻道时间和响应时间。下面介绍几种常见的磁盘调度算法及其特点:
先来先服务(FCFS - First-Come, First-Served)
- 算法描述:按照请求到达的顺序进行调度,不做任何优化。
- 优点:实现简单,公平地处理所有请求。
- 缺点:可能导致“饥饿”或长时间延迟,尤其是在请求分布不均时,容易出现长寻道时间。
最短寻道时间优先(SSTF - Shortest Seek Time First)
- 算法描述:选择与当前磁头位置距离最近的请求进行调度。谁离磁道近就选择谁。
- 优点:减少了平均寻道时间,效率比FCFS高。
- 缺点:可能出现“饥饿”现象,远端请求可能一直得不到处理,因为短距离请求持续加入。
扫描算法(SCAN,也称电梯算法,有点像雨刷)
- 算法描述:磁头在磁盘上来回移动,处理其路径上所有的请求。每当到达一个边界时,磁头改变方向。
- 优点:较均衡地处理请求,减少了磁头的频繁移动,避免了SSTF中的“饥饿”现象。
- 缺点:边缘的请求可能会等待较长时间。
LOOK算法
- 算法描述:与SCAN类似,但LOOK算法不会将磁头移动到最远端的边界,而是根据请求位置,在有请求的最后一个位置掉头。
- 优点:减少了不必要的磁头移动,进一步提高了效率。
- 缺点:在极端情况下可能存在一定的不公平性。
循环扫描算法(C-SCAN - Circular SCAN)
- 算法描述:磁头从一端开始移动到另一端,处理路径上的请求。当磁头到达一端后,立即返回另一端并继续处理,而不在返回路径上处理请求。
- 优点:提供更均衡的响应时间,对磁盘中心和边缘的请求处理较公平。
- 缺点:可能增加回程路径上的非工作时间,但整体公平性更好。
循环LOOK算法(C-LOOK)
- 算法描述:类似C-SCAN,磁头只在有请求的位置掉头,而不是移动到磁盘的最远端。磁头到达一端后直接返回起始端继续处理。
- 优点:减少了磁头回程路径上的非工作时间,同时保持了C-SCAN的公平性。
- 缺点:仍然有一定的空闲时间在返回路径上。
算法对比
调度算法 | 优点 | 缺点 | 适用场景 |
---|
FCFS | 实现简单,公平 | 可能出现长时间延迟和不均衡 | 小型系统或低负载场景 |
SSTF | 平均寻道时间短 | 可能产生“饥饿”问题 | 高效读写,但请求频繁 |
SCAN | 相对公平,减少了频繁移动 | 边缘请求等待时间较长 | 负载较重的系统 |
C-SCAN | 更加公平,对各个请求响应时间一致 | 增加了磁头的回程非工作时间 | 大型系统或需要公平性 |
LOOK | 减少不必要的移动 | 仍有边缘请求可能延迟 | 需要灵活调度的系统 |
C-LOOK | 保持公平性,减少回程非工作时间 | 实现复杂性稍高 | 公平性优先的系统 |
N-Step SCAN | 高负载下提供稳定响应时间 | 实现复杂,管理较难 | 负载波动较大的系统 |
FSCAN | 提供稳定的调度,不受动态请求影响 | 实现复杂,内存需求高 | 高负载、高并发场景 |
减少磁盘延迟时间
- 交替编号是指按照某种间隔或规律分布编号,通常用于提高性能和并行性。
- 错位命名是指打乱编号顺序的分布方式,通常用于优化访问效率或分散存储以减少冲突和损坏。
两者的应用可以根据存储系统和文件系统的需求来实现不同的优化策略,确保数据的高效和可靠存储。
读扇区以后需要等待进行处理,因此采用交替编号,0,4,1,5,2,6,3,7
错位命名,1号扇区下方是4号扇区,提供时间。
磁盘的管理
磁盘初始化
磁盘初始化是指对新磁盘进行初步配置,使其能够被操作系统识别和使用。
包括以下几个步骤:
- 分区:磁盘被划分为若干逻辑分区,每个分区可以被不同的操作系统或文件系统使用。常见的分区类型有主分区、扩展分区和逻辑分区。
- 格式化:分区后,每个分区被格式化为特定的文件系统,如 NTFS、FAT32、ext4 等。格式化会在分区上创建文件系统结构(如目录表、空闲空间表等)。
- 引导扇区:在分区的开始,系统会创建引导扇区,其中包含引导加载程序和一些基本的文件系统信息。
引导块(Boot Block)
通过自举装入程序可以找到引导块。是用于启动操作系统的特殊磁盘区域。它是磁盘上被指定为启动操作系统的扇区,通常位于磁盘的第一个扇区(称为主引导记录,MBR)或 GUID 分区表(GPT)的头部。引导块的具体作用包括:
- 引导加载程序:引导块存储了引导加载程序的第一部分代码,负责引导整个操作系统的加载过程。对于 MBR,这段代码约有 512 字节。
- 操作系统选择:引导块可以用于多重引导设置,允许用户在多个操作系统之间进行选择。
- 引导过程:
- 计算机启动时,BIOS/UEFI 会将控制权交给磁盘上的引导块。
- 引导块会加载操作系统内核或其他引导加载程序的下一部分。
MBR和GPT是常见的引导块结构,其中:
- MBR:兼容性高,但支持的最大磁盘容量为 2 TB,只能有 4 个主分区。
- GPT:现代标准,支持更大的磁盘和多达 128 个分区(在大多数系统中)。
坏块管理
磁盘在使用过程中,某些扇区可能会变得不可读或写,这些称为坏块。
-
坏块检测:
- 磁盘扫描:通过工具(如
chkdsk
或 fsck
)扫描磁盘来检测坏块,标记无法使用的扇区。 - SMART 技术:硬盘内置的自监控、分析和报告技术(SMART)可监测磁盘的健康状况,预警潜在故障。
-
坏块重映射:
- 备用扇区:现代磁盘通常预留了备用扇区,一旦发现物理坏块,磁盘控制器会将数据重定向到备用扇区,使用户感觉不到坏块的存在。
- 动态分配:在写入数据时,如果发现坏块,磁盘控制器会自动将数据写入备用扇区。
SSD
固态硬盘(SSD)是一种基于闪存存储技术(FLASH)的存储设备,相比传统机械硬盘(HDD),在性能、可靠性和功耗等方面都有显著优势。
原理
SSD 的核心技术是 NAND 闪存和控制器芯片。
- NAND 闪存:SSD 使用 NAND 型闪存芯片来存储数据,数据以电子形式保存在称为“单元”的结构中。单元可以存储一位(SLC,单层单元)或多位数据(MLC,多层单元;TLC,三层单元;QLC,四层单元)。
- 控制器:SSD 的控制器负责管理数据的读写操作、纠错、垃圾回收和磨损均衡等功能。它是SSD性能的核心,影响数据传输速度和可靠性。
- 缓存:一些高性能的 SSD 会配备 DRAM 缓存,用于加速数据写入和读取。
组成
典型 SSD 的组成包括以下部分:
- 闪存芯片:存储数据的主要组件,通常由 NAND 型闪存构成。
- 控制器:负责处理数据的输入输出操作,包括数据管理和优化算法(如垃圾回收和磨损均衡)。
- DRAM 缓存:用于临时存储写入数据或元数据,以提高读写性能。
- 接口:连接 SSD 与计算机的桥梁,常见的接口类型包括 SATA、NVMe(基于 PCIe)和 mSATA。
读写性能特征
- 随机读取/写入速度:随机读取和写入 IOPS(每秒输入输出操作次数)远高于 HDD。以页写。以块为单位,进行擦除。因此需要复制到别的地方,写完以后,再清楚,删除。会导致逻辑地址映射的物理地址会变换。读快,写慢。
- 顺序读取/写入速度:SSD 在顺序读取和写入时也比 HDD 快得多。SATA 接口的 SSD 顺序读取速度通常在 500 MB/s 左右,而 NVMe 接口的 SSD 可以达到数 GB/s。
- 访问时间:SSD 的访问时间在毫秒级以下,通常只有几微秒,远小于 HDD 的数毫秒。
- 数据一致性:由于没有磁盘转速的限制,SSD 在系统处理并发时能够提供更一致的数据读写性能。
磨损均衡技术
由于 NAND 闪存单元有有限的擦写次数(即写入寿命),为防止某些存储单元比其他单元磨损更快,SSD 采用磨损均衡(Wear Leveling)技术。其主要原理如下:
- 静态磨损均衡:定期将存储在寿命较长区域的冷数据(长时间不变的数据)移动到较新的闪存块,防止某些区域因频繁擦写而过早损坏。
- 动态磨损均衡:在写入新数据时,控制器会分配新数据到写入次数较少的闪存块,以确保均匀使用。
- 垃圾回收:SSD 通过定期回收和整理闪存空间,确保可以用的新块可用,减少写入放大的影响。
SSD 与机械硬盘 (HDD) 的对比
特性 | SSD(固态硬盘) | HDD(机械硬盘) |
---|
结构 | 无机械部件,使用 NAND 闪存存储数据 | 有旋转的磁盘和机械臂来读写数据 |
读写性能 | 读取和写入速度非常快,顺序读取速度可达 500 MB/s(SATA)到数 GB/s(NVMe) | 顺序读取速度约 100–150 MB/s |
随机访问 | 微秒级访问时间,通常为几微秒 | 毫秒级访问时间,通常为数毫秒 |
耐用性 | 没有机械部件,更耐震动和跌落 | 机械部件易受物理损坏,震动和跌落有风险 |
功耗 | 功耗较低 | 功耗较高,尤其在旋转和寻道时 |
噪音 | 完全静音 | 有噪音,尤其是在高速旋转和寻道时 |
存储容量 | 逐渐提升,目前主流容量为 256 GB 到数 TB | 高容量更普遍,容量通常在 1 TB 到 18 TB 及以上 |
价格 | 每 GB 价格较高,但正在下降 | 每 GB 价格较低,适合大容量存储 |
使用寿命 | 有擦写次数限制,但通过磨损均衡技术可延长寿命 | 使用时间久后机械部件会磨损 |
抗震能力 | 出色的抗震能力 | 抗震能力较弱,易受物理冲击损坏 |