设备管理——存储设备

一、磁盘调度
磁盘是共享设备,,但是在任何时候只允许一个对磁盘的I/O操作,其余操作只能等待
1、磁盘访问
①、寻道时间:磁头花费在柱面定位上的时间。Ts=m*n+s
②、旋转延迟时间:指定扇区移动到磁头下面所需的时间
③、传输时间:数据写入磁盘或从磁盘上读出的时间
2、磁盘调度算法
分为寻道调度和旋转调度2类。就目前来说,访问磁盘最耗时的还是寻道,因此,磁盘调度大多数算法限定在追求平均寻道时间最少这个目标上
(1)、FCFS
先来先服务,按所有进程访问磁盘请求的先后顺序进行调度,平均寻道时间较长

磁头访问次序:
(2)、SSTF
最短寻道时间优先,选择磁道与当前磁头所在磁道距离最近的下一I/O操作进行。使每次寻道时间最短,但不能保证平均寻道时间最短

磁头访问次序:

注:可能存在迟迟得不到响应的I/O操作
(3)、SCAN
扫描算法,也称电梯算法。不仅要考虑欲访问的磁道与当前访问磁道的距离,而且更优先考虑磁头当前移动方向

磁头访问次序:

注:既能获得较好的寻道性能,又可以防止进程饥饿现象,被广泛使用。但是,可能存在进程的请求被严重推迟的情况
(4)、CSCAN
循环扫描算法,磁头只做单向移动

磁头访问次序:

(5)、FSCAN
SCAN的简化版。将磁盘请求访问队列分成2个子队列,一个是当前所有请求I/O的进程队列,按SCAN算法处理,另一个是扫描期间新出现的所有请求I/O的进程队列。这样,所有的新请求都将被推迟到下一次扫描时处理

二、存储错误处理
从磁盘驱动程序的角度来讲,需要关注和进行以下错误处理
①、程序性错误,如:申请不存在的磁道
②、瞬时校验错误,如:磁头上有灰尘引起的读写错误
③、永久性校验错误,如:磁盘块物理介质损坏
④、寻道错误,如:寻找柱面2,磁臂却定位到柱面4
⑤、控制器错误,如:控制器拒绝执行命令

三、RAM盘
将一块内存区域虚拟成磁盘块设备,同样支持写数据块操作和读数据块操作

四、磁盘阵列
1、作用
①、通过冗余提高可靠性,如:建立镜像
②、通过并行性提高性能,如:将原来在一个物理盘连续的数据分条分布到多盘

2、分类
(1)、RAID 0
用块级条带分割数据,并行的读写多个磁盘,具有较高的数据传输率。但没有任何冗余,没有数据可靠性保证

(2)、RAID 1
采用磁盘镜像技术,阵列中的单元为一对互为备份的磁盘
特点:
①、进行数据读操作时,可以从任一镜像盘进行读取,提高了操作的性能
②、当一个盘失效,系统可以自动的交换到镜像磁盘上,而不需要重组失效的数据,可靠性好
③、一半的磁盘用于备份,成本较高

(3)、RAID 1+0
将RAID 1和RAID 0进行结合,其中磁盘被镜像成对,最后得到的镜像对被条带化

(4)、RAID 2
使用位条带化,对每个数据磁盘中相应位都计算一个海明错误校正码,并且这个码位保存在多个奇偶校验磁盘中相应的位
四位数据宽度,3个纠错盘:

(5)、RAID 3
继承RAID 2,采用简单的异或逻辑代替海明码校验,条带宽度为字节。只需一块额外的校验盘

(6)、RAID 4
块交错奇偶校验结构,运用块级条带化。此外,对于N个磁盘上的对应块,在另外单独的磁盘上保存奇偶校验块,如果N个磁盘中的某个失效了,奇偶校验块可与其他磁盘上保存的对应块来恢复存储失效的块
(7)、RAID 5
独立的数据磁盘与分布式校验,与RAID 4相比,将数据和奇偶校验分布到所有N+1个磁盘上。通过把奇偶校验位分布于阵列中的所有磁盘上,避免了RAID 4可能出现的过度使用单独一个奇偶校验磁盘的情况。各盘阵生产厂家的奇偶块分布规则可能不同。

(8)、RAID 6
P+Q冗余模式,与RAID 5相比,增加了第二个独立的奇偶校验信息块
特点:
①、即使2块磁盘同时失效,也不会影响数据的使用
②、需要分配给校验信息更大的磁盘空间