对齐硬盘分区和未对齐硬盘分区
到目前为止,我们尚未讨论主机系统和硬盘如何针对介质上的扇区位置进行通信。我们现在就来介绍一下逻辑块地址(Logical Block Address,LBA)。每个512字节扇区都分配了唯一的LBA,根据硬盘大小,数字可以是从0到所需的数
字。主机会使用分配的LBA来请求特定的数据块。主机请求写入数据时,会在写入结束时会返回一个LBA地址,告知主机数据的位置。这对于4K扇区的过渡非常重要,因为主机LBA起点位置可以有八种可能性。
当LBA 0与4K物理扇区中的第一个512字节虚拟块对齐时,512字节模拟的逻辑块到物理块对齐情况称为Alignment 0。另一种可能出现的对齐情况是,LBA 0与4K物理扇区中第二个512字节虚拟块对齐。这种情况称为 Alignment 1,下图比较了Alignment 1 Alignment 0 两种对齐情况。另外,还有六种可能出现的分区不对齐情况,会引起与Alignment 1情况相似的“读取-修改-写入”事件。
Alignment 0情况与高级格式化标准中新的4K扇区完全符合。因为硬盘能够轻松将8个相邻的512字节扇区映射到一个4K扇区。实现此映射的方法是,将512字节的写入请求储存在硬盘的缓存中,等接收到8个连续的512字节数据块时再将其写入到4K扇区(8个连续的512字节块刚好构成一个4K扇区)。由于现代计算应用要处理大量的数据,这些数据一般都超过4K,因此很少发生“超短帧”的情况。但是,Alignment 1却是完全不同的状况。
当创建的硬盘分区出现不对齐(如图 9 所示)的情况时,会引起“读取-修改-写入”循环,影响硬盘性能。这是在实现高级格式化硬盘的过程中应主要避免的情况,我们稍后对此进行讨论。
小型写入
现代计算应用中的数据一般都大大超过512字节,如文档、图片和视频流等。因此,硬盘会将这些写入请求存储在缓存中,直到这些连续的512字节数据块能够组成一个4K扇区。只要硬盘分区是对齐的,就可以轻松地将512字节扇区映射到4K扇区,而不会对性能产生任何影响。但是,某些低级别的处理会强制硬盘处理“超短帧”状况(这种状况与未对齐分区无关)。这种情况很少见,仅当主机发出小于 4K 的离散写入请求时发生。低级别的处理通常都是处理文件系统、日志的操作系统级别的活动,或是类似的低级别活动。通常来说,这些活动发生的几率很小,因此不会明显影响到总体性能。但仍然建议系统设计人员考虑对这些过程进行适当修改,以便在实现4K过渡后能最大化硬盘性能。