分类: 服务器与存储
2010-12-09 16:15:29
名称:--An introduction to disk drive modeling
出处:1994 IEEE.
作者:Chris Ruemmler and John Wilkes
单位:Hewlett-Packard Laboratories, Palo Alto, CA
1.Characteristics of modern disk drives(现代磁盘驱动器描述)
以nonremovable magnetic disk drives with embedded SCSI (Small Computer Systems Interconnect) controllers(内置SCSI的非易失型磁盘驱动器)为例。
控制器功能:
(1)管理从机械设备中存储和取回数据。
(2)执行从逻辑地址到物理磁盘扇区的映射。
2. The recording components(记录结构)直径越小,可以存储更少的数据,但可以销耗最少的能量,可以转的更快。
存储密度取决于两个因素:
(1)最高的线性记录密度
可以记录和读取的最大的磁通量变化率(the maximum rate of flux changes)
(2)将磁道之间的距离变短(磁道密度)
一个磁盘可以有多个盘片(platter),它们都在同一个轴心(spindle),多个盘片保持同步的转动。
增大旋转速度可以加快传输速度,减少rotation延迟。
每一个盘片表面有一个磁头,来recording或通过感知磁通变化来读数据。第一个磁盘有一个数据通道,可以在磁头之间切换。它用来编码和解码数据流。多个通道可以支持在同一时间,有多个操作,但是开销很大如:(1)多个通道之间的交互(2)保持多个盘面上的磁头同时在盘面上对齐。
3. The positioning components每一个磁头连接到一个磁臂,所有的磁臂连接到同一个轴。所以,任何一个磁头的转动,将导致所有其它磁头的转动。
随着磁道密度的增加,与柱面有关的垂直对齐的概念将越来越不相关,因为track对齐容忍度非常好。因此,我们可以独立的考虑每个盘片上的track。
定位系统的作用是确保相关的磁头快带定位到相应的磁道,即使有外界的干扰。
seeking(寻道时间或称为磁头移动时间),包括
(1)speedup
磁臂加速直到到达seek距离的一半或是到达最大的速率
(2)coast
对于长距离的seek,磁臂以最大速率运行
(3)slowdown
减速,至到接近要求达到的扇区
(4)settle
非常短距离的seek时间是由settle时间决定的。
短距离的seek时间,正比于seek 距离的平方根+settle时间。
长距离的seek时间,正比于距离+一个常数
随着磁道密度的增大,用于settle阶段的时间的比重将增加。
控制器调整磁头,访问要求的扇区
如果每一个磁盘请求是独立的,那第平均seek distance是seek全程的1/3。
track following
在seek结束后,调整磁头位置,并保持磁头在相应的磁道位置。它利用在制造磁盘时记录在磁盘上的定位信息来判断磁头是否对齐。这些信息可以集成到每一个目标磁面或是放到一个单独的磁面。
track-following system也被用来执行磁头切换。当控制器将channel从一个磁面切换到另一个磁面时,新的磁头需要重新定位来消除在不同磁面对齐时小的差异。
现在,很多磁盘驱动器用一个抢先,优化的方法来处理在一个读操作之前的head settling。意思是,在head接近于相应的track之前,就尝试一个read操作。如果数据不可读,即settle操作还没有完成,则没等待。如果已经准备好,则读取数据。这样就节约了时间。
Data layout
Zoning
相邻的柱面被组织为zones。每一个zones中的track的扇区数是相等的。越外层的zones,每个track的扇区数越多。
Track skew
下一个track的0扇区的起使位置,与上一个track的位置有一定偏移。这样来优化跨磁道的连续访问。这个偏移是由最坏情况下的head-或track-切换时间决定的。
Sparing
磁面不可避免的有很多缺陷,一个列表将被建立并存放在磁盘上,方面控制器使用。
对缺陷的解决方法是依次下移一个扇区或一个track。
4. The disk controller(1)管理对机械装置的访问
(2)运行track-following system 在磁盘驱动器和它的使用者之间传输数据
(3)管理内置缓存
bus interface
磁盘驱动的主机channel的主要因素有:(1)拓扑结构(2)传输率(3)开销
SCSI当前被定义为bus
caching of requests
read ahead
读缓存,read ahead(预读)就是其中的一种。如果没有预读,对于一个顺序访问,可能要等待一个完整的一周。可以选择多个策略,比如是否aggressive read-ahead , crossing track and cylinder boundaries, 到达track结尾是否停止。
单个read-ahead缓存仅仅有效的支持单个顺序读流,如果两个或更多的读流是交叉进行的,将没有什么好处。所以可以将cache分段。
write caching
command queuing
5. Modeling disk drives