在操作系统和管理程序(例如设备驱动程序和文件系统,此处统称为操作系统)软件的设计中,磁盘扇区大小是一个重要的因素,因为它代表磁盘驱动器上 I/O 操作的原子单位。并非所有操作系统版本都已修改为可以在磁盘驱动器中使用 4 KB 扇区。因此,这些新设备的固件可能会提供 4 KB Native (4Kn) 或 512 B Emulation (512e) 的逻辑扇区大小。
512e 是一种高级格式,其中物理扇区大小为 4,096 字节,但逻辑扇区大小模拟 512 字节的扇区大小。512e 主要应用于新设备,这些新设备将与不支持 4Kn 扇区的操作系统搭配使用。但是,从内在而言,512 字节的模拟涉及到设备固件中每个非 4 KB 一致的写入操作的读取-修改-写入过程。
例如,执行 I/O 操作的工作负载,由于 I/O 操作从磁盘启动时就未与 4 KB 偏移(以字节为单位)对齐,或者其长度不是 4 KB 的倍数,导致用户因为驱动器中每个写入操作中发生的读取-修改-写入过程而遭受对齐损失。该损失对于较小操作更加明显。对于大规模的 I/O,每次的操作延迟主要是由传输次数引起。由于许多 512e 驱动器比旧的 512n 驱动器稍快,执行特定大小(例如,256 KB 或更大,有时稍小)的操作后对齐损失一般可以抵消。
换言之,即使使用 512e 扇区,应用程序和操作系统最好还是执行 4 KB 对齐的 I/O 以实现预期性能。此问题是常见问题,并不特定于任何具体操作系统。
此外,读取-修改-写入损失也适用于磁盘 (HDD) 和固态磁盘 (SSD),但是由于磁盘的 IOPS 数更低,对磁盘性能的影响也更明显。
下表对原生的 512 字节扇区与新的高级格式进行了比较:
格式化 | 逻辑扇区大小 | 物理扇区大小 |
512n | 512 | 512 |
512e | 512 | 4,096 |
4Kn | 4,096 | 4,096 |
vSphere/vSAN 6.0 及更低版本的设计不支持使用 4Kn/512e 直接连接磁盘驱动器。仅 6.5 及更高版本支持 512e 驱动器。
从 6.0 版本开始已针对 4K 对齐的 I/O 操作优化了 Virtual SAN,包括新的 vsanSparse 快照格式。但是,由于 ESXi 之前的构建的限制,无法完全实现 4k 对齐的使用率。