Skip to content

ch12 大容量存储器的结构

12.1 磁盘

  1. 基本概念 alt text
  • 磁头与磁臂相连,磁臂能将所有磁头作为一个整体而移动。磁盘表面被逻辑划分为原型磁道,磁道进一步划分为扇区。统一磁臂位置的磁道集合形成柱面
  • 磁盘速度有两部分
    1. 传输速率:驱动器和计算机之间的数据传输速率
    2. 定位时间/随机访问时间:由寻道时间和旋转等待时间组成
    3. 寻道时间:磁臂将磁头移动到包含目标扇区的柱面的时间
    4. 旋转等待时间:磁盘需要将目标扇区转动到磁头下的时间
  1. 磁盘结构
  • 现代磁盘驱动器可以看作一个一个一位逻辑块的数组,逻辑块时最小的传输单位,一维逻辑块数组按顺序映射到磁盘的扇区,理论上能将逻辑块号转换为磁盘内柱面号,磁道号和扇区号。但是事实上执行这种转换并不容易,因为:
    1. 绝大多数磁盘都有一些缺陷扇区,映射必须要用磁盘上其他空闲扇区替代
    2. 磁盘是圆的,磁盘离中心越远长度越长。为此有两种解决方式,一种是增加外部扇区数并且随着磁头外移驱动器也会增加速度;另一种方式时降低外道的磁道密度
  1. 磁盘附属
    • 计算机访问磁盘存储的方式:
    1. 主机附属储存:通过本地I/O端口访问的存储
    2. 网络附属存储(NAS):客户通过远程调用接口来访问NAS
    3. 存储区域网络(SAN):服务器与存储单元之间由私有网络(采用存储协议而不是网络协议)

12.2 磁盘调度

  • 操作系统任务之一就是有效使用硬件。对磁盘驱动器来说就是要由较快的访问速度和较宽的磁盘带宽。访问时间主要包括寻道时间和旋转延迟
  • 概念解析:
    • 磁盘带宽:锁传递的总的字节数初一从服务请求到最后传递结束的总时间
    • 当一个进程需要对磁盘进行I/O操作时,它就会向操作系统发出一个系统调用,如果所需的磁盘驱动器和控制器忙,新的服务请求就会被加到该磁盘驱动器的待处理请求队列上。对于如何选择处理请求,操作系统有多个调度算法可供选择 alt textalt text
    • 磁盘调度算法的选择:SSTF或LOOK被认为是比较合理的默认算法,SCAN和C-SCAN适合磁盘负荷较大的。除了算法以外,目录和索引的位置也很重要,因为它们经常被访问,一般放在中央柱面。另外需要注意,这里所描述的调度算法只考虑可寻道时间,旋转等待的时间和寻道时间几乎一样,但是操作系统比较调度以改善旋转等待。

12.3 RAID结构

  1. 独立磁盘冗余阵列(RAID,Redundant Array of Independent Disks)
  • 首先了解两个基础知识:
    1. 通过冗余改善可靠性:可靠性问题结局方案是引入冗余,即存储额外信息,在磁盘出错的时候可以用来重新修补损坏信息。引入冗余最简单的方法就是复制每个磁盘,这种技术称之为镜像,但是价格比较昂贵
    2. 通过并行提高性能:对于磁盘镜像,读请求处理速度加倍,因为有两个位置可以读。可见,对于多个磁盘,可以通过分散数据改善传输速率 alt text
    • 镜像提高可靠性却昂贵;分散提供高数据传输率却未改善其可靠性。RAID采用并行交叉存取以及数据冗余校验来融合二者优点
    • RAID计数将数据按位级或者按级分散写入到多个磁盘上,多个磁盘可以同时读写存取操作,实现数据的并行存取,提高了系统的性能;再结合数据冗余技术以及校验技术,例如磁盘镜像、其他校验技术(CRC,Hamming码等),有提高系统的可靠性
  1. RAID级别
    • 如图,P为差错纠正位,C为数据的第二副本
    1. RAID 0:无冗余磁盘阵列:数据块级分散,并行交叉存取,无数据冗余;磁盘不容错
    2. RAID 1:磁盘镜像
    3. RAID 2:内存方式的差错纠正代码结构
      • 奇偶校验:内存系统每个字节都有一个相关的奇偶位以记录字节中置1的个数是奇数还是偶数。如果字节的一个位损坏或者奇偶位损坏就会出现不匹配然后被内存系统所检测
      • RAID 2采用了位级分散,即每一个字节的第n位位于第n个磁盘上,除了奇偶校验位外,差错纠正方案还会多储存两个或多个额外位,当单个位出错时可用来重新构造数据
    4. RAID 3:位交织奇偶结构
      • 与内存系统不同,磁盘控制器能检测到一个扇区是否正确读取,因为采用位级分散,所以每一位都在不同的磁盘上,单个奇偶位就足够进行差错检测,加上磁盘控制器检测的某个磁盘出错,就完全可以完成纠正了。因此级别2在实际中并不使用。级别3的问题在于如果奇偶校验盘损坏,数据就无法恢复
      • 另一个性能问题时关于奇偶校验的奇偶位需要计算和写。为了减少这样的性能损失,RAID存储阵列包括一个专门奇偶计算硬件的控制器使CPU奇偶计算换到RAID阵列
    5. RAID 4:块交织奇偶结构
      • 块级分散,采用与RAID 0一样的块级分散,另外在一独立磁盘上保存其他N个磁盘相应的奇偶块。允许磁盘无缝加到RAID集合;加的磁盘块初始化为RAID集合仍然正确
      • 但是若奇偶校验盘出错数据无法恢复;多个磁盘出错,数据无法恢复
    6. RAID 5:块交织分布奇偶结构
      • 将数据和奇偶分布在所有N+1块磁盘上,即第n块磁盘的奇放在第(n mod 5)+1块磁盘上,避免了级别4对单个奇偶盘使用过度,是最常见的奇偶校验RAID系统
    7. RAID 6:P+Q冗余方案
      • 与级别 5 类似,也是将校验位分布在不同的磁盘上,但是不再使用奇偶校验,而是用公式生成 P、Q。P 为所有数值的异或,Q 是乘了系数的异或,其中系数是 n 个线性无关的数值。当只有一位出错时,用P就可以恢复(同RAID5);当有两位出错时,可以用 P、Q联立求解。
      • 核心思想就是有两份检验数据以保证两位数据出错也能保障数据安全
    8. RAID 0+1:RAID 0和RAID 1的组合,有更高的性能和可靠性,同时也更昂贵
    • 适用性:
      1. RAID 0-适于性能要求高但数据可靠性要求不高的应用;
      2. RAID 1-适于可靠性要求高和快速恢复的应用;
      3. RAID (0+1)和(1+0)-适于性能和可靠性要求都高的应用;例如小型数据库服务器;
      4. RAID 5-用于存储量大的数据
      5. RAID 6-较少有支持; alt text

12.4 例题

alt text