写在磁盘上的磁道/磁头/柱面

Posted

技术标签:

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

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

【问题讨论】:

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

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

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

【讨论】:

以上是关于写在磁盘上的磁道/磁头/柱面的主要内容,如果未能解决你的问题,请参考以下文章

机械硬盘

磁盘与文件系统管理

学习记录011-磁盘结构和文件系统

详解Linux磁盘管理与文件系统

详解Linux磁盘管理与文件系统

Linux磁盘管理