硬盘驱动器是否根据主机控制器的需要打开512e(4k扇区的512字节模拟)?


13

我有一个具有4k物理扇区大小(高级格式)的4 TB硬盘,并将其连接到两个SATA主机控制器(一个在内部,一个在USB机柜中)。在(较旧的版本,大约在2010年)上,它的逻辑扇区大小为512B,但报告其物理扇区为4096字节。在最近的USB机箱中,据报告其逻辑和物理大小为4096B:

# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks

# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)

“内部”控制器显示了我以前看到的行为,通常称为“ 512e”,其中驱动器的固件模拟512扇区LBA寻址,即使它实际上并不以这种方式写入扇区。操作系统(和管理员)可以确保分区对齐,以便可以对(小的)写命令进行分组,以便磁盘可以覆盖整个扇区,而不必回退到需要读取其余部分的物理扇区中。内容优先。

但是,在驱动器(USB机箱)上看到“ 4k native”行为对我来说是新的,我最初的想法是该机箱在驱动器的模拟512B仿真之上仿真4096B寻址。

我只能在Web搜索中找到这种情况,其中USB存储设施已向4k逻辑扇区注册。我假设它们在512e上模拟4k,因此允许使用MBR分区表,以便可以在仅支持MBR + FAT32 usb大容量存储的旧式/嵌入式设备(智能电视等)上使用大型驱动器。

与制造商联系后,他们声称该驱动器实际上是在非仿真(本机)4k模式下运行的,USB SATA控制器也完全没有仿真。这将需要驱动器的固件来检测主机控制器是否支持(所需?)4KB的寻址扇区大小。我在SATA标准的公共文档中找不到有关此的任何内容。所以我问:

  • 是否有人在其SATA控制器上看到“ 4096字节逻辑块”?
  • 驱动器实际上是否支持按需启用/禁用仿真?如果是这样的话,
    • 该确定如何工作?
    • 您可以通过标志在驱动器上覆盖它吗?
    • 您可以通过驱动程序/标志在主机控制器上覆盖它吗?

驱动器上的徽标是“ AF”还是“ 4Kn”?
Jamie Hanrahan 2014年

这个问题确实需要一个高质量的现代答案。
Hashim

Answers:


2

我已经看到一些4Kn SATA驱动器在硬盘驱动器验证行业中工作,但是由于对它们的硬件和软件支持有限以及缺乏客户需求,我不知道它们正在向客户发货。

对于物理扇区大小与逻辑扇区大小,存在两个竞争的映射。长逻辑扇区功能允许设备的逻辑扇区长于512B(例如4Kn),长物理扇区功能允许设备的每个物理扇区有多个逻辑扇区(例如512e),尽管它们不一定相互排斥。如果制造商声称驱动器为4Kn,则较旧的控制器可能会为较旧的应用程序和硬件提供仿真层,例如读取-修改-写入,因为较旧的系统根本不支持4Kn格式。

sg_sat_identifysg3_utils软件包中的命令可能会为您提供所需的信息(对于物理扇区大小/逻辑扇区大小信息,请选择单词106-108)。

看起来SATA驱动器本身并不能支持按需仿真,但是如果驱动器确实使用512e(而不是4Kn),则驱动程序(或USB SATA控制器)可以将读取/写入限制为最大程度的性能优化。 4K边界,例如,传输从低3位为0的LBA开始,到低3位为1的LBA结束:

start_lba & 0x3 == 0
end_lba & 0x3 == 1

因此,基本上,没有“开关”可以告诉驱动器启动或停止仿真。从最终用户的角度来看,最好的选择是确保驱动器针对驱动器使用的任何映射使用最佳的文件系统,并确保其正确对齐。以下站点很好地细分了常见文件系统及其在不同文件系统上的性能与块对齐的状态统计信息:http : //www.ibm.com/developerworks/library/l-linux-on-4kb-sector -disks / index.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.