我目前正在做块驱动程序。我注意到在我的测试中,如果我的平台是 是RHEL6.x/CentOS6.x,我的结构请求的开始 LBA /扇区始终与8对齐(例如0,8,0x10,0x100,0x2508等) 实际上是我设计的驱动程序和固件的最佳选择。看起来 结构请求总是在那里对齐。从结构请求LBA开始地址对齐
在另一方面,如果测试我的司机在一些比较老的系统,如Oracle 5.6, 起始LBA为结构的请求,这似乎并没有被对准 8 - 该LBA被offseted大多数情况下(如0x2507,300F ,0x95bd500f, 等)
我的块队列设置甚至从sysfs中寻找表明,我的 逻辑块的大小和物理块大小分别为512和512, 。所以我不认为这与4kB 部门有关。可能会触发这种行为的设置是什么?是 有一个请求队列或gendisk设置,控制这个,我可能 不知道?或者这是由FS层决定的?希望有人 可以指出。
谢谢!
*“所以我不认为它与4kB扇区有关”* - 为什么不呢?你有没有听说过“向前兼容”?或者当扇区大小为4K字节时512B /扇区仿真的最佳性能如何?阅读http://www.seagate.com/tech-insights/advanced-format-4k-sector-hard-drives-master-ti/ – sawdust 2014-12-07 23:35:03
嗯,我认为,因为我的sysfs条目读取逻辑和物理两个512字节块并没有提及4kb。其他条目,如alignment_offset,minimum_io_size和optimal_io_size分别为0,512,0。无论你如何建议可能值得研究,我如何验证在我的新系统中实现向前兼容性?所以我会在我的旧系统中实现它,比如oel 5.6。 – ubermensch 2014-12-09 02:34:34