23 磁盘存储器的管理

1 数据组织和格式

磁盘设备可以包括一个或多个物理盘片,每个磁盘面分一个或两个存储面,每个磁盘面被组织成若干个同心环,称为磁道(柱面),各磁道间留有必要的间隙。

磁道又被逻辑上分为不同的扇区,一个物理记录存储在扇区上,磁盘上存储的物理记录数据是由:扇区号、磁道数、磁盘面、盘片决定的。

2 磁盘的类型

1)固定头磁盘:在每条磁道上都有一读/写磁头,全部的磁头都被装在一刚性磁臂中。通过这些磁头可访问全部各磁道。并进行并行读/写,有效地提高了磁盘的I/O速度。

2)移动头磁盘:每个盘面仅配有一个磁头,也被装入磁臂中。

为能访问该盘面上的全部磁道。该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢。

3 磁盘访问时间

寻道时间Ts
把磁头移动到指定磁道上所经历的时间。为启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m*n+s。当中。m是一个常数,与磁盘驱动器的速度有关。

旋转延迟时间Tr
是指定扇区移动到磁头以下所经历的时间。
不同的磁盘类型中。旋转速度至少相差一个数量级。Tr=1/(2r),当中r为磁盘每秒钟的转数。

传输时间Tt
是指把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt的大小与每次所读/写的字节数b和旋转速度有关。
Tt=b/(rN)。当中。r为磁盘每秒钟的转数;N为一条磁道上的字节数,当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tr同样。

访问时间Ta为Ta=Ts+Tr+Tt

4 磁盘调度

因为在访问磁盘的时间中,主要是寻道时间,因此,磁盘调度的目标是使磁盘的平均寻道时间最少。眼下经常使用的磁盘调度算法有先来先服务、最短寻道时间优先及扫瞄等算法。

  • 先来先服务(FCFS)
    它依据进程请求访问磁盘的先后次序进行调度。此算法的长处是公平、简单。且每一个进程的请求都能依次地得到处理,不会出现某一个进程的请求长期得不到满足的情况。

  • 最短寻道时间优先(SSTF)
    其要求访问的磁道与当前磁头所在的磁道距离近期。以使每次的寻道时间最短。

  • SCAN算法
    该算法不仅考虑到欲访问的磁道与当前磁道间的距离。更优先考虑的是磁头当前的移动方向。比如,当磁头正在自里向外移动时,SCAN算法所考虑的下一个访问对象。应是其欲访问的磁道既在当前磁道之外,又是距离近期的。

这样自里向外地访问,直至再无更外的磁道须要访问时,才将磁臂换向为自外向里移动。

  • 循环扫瞄算法(CSCAN)
    CSCAN算法规定磁头单向移动。比如,仅仅是自里向外移动。当磁头移到最外的磁道并访问后。磁头马上返回到最里德欲访问的磁道上。亦将最小磁道号紧接着最大磁道号构成循环,进行循环扫瞄。

  • NStepSCAN算法
    N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个子队列又是按SCAN算法,对一个队列处理完后,再处理其它队列。当正在处理某子队列时,假设又出现新的磁盘I/O请求,便将新请求进程放入其它队列,这样就可能避免粘着现象。

  • FSCAN算法
    仅仅将磁盘请求队列分成两个子队列。一个是由当前全部请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫瞄期间,将新出现的全部请求磁盘I/O的进程,放入还有一个等待处理的请求队列。

5 提高磁盘I/O速度的其他方法

1)提前读
2)延迟写
3)优化物理块的分布
4)虚拟盘

6 便宜磁盘冗余阵列(RAID)

它是利用一台磁盘阵列控制器。来统一管理和控制一组(几台到几十台)磁盘驱动器。组成一个高度可靠的、高速的大容量磁盘系统。为了提高对磁盘的访问速度,已把在大、中型机中应用的交叉存取技术应用到了磁盘存储系统中。

在该系统中。有多台磁盘驱动器,系统将每一盘块中的数据分为若干个子盘块数据,再把每个子盘块的数据分别存储到各个不同磁盘中的同样位置上。在以后,当要将一个盘块中的数据传送到内存时,采取并行传输方式。将各个盘块中的子盘块数据同一时候向内存中传输。从而使传输时间大大降低。

RAID的分级:RAID 0~RAID 7
  • RAID 0
    仅提供了并行交叉存取,无冗余校验功能。致使磁盘系统的可靠性不好。

  • RAID 1
    具有磁盘镜像功能。用磁盘容量换取访问速度,磁盘利用率只有50%。

  • RAID 3
    具有并行传输功能的磁盘阵列。利用一台奇偶校验盘来完毕数据的校验功能。降低了所须要的冗余磁盘数。用于科学计算和图像处理。

  • RAID 5
    一种具有独立传送功能的磁盘阵列。每一个驱动器都各有自己独立的数据通路,独立的进行读/写,且无专门的校验盘。用来进行纠错的校验信息。是以螺旋方式散布在全部数据盘上。用于I/O较频繁的事务处理中。

  • RAID 6
    这是强化了的RAID。在RAID 6级阵列中,设置; 专用的、可快速访问的异步校验盘,该盘具有独立的数据访问通道。虽然具有比RAID 3和RAID 5更好的性能,但性能改进有限且价格昂贵。

  • RAID 7
    RAID 7是对RAID 6 的改进,在该阵列的所有磁盘,都具有较高的传输速率和优异的性能,这是当前最高档次的磁盘阵列,价格也最贵。

你可能感兴趣的:(23 磁盘存储器的管理)