【问题标题】:write on track / head / cylinder on a magentic disk写在磁盘上的磁道/磁头/柱面
【发布时间】:2013-09-06 02:46:36
【问题描述】:

我正在开发一个高性能数据库,我想同时直接写入具有多个磁头的特定磁道/柱面。这是如何通过 SATA 总线在带有 SATA 磁盘的 Linux 中完成的?您可以推荐任何文档、示例吗?

【问题讨论】:

  • 典型的 HDD 一次只能执行一次读取或写入操作。为了执行这种优化的块操作,您可能需要编写自己的文件系统。但由于大多数(或全部?)现代 HDD 采用分区记录和坏扇区重新映射,因此您永远无法确定轨道的结束位置以及“下一个”(相邻)扇区的访问最终涉及寻道和/或旋转延迟.

标签: c linux-kernel disk sata


【解决方案1】:

您不能直接执行此操作。对于现代驱动器,物理驱动器布局由驱动器控制器抽象出来,对于过去 20 年制造的任何磁盘,驱动器控制器都位于驱动器本身内部。上位机看到的接口是按照线性逻辑块地址定义的(驱动上报的C/H/S值仅用于兼容性,与硬件布局无关)。

但是,很可能(在没有重映射块的情况下)简单地写入相邻逻辑块的块是最快的选择 - 这是因为驱动器往往经过优化以执行快速线性写入。

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 2021-07-12
    • 2013-10-05
    • 1970-01-01
    • 2014-09-17
    • 2017-10-12
    • 2013-01-02
    • 2011-10-21
    • 1970-01-01
    相关资源
    最近更新 更多