评估RAID系统的可靠性

1 为RAID套件的可靠性建立模型

本文将描述在一个RAID套件内的硬盘驱动器之间的关系的数学模型,利用这些模型,对它们在磁盘阵列中的总体可靠性来进行评估,本次采用的存储系统是一种低成本、可升级、外置的光纤通道存储子系统,它可以支持在一个3U的机架高度内放置总计14个1英寸的硬盘驱动器,它的磁盘阵列可以被设置成RAID级别的0、1、0+1、3和5。

2 RAID 0:数据分割

RAID-0主要涉及数据分割,它是负责在多个磁盘驱动器内容量相等的块之间传递数据的,举例来说,一个150KB的文件可以被分成条或者块来通过10个 10KB的块,对于操作系统来说,组成RAID的磁盘条被显示为一个单独的逻辑磁盘。数据条提供一个低成本的方法来增加磁盘输入/输出的性能,但是,RAID-0不能提供任何数据冗余;也就是说,如果RAID组件内的一个驱动器出现了错误,所有的数据都会丢失。

设想一个按RAID-0设置的六个硬盘驱动器组成的磁盘阵列,根据可靠性预计图表,这些硬盘驱动器被设想为成一个系列,这个由六个磁盘组成的RAID-0磁盘阵列的可靠性值很简单就是每一个单独的硬盘驱动器的可靠性的乘积。

或者对于n硬盘驱动器。

对于配有14个硬盘驱动器并使用RAID-0磁盘配置的磁盘阵列来说,该RAID系统的可靠性是:

这一结果表明在三年内没有任何数据损失的可能性是23%.相反的,在同样的时间内发生数据损失的可能性是77%。

3 RAID 1:磁盘镜象和双向化

RAID-1使用镜象或者说是影像;所有在给定磁盘上写入的数据都将被复制到另一个磁盘上,RAID-1需要至少两个硬盘驱动器来运行和组成成对的磁盘;每一对磁盘都被作为一个RAID组件考虑,举例来说,在一个由3个硬盘驱动器组成的RAID-1磁盘阵列里,硬盘1和2可以镜象数据,而硬盘3被设计为一个发生错误时使用的驱动器(如果发生了失败使用热插拔),一个由4个硬盘驱动器组成的RAID-1磁盘阵列可以简化为两个RAID-1的RAID组件,一个由6个硬盘驱动器组成的RAID-1磁盘阵列可以被简化为三个RAID-1的RAID组件,依此类推。

镜象可以提供数据冗余和提高读取的性能,在一个RAID-1配置下,一对硬盘驱动器里的一个发生错误不会损失任何数据,但是,如果同一对的两个驱动器都发生了错误,数据将会丢失,下图显示了由6个硬盘驱动器组成的RAID-1磁盘阵列的可靠性计算公式,该RAID磁盘阵列的预计可靠性的数学关系式是:

请注意在这种情况下RAID组件的数目是三组.如果所有硬盘驱动器都是一样的,那么它们的关系是:

对于一个使用14块硬盘驱动器并配置为RAID-1磁盘阵列(7组RAID组件)的服务器,该磁盘阵列的可靠性是:

这个结果显示了在三年内不发生任何数据损失的可能性是93%,相反,在同一时期内出现数据损失的可能性是7%。

4 RAID 0+1:镜象分割

在RAID-0+1配置下,数据被分割到一个磁盘组然后再被镜象到另一个磁盘组上,从而导致了良好的输入/输出性能和可靠性,如果一个磁盘组里的驱动器出现了错误,该磁盘组的数据将会丢失,但是所有数据都会保留在镜象磁盘组上,但是,如果剩余的磁盘组(镜象)内的任何一个硬盘驱动器在第一个磁盘组被恢复前出现了错误,那么所有的数据都会丢失。

RAID-0+1需要至少4块硬盘驱动器来运行,假设所有的硬盘驱动器都是一样的,计算RAID-0+1配置下的一个磁盘阵列的可靠性的数学关系式是:

对于带有14块硬盘驱动器的磁盘阵列来说,一个可能的设置是其中12块硬盘驱动器组成一个RAID-0+1磁盘阵列而剩下的两块硬盘驱动器作为失败恢复,这个配置的可靠性是:

这个结果显示了在三年内不发生任何数据损失的可能性是90%,相反,在同一时期内出现数据损失的可能性是10%。

5 RAID 3:带奇偶校验的比特级的数据分割

在RAID-3中,RAID控制器将计算奇偶(错误修正)信息并且将它存储到指定的奇偶校验用硬盘驱动器.数据被分割成字节或者比特大小的块来存储到剩余的硬盘驱动器上,RAID-3提供了较高的数据传输速率;但是,写入所需要的时间要慢一些,因为在每一个写入操作时奇偶校验信息需要被写入到一个单独的奇偶校验用驱动器。

RAID-3可以承受在一个由n个硬盘驱动器组成的磁盘阵列里一个硬盘的失败,举例来说,如果奇偶校验硬盘出现了失败,剩余的存储数据用硬盘不会被影响,但是冗余将丢失.如果一个数据硬盘出现了失败,RAID控制器使用剩余的数据硬盘同时奇偶校验硬盘重新计算丢失的数据,系统性能将有稍微的降低知道出现错误的硬盘驱动器被恢复;但是,不会有数据丢失,如果在发生错误的硬盘恢复以前另一个硬盘又出现了错误,那么RAID组件内的所有的数据将会丢失。

RAID-3需要至少3块硬盘驱动器来运行,在RAID-3配置下n块硬盘驱动器的可靠性计算的数学关系式是:

在这里k是必须计算在n块硬盘之外的硬盘的数量。

对于带有14块硬盘驱动器的磁盘阵列,可能的配置是13块硬盘驱动器使用RAID-3,剩下的硬盘作为失败恢复,下图显示了该配置的可靠性计算,在这里13块硬盘驱动器中的12块必须被计算。

这个结果显示了在三年内不发生任何数据损失的可能性是62%,相反,在同一时期内出现数据损失的可能性是38%。

6 RAID 5:带有分割的奇偶校验的数据分割

RAID-5和RAID-4很相似除了奇偶校验数据被分割保存到所有硬盘驱动器,而不是写入一个指定的硬盘驱动器,从而消除了单个奇偶校验驱动器的瓶颈问题,这里依然是同样,当一个硬盘驱动器发生错误,所有的数据仍然是可用的,丢失的数据将从剩余的硬盘驱动器和奇偶校验信息中重新计算得到,RAID-5配置的可靠性图表和使用n块硬盘驱动器的可靠性计算数学关系式和RAID-3的一样。

对于带有14块硬盘驱动器的服务器,可能的配置是13块硬盘驱动器使用RAID-5,剩下的硬盘作为失败恢复,对这一配置的可靠性计算方法和RAID-3 一样,13块硬盘里的12块是必须被计算的,这个结果显示了在三年内不发生任何数据损失的可能性是62%,相反,在同一时期内出现数据损失的可能性是 38%。

7 镜象可以提供最可靠的RAID系统

下图总结了对于在配有14块硬盘驱动器的磁盘阵列上使用RAID配置的可靠性期望值计算,这些可靠性期望值显示了使用镜象的RAID级别比使用奇偶校验的那些RAID级别要更少出现失败,RAID-10,一个分割和镜象的混合体,具有在三年内没有任何数据丢失的最高的可能性(94%),因为RAID-0不使用镜象,它有丢失数据的最高可能性(77%)。

从可靠性工程学的角度看,RAID的可靠性应该和系统中的其它元素的可靠性结合起来从而得出整个系统的可靠性,在这种情况下,不同的RAID级别对于整个产品平台的影响可以针对不同的市场战略来计算。