1/81▲第8章输入输出系统2/81▲8.1I/O系统的性能8.2I/O系统的可靠性、可用性和可信性8.3廉价磁盘冗余阵列RAID8.4总线8.5通道处理机8.6I/O与操作系统3/81▲8.1I/O系统的性能1.输入/输出系统简称I/O系统它包括:I/O设备I/O设备与处理机的连接2.I/O系统是计算机系统中的一个重要组成部分完成计算机与外界的信息交换给计算机提供大容量的外部存储器3.按照主要完成的工作进行分类:存储I/O系统(本章内容)通信I/O系统4/81▲8.1I/O系统的性能4.I/O系统的性能对CPU的性能有很大的影响,若两者的性能不匹配,I/O系统就有可能成为整个系统的瓶颈。5.系统的响应时间(衡量计算机系统的一个更好的指标)从用户输入命令开始,到得到结果所花费的时间。由两部分构成:I/O系统的响应时间CPU的处理时间6.多进程技术只能够提高系统吞吐率,并不能够减少系统响应时间。5/81▲8.1I/O系统的性能7.评价I/O系统性能的参数主要有:连接特性(哪些I/O设备可以和计算机系统相连接)I/O系统的容量(I/O系统可以容纳的I/O设备数)响应时间和吞吐率等8.另一种衡量I/O系统性能的方法:考虑I/O操作对CPU的打扰情况。即考查某个进程在执行时,由于其他进程的I/O操作,使得该进程的执行时间增加了多少。6/81▲1.反映外设可靠性能的参数有:可靠性(Reliability)可用性(Availability)可信性(Dependability)2.系统的可靠性:系统从某个初始参考点开始一直连续提供服务的能力。用平均无故障时间MTTF来衡量。系统中断服务的时间用平均修复时间MTTR来衡量。8.2I/O系统的可靠性、可用性和可信性7/81▲8.2I/O系统的可靠性、可用性和可信性MTTF的倒数就是系统的失效率。如果系统中每个模块的生存期服从指数分布,则系统整体的失效率是各部件的失效率之和。3.系统的可用性:系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。MTTF+MTTR:平均失效间隔时间MTBF(MeanTimeBetweenFailure)4.系统的可信性:服务的质量。即在多大程度上可以合理地认为服务是可靠的。(不可以度量)MTTRMTTFMTTF可用性=8/81▲8.2I/O系统的可靠性、可用性和可信性例8.1假设磁盘子系统的组成部件和它们的MTTF如下:(1)磁盘子系统由10个磁盘构成,每个磁盘的MTTF为1000000小时;(2)1个SCSI控制器,其MTTF为500000小时;(3)1个不间断电源,其MTTF为200000小时;(4)1个风扇,其MTTF为200000小时;(5)1根SCSI连线,其MTTF为1000000小时。假定每个部件的生存期服从指数分布,同时假定各部件的故障是相互独立的,求整个系统的MTTF。9/81▲8.2I/O系统的可靠性、可用性和可信性解整个系统的失效率为:系统的MTTF为系统失效率的倒数,即:即将近5年。100000023100000012000001200000150000011000000110系统失效率=小时=43500231000000MTTF10/81▲8.2I/O系统的可靠性、可用性和可信性5.提高系统组成部件可靠性的方法有效构建方法(validconstruction)在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。纠错方法(errorcorrection)在系统构建中采用容错的方法。这样即使出现故障,也可以通过容错信息保证系统正常工作。11/81▲1.磁盘阵列DA(DiskArray):使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。多个磁盘并行工作。以条带为单位把数据均匀地分布到多个磁盘上。(交叉存放)条带存放可以使多个数据读/写请求并行地被处理,从而提高总的I/O性能。2.这里并行性有两方面的含义:8.3廉价磁盘冗余阵列RAID12/81▲8.3廉价磁盘冗余阵列RAID多个独立的请求可以由多个盘来并行地处理。减少了I/O请求的排队等待时间如果一个请求访问多个块,就可以由多个盘合作来并行处理。提高了单个请求的数据传输率3.问题:阵列中磁盘数量的增加会导致磁盘阵列可靠性的下降。如果使用了N个磁盘构成磁盘阵列,那么整个阵列的可靠性将降低为单个磁盘的1/N。解决方法:在磁盘阵列中设置冗余信息盘当单个磁盘失效时,丢失的信息可以通过冗余盘中的信息重新构建。13/81▲8.3廉价磁盘冗余阵列RAID4.廉价磁盘冗余阵列RAIDRedundantArraysofInexpensiveDisks独立磁盘冗余阵列RedundantArraysofIndependentDisks5.大多数磁盘阵列的组成可以由以下两个特征来区分:数据交叉存放的粒度(可以是细粒度的,也可以是粗粒度的)细粒度磁盘阵列是在概念上把数据分割成相对较小的单位交叉存放。14/81▲8.3廉价磁盘冗余阵列RAID优点:所有I/O请求都能够获得很高的数据传输率。缺点:在任何时间,都只有一个逻辑上的I/O在处理当中,而且所有的磁盘都会因为为每个请求进行定位而浪费时间。粗粒度磁盘阵列是把数据以相对较大的单位交叉存放。多个较小规模的请求可以同时得到处理。对于较大规模的请求又能获得较高的传输率。冗余数据的计算方法以及在磁盘阵列中的存放方式15/81▲8.3廉价磁盘冗余阵列RAID6.在磁盘阵列中设置冗余需要解决以下两个问题:如何计算冗余信息?大多都是采用奇偶校验码;也有采用汉明码(Hammingcode)或Reed-Solomon码的。如何把冗余信息分布到磁盘阵列中的各个盘?有两种方法:把冗余信息集中存放在少数的几个盘中。把冗余信息均匀地存放到所有的盘中。(能避免出现热点问题)RAID级别可以容忍的故障个数以及当数据盘为8个时,所需要的检测盘的个数优点缺点公司产品0非冗余,条带存放0个故障;0个检测盘没有空间开销没有纠错能力广泛应用1镜像1个故障;8个检测盘不需要计算奇偶校验,数据恢复快,读数据快。而且其小规模写操作比更高级别的RAID快检测空间开销最大(即需要的检测盘最多)EMC,HP(Tandem),IBM2存储器式ECC1个故障;4个检测盘不依靠故障盘进行自诊断检测空间开销的级别是log2m级(m为数据盘的个数)没有3位交叉奇偶校验1个故障;1个检测盘检测空间开销小(即需要的检测盘少),大规模读写操作的带宽高对小规模、随机的读写操作没有提供特别的支持外存概念7.RAID的分级及其特性RAID级别可以容忍的故障个数以及当数据盘为8个时,所需要的检测盘的个数优点缺点公司产品4块交叉奇偶校验1个故障;1个检测盘检测空间开销小,小规模的读操作带宽更高校验盘是小规模写的瓶颈网络设备5块交叉分布奇偶校验1个故障;1个检测盘检测空间开销小,小规模的读写操作带宽更高小规模写操作需要访问磁盘4次广泛应用6P+Q双奇偶校验2个故障;2个检测盘具有容忍2个故障的能力小规模写操作需要访问磁盘6次,检测空间开销加倍(与RAID3、4、5比较)网络设备18/81▲8.3廉价磁盘冗余阵列RAID8.有关RAID的几个问题关键问题:如何发现磁盘的故障在磁盘扇区中除了保存数据信息外,还保存有用于发现该扇区错误的检测信息。设计的另一个问题如何减少平均修复时间MTTR典型的做法:在系统中增加热备份盘热交换技术与热备份盘相关的一种技术19/81▲1.非冗余磁盘阵列,无冗余信息。2.严格地说,它不属于RAID系列。3.把数据切分成条带,以条带为单位交叉地分布存放到多个磁盘中。8.3.1RAID0ABCDEMNO...IJKLFGH8.3廉价磁盘冗余阵列RAID20/81▲8.3廉价磁盘冗余阵列RAID1.镜像磁盘,对所有的磁盘数据提供一份冗余的备份。每当把数据写入磁盘时,将该数据也写入其镜像盘。在系统中所有的数据都有两份。8.3.2RAID1AAEEBDDHCCGGBFFIIMMMJLLPKKOOJNN镜像镜像镜像镜像====HP21/81▲8.3廉价磁盘冗余阵列RAID2.RAID1的特点能实现快速的读取操作。对于写入操作,镜像的两个磁盘都要写入。但可并行进行,而且不需要计算校验信息,所以其速度比级别更高的RAID都快。可靠性很高,数据的恢复很简单。实现成本最高。22/81▲8.3廉价磁盘冗余阵列RAID1.存储器式的磁盘阵列(按汉明纠错码的思路构建)含4个数据盘的RAID28.3.3RAID2A0A1A2A3B0D0D1D2C0C11C2C3B1B2B3ECC/AxECC/AyECC/AzECC/BxECC/DxECC/DyECC/DzECC/CxECC/CyECC/CzECC/ByECC/BzECC/BxD3字A=A0~A3字B=B0~B3字C=C0~C3字D=D0~D3字A的ECC=Ax~Az字B的ECC=Bx~Bz字C的ECC=Cx~Cz字D的ECC=Dx~Dz23/81▲8.3廉价磁盘冗余阵列RAID2.RAID2的特点每个数据盘存放所有数据字的一位(位交叉存放)各个数据盘上的相应位计算汉明校验码,编码位被存放在多个校验(ECC)磁盘的对应位上。冗余盘是用来存放汉明码的,其个数为log2m级。m:数据盘的个数(也就是数据字的位数)并未被广泛应用,目前还没有商业化产品。24/81▲8.3廉价磁盘冗余阵列RAID1.位交叉奇偶校验磁盘阵列8.3.4RAID3产生器AparityBparityDparityCparity条带0条带1条带2条带3条带0、1、2、3的校验A0A1A2A3B0D0D1D2C0C11C2C3B1B2B3D3奇偶校验25/81▲8.3廉价磁盘冗余阵列RAID2.RAID3的特点采用奇偶校验写数据时:为每行数据形成奇偶校验位并写入校验盘读出数据时:如果控制器发现某个磁盘出故障,就可以根据故障盘以外的所有其他盘中的正确信息恢复故障盘中的数据。(通过异或运算实现)细粒度的磁盘阵列,即采用的条带宽度较小。(可以是1个字节或1位)能够获得很高的数据传输率,这种磁盘阵列对大数据量的读写具有很大的优越性。不能同时进行多个I/O请求的处理。只需要一个校验盘,校验空间开销比较小。26/81▲8.3廉价磁盘冗余阵列RAID1.块交叉奇偶校验磁盘阵列2.采用比较大的条带,以块为单位进行交叉存放和计算奇偶校验。实现目标:能同时处理多个小规模访问请求8.3.5RAID4产生器块0块1块2块3的校验AparityBparityDparityCparityA0A1A2A3B0D0D1D2C0C11C2C3B1B2B3D3奇偶校验块0、1、2、327/81▲8.3廉价磁盘冗余阵列RAID3.RAID4读写特点读取操作每次只需访问数据所在的磁盘。仅在该磁盘出现故障时,才会去读校验盘,并进行数据的重建。写入操作假定:有4个数据盘和一个冗余盘。写数据需要2次磁盘读和2次磁盘写操作。28/81▲8.3廉价磁盘冗余阵列RAID写读++异或异或A0A1A2A3AparityA0’A1A2A4A’parityA0’读写RAID4能有效地处理小规模访问,快速处理大规模访问,校验空间开销比较小。但其控制比较复杂。29/81▲8.3廉价磁盘冗余阵列RAID1.块交叉分布奇偶校验磁盘阵列2.数据以块交叉的方式存于各盘,无专用冗余盘,奇偶校验信息均匀分布在所有磁盘上。8.3.6RAID50的校验E4E1E2E34的校验B4C4D43的校验2的校验1的校验A块B块C块D块E块A21A31A0B0C0D0A1C3B21D2B1C1D330/81▲8.3廉价磁盘冗余阵列RAID1.P+Q双校验磁盘阵列2.特点校验空间开销是RAID5的两倍容忍两个磁盘出错8.3.7RAID6B4C4D4B3C2D1Q1校验P2校验Q0校验P1校验P0校验D2A4P3校验A1