磁盘阵列有着广泛的应用,但它却又往往是整个系统安全运行的瓶颈,它的可靠性的量化计算越来越受到关注,因为有了量化的数据,就能为深层次地认识事物本质提供科学的依据,为多方案的优化比较奠定基础,进而做出正确的决定。作一个可行的磁盘阵列方案并不难,难的是作一个优化的方案。我们认为解决这些问题的关键是能否找到可靠度的数学模型,如果能找到的话,问题就可以迎刃而解。正是在这种情况下,由于实际工作的需要,我作了一些资料收集与整理,对硬盘阵列的可靠度作了探索性求解,现写成此文,以作抛砖引玉。
>RAID 简介
>RAID是由美国加州大学伯克利分校的DA Patterson教授提出的。RAID是Redundant Array of Inexpensive Disks的缩写,简称为”磁盘阵列”。可以把RAID理解成将一组磁盘驱动器有机的组合方式,构成逻辑上的一个磁盘驱动器。RAID的具体实现可以靠硬件,譬如磁盘阵列柜;也可以靠软件,Windows NT操作系统就提供软件RAID功能。以前RAID一般是用SCSI磁盘驱动器实现的。由于现在IDE硬盘在容量和质量上都有了显著的进步,所以RAID现在也应用到了IDE磁盘驱动器上。但由于常见的IDE通道最多只能接4个磁盘驱动器,因而常见的IDE的RAID功能不如SCSI的丰富。现在已出现了IDE硬盘专用的阵列柜,并且具备RAID5功能,支持挂接6只硬盘;同时,光接口的出现也更加丰富了RAID产品。从数学角度看,除RAID0外,其余都属工作冗余系统。
>RAID的特点
>1、成本低,功耗小,数据传输速率高。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器若干倍的速率。
>2、可以提供容错功能,提高了可靠度,当然这是以冗余为代价的。这是RAID获得广泛应用的重要原因之一。
>3、RAID是获得大容量逻辑存储器的价廉物美、简单易行的好方法。这是RAID获得广泛应用的又一重要原因。
>4、当RAID由硬盘阵列柜实现时,硬盘阵列柜的价格比起硬盘来往往是较贵的,甚至贵得多。
>常用RAID的分类及其特征
>1、RAID0,无冗余无校验的磁盘阵列。数据同时分布在各个磁盘驱动器上,没有容错能力,读写速度最快,可靠度最差。数学上称RAID0为串联模型,磁盘数N可以大于2,本文仅给出N=2的数学模型和可靠度。
>2、RAID1,镜象磁盘阵列。最基本的并联模型,1/2表决器。
>3、RAID 0+1,实际上是RAID 0和RAID 1的派生,先RAID 0再RAID 1。最基本的串并联模型。
>4、RAID1+0. 也是RAID 1和RAID 0的派生。先RAID 1再RAID 0。最基本的并串联模型,串联数N可以大于2 。
>5、RAID2~4不常用,本文既不介绍也不分析。
>6、RAID5,无独立校验盘的奇偶校验磁盘阵列。校验信息分布在各个磁盘驱动器上。RAID5对大小数据量的读写都有很好的性能,能获得较高的可靠度,又能组成较大的容量,在磁盘的数量上有较灵活的选择余地,因而得到广泛应用。RAID5是属于(N-1)/N表决器数学结构。
>7、RAID还有其他的类型,某些类型,名称虽然一样,各生产商有各自特殊的定义,使用时应引起注意。
>RAID的可靠性模型
>这里所说的模型是指可靠度的模型,它和电路上的串并联不可混为一谈。例如若有两只电容并联,但任何一只失效,都会使系统失效,那么在可靠性计算中则被判为串联。可靠度模型还有非串联并联的模型。这里所说的可靠度是指在规定的时间内,在规定的条件下,完成规定功能的能力,本文以概率计量。
>磁盘阵列可靠度的计算
>根据平均故障间隔时间(MTBF),可以推断出单只磁盘的规定时间的无故障可靠度概率。按希捷网站提供的数据,SCSI硬盘的MTBF为100万小时,IDE硬盘的MTBF为40万小时。部分品牌的硬盘未给出MTBF,应该说,希捷的资料具有一定的代表性。按RAID可靠度的数学模型,计算出常见RAID的可靠度,并整理成表,以便对比。从该表不难看出,IDE的RAID1也有极高的可靠度。由于SCSI硬盘比IDE硬盘价格要贵得多,性能也高出不少,为了获得比较合理的结论,可选择以下方式比较:规定时间内、相同价格下比可靠度;或规定时间内、相同可靠度下比价格;当然还有其他的比较方式。不难得出以下结论:SCSI硬盘一次性投资较大,相对一劳永逸,RAID的可选形式较多。IDE硬盘一次性投资小,要达到规定可靠度,必须分段投资,总价仍较低,相对麻烦,目前实际的可选形式较少,但可选形式的增多是必然趋势。由于计算机硬件发展极其迅速,上述结论只是特点而已,具体如何处理,还得视具体情况而定。
>磁盘阵列可靠度表
>时间 一年 两年 三年
>格式盘型 SCSI硬盘无故障可靠度 (MTBF=100万小时)
>单只硬盘 0.991278257 0.982632582 0.974062314
>Raid 0 0.982632583 0.965566792 0.948797391
>Raid 0+1 0.999698372 0.998814354 0.997378292
>Raid 1+0 0.999847868 0.999396836 0.998654925
>Raid 1 0.999923931 0.999698372 0.