存储基础知识白皮书 内部公开
个磁盘的失败。为了实现这个思想,目前基本上有两个已经接受的方法:
? 使用多种算法,如X O R和某种其他的函数。 ? 在不同的数据分条或者磁盘上,使用排列的数据。 2. RAID 6的一维冗余
RAID 6的第一种方法是用两种不同的方法计算校验数据。实现这个思想最容易的方法之一是用两个校验磁盘支持数据磁盘,第一个校验磁盘支持一种校验算法,而第二个磁盘支持另一种校验算法,使用两种算法称为P + Q校验。一维冗余是指使用另一个校验磁盘,但所包含的分块数据是相同的。例如,P校验值可能由X O R函数产生,这样,Q校验函数需要是其他的某种操作,一个很有力的侯选者是Reed Solomon误差修正编码的变体,这个误差修正编码一般用于磁盘和磁带驱动器。假如两个磁盘失败,那么,通过求解带有两个变量的方程,可以恢复两个磁盘上的数据,这是一个代数方法,可以由硬件辅助处理器加速求解。
4.2.8 RAID10-N/2的磁盘空间,先做镜像,后对镜像进行条带化。
效率同RAID0,安全同RAID1,读写速率则4倍单盘写速率
RAID10是RAID1和RAID0的结合,也称为RAID(0+1),先做镜像然后做条带化,既提高了系统的读写性能,有提供了数据冗余保护,RAID10的磁盘空间利用率和RAID1是一样的,为50%。RAID10适用于既有大量的数据需要存储,又有对数据安全性有严格要求的领域,比如金融,证券等。
2005-05-17
华为三康机密,未经许可不得扩散 第31页, 共96页
存储基础知识白皮书 内部公开
D1D2D3D4D5D6D7D8 D1 D5 D2 D6 D3 D7 D4 D8 D1 D5 D2 D6 D3 D7 D4 D8
4.2.9 RAID01- N/2的磁盘空间,先做进行条带化,后做镜像,不出问题的时候效率等同于RAID10,镜像盘处问题的话,整个阵列完蛋。
RAID01也是RAID0和RAID1的结合,但它是对条带化后的数据进行镜像。但与RAID10 不同,一个磁盘的丢失等同于整个镜像条带的丢失,所以一旦镜像盘失败,则存储系统成为一个RAID-0 系统(即只有条带化)。RAID01的实际应用非常少。
2005-05-17
华为三康机密,未经许可不得扩散 第32页, 共96页
存储基础知识白皮书 内部公开
D1D2D3D4D5D6D7D8 D1 D5 D2 D6 D3 D7 D4 D8 D1 D5 D2 D6 D3 D7 D4 D8
4.2.10 JBOD
JBOD(Just Bundle Of Disks)译成中文可以是\简单磁盘捆绑\,通常又称为Span。 JBOD 不是标准的RAID级别,它只是在近几年才被一些厂家提出,并被广泛采用。
Span是在逻辑上把几个物理磁盘一个接一个串联到一起,从而提供一个大的逻辑磁盘。Span上的数据简单的从第一个磁盘开始存储, 当第一个磁盘的存储空间用完后, 再依次从后面的磁盘开始存储数据。
Span存取性能完全等同于对单一磁盘的存取操作。Span也不提供数据安全保障。它只是简单的提供一种利用磁盘空间的方法,Span的存储容量等于组成Span的所有磁盘的容量的总和。
2005-05-17
华为三康机密,未经许可不得扩散
第33页, 共96页
存储基础知识白皮书 内部公开
4.3 不同RAID级别对比
在各个raid级别中,使用最广泛的是raid0,raid1,raid10,raid5
RAID-0,将数据分成条带顺序写入一组磁盘中。RAID-0 不提供冗余功能,但是它却提供了卓越的吞吐性能,因为读写数据是在一组磁盘中的每个磁盘上同时处理的,吞吐性能远远超过单个磁盘的读写。
RAID-1,每次写操作都将分别写两份到数据盘和校验盘上,每对数据盘和校验盘成为镜像磁盘组。也可使用并发的方式来读数据时,提高吞吐性能。如果镜像磁盘组中某个磁盘出错,则数据可以从另外一块磁盘获得,而不会影响系统的性能,然后,使用一块备用磁盘将健康磁盘中的数据复制出来然后这两块磁盘又组成新的镜像组。
RAID1/0,即RAID1 与RAID0 的结合,既做镜像又做条带化,数据先镜像再做条带化。这样数据存储既保证了可靠性,又极大地提高了吞吐性能。
RAID-0/1 也是RAID0 与RAID1 的结合,但它是对条带化后的数据进行镜像。但与 RAID10 不同,一个磁盘的丢失等同于整个镜像条带的丢失,所以一旦镜像盘失败,则存储系统成为一个RAID-0 系统(即只有条带化)。
RAID-5 是将数据校验循环分散到各个磁盘中,它像RAID-0 一样将数据条带化分散写 到一组磁盘中,但同时它生成校验数据做为冗余和容错使用。校验磁盘包含了所有条带的数 据的校验信息。RAID-5 将校验信息轮流地写入条带磁盘组的各个磁盘中,即每个磁盘上既有数据信息又同时有校验信息,RAID-5 的性能得益于数据的条带化,但是某个磁盘的失败却将引起整个系统的下降,这是因为系统将在承担读写任务的同时,重新构建和计算出失败磁盘上的数据,此时要使用备用磁盘对失败磁盘的数据重建恢复整个系统的健康。
从一个普通应用来讲,要求存储系统具有良好的IO性能同时也要求对数据安全做好保护工作,所以raid10和raid5应该成为我们重点关注的对象。
下面从IO性能,数据重构及对系统性能的影响,数据安全保护等方面,结合磁盘现状来分析两种技术的差异。
IO的性能:读操作上raid10和raid5是相当的,RAID-5 在一些很小数据的写操作(如比每个条带还小的小数据)需要2 个读、2 个写,还有2 个XOR 操作,对于单个用户的写操作,在新数据应用之前必须将老的数据从校验盘中移除,整个的执行过程是这样:读出旧数
2005-05-17
华为三康机密,未经许可不得扩散
第34页, 共96页
存储基础知识白皮书 内部公开
据,旧数据与新数据做XOR,并创建一个即时的值,读出旧数据的校验信息,将即时值与校验数据进行XOR,最后写下新的校验信息。为了减少对系统的影响,大多数的RAID5 都读出并将整个条带(包括校验条带)写入缓存,执行2 个XOR 操作,然后发出并行写操作(通常对整个条带),即便了进行了上述优化,系统仍然需要为这种写操作进行额外的读和XOR操作。小量写操作困难使得RAID-5 技术很少应用于密集写操作的场合,如回滚字段及重做日志。当然,也可以将存储系统的条带大小定义为经常读写动作的数据大小,使之匹配,但这样会限制系统的灵活性,也不适用于企业中其它的应用。
对于raid10,由于不存在数据校验,每次写操作只是单纯的执行写操作。应此在写性能上raid10要好于raid5。
数据重构:
对于raid10,当一块磁盘失效时,进行数据重构的操作只是复制一个新磁盘,如果假定磁盘的容量为250G,那么复制的数据量为250G。
对于raid5的存储阵列,则需要从每块磁盘中读取数据,经过重新计算得到一块硬盘的数据量,如果raid5是以4+1的方式组建,每块磁盘的容量也为250G,那么,需要在剩余的4个磁盘中读出总共是1000G的数据量计算得出250G的数据。
从这点来看,raid5在数据重构上的工作负荷和花费的时间应该远大于raid10,负荷变大将影响重构期间的性能,时间长意味再次出现数据损坏的可能性变大。
数据安全保护:
raid10系统在已有一块磁盘失效的情况下,只有出现该失效盘的对应镜像盘也失效,才会导致数据丢失。其他的磁盘失效不会出现数据丢失情况。
Raid5系统在已有一块磁盘失效的情况下,只要再出现任意的一块磁盘失效,都将导致数据丢失。
从综合来看,raid10和raid5系统在出现一块磁盘失效后,进行数据重构时,raid5需耗费的时间要比raid10长,同时重构期间系统负荷上raid5要比raid10高,同时raid5出现数据丢失的可能性要比raid10高,因此,数据重构期间,raid5系统的可靠性远比raid10来的低。
Raid5在磁盘空间率用率上比raid10高,raid5的空间利用率是(N-1)/ N (N为阵列的磁盘数目),而raid10的磁盘空间利用率仅为50%。
但是结合磁盘来考虑,今天的硬盘厂商所生产的ATA或SATA硬盘的质量已经可以承担
2005-05-17
华为三康机密,未经许可不得扩散
第35页, 共96页