服务器磁盘raid0,raid1,raid10,raid5,raid50,raid6,raid60 分析与案例

1,raid0的特性:采用剥离,数据将在几个磁盘上进行分割。数据被分成很多数据块,每一数据块会被写入不同的磁盘。从而,每一磁盘的工作负荷都得到了降低,这有助于加速数据传输。RAID-0可让磁盘更好地响应,尤其是电子邮件、数据库和互联网应用。实施RAID-0最少需要两块硬盘。优势:通过把I/O负载分布到多个硬盘上,可提高系统性能。实施简单。需要注意的是:RAID-0不具有数据保护功能,不适合于关键数据。

2,raid1的特性:RAID-1通过磁盘镜像来实现,主要用来确保数据的可靠性。同样的数据将被复制存储到不同的磁盘上,如果某个磁盘出现故障,还可以在阵列内的某个磁盘上找到相应的数据,因此可以很容易地进行恢复。镜像不但可以创建冗余数据而带来高可用性,还可以保持关键应用的正常运行。优势:数据读取的性能有所提高,而数据写入性能与单个磁盘没有区别。100%数据冗余意味着某个出现磁盘故障时不需要对数据进行重建。需要注意的是:磁盘容量的低效率使用-在所有RAID类型中费用最高(100%)。

3,raid10的特性:RAID-10是RAID-1和RAID-0的结合。此配置要求至少4块硬盘,在所有RAID等级中,性能、保护功能及容量都是最佳的。RAID-10包含成对的镜像磁盘,其数据在整个阵列上进行剥离。多数情况下,RAID-10能够承受多个磁盘出现故障的情况,因此更能保证系统的正常运行。其数据丢失的几率最小。优势:与RAID-1(镜像)有同样的冗余特性,是数据保护的理想选择。需要注意的是:可能价格很高,与镜像磁盘阵列有关。

4,raid5的特性:RAID-5通过一种称为奇偶检验的技术保持数据的冗余。在多个磁盘上进行数据剥离时,奇偶位数据也会包括在内并分布于阵列内的所有磁盘上。奇偶数据用于保持数据的完整性并在磁盘出现故障时进行重建。如果阵列内的某个磁盘出现故障,丢失的数据可以根据其它磁盘上的奇偶位数据进行重建。RAID-5配置要求至少3块硬盘。优势:更有效地利用所有冗余RAID配置的磁盘容量。保持良好的读写性能。需要注意的是:磁盘故障会影响吞吐速率。故障后重建信息的时间比镜像配置情况下要长。

5,raid50的特性:RAID-50是RAID-5与RAID-0的结合。此配置在RAID-5的子磁盘组的每个磁盘上进行包括奇偶信息在内的数据的剥离。每个RAID-5子磁盘组要求三个硬盘。RAID-50具备更高的容错能力,因为它允许某个组内有一个磁盘出现故障,而不会造成数据丢失。而且因为奇偶位分部于RAID-5子磁盘组上,故重建速度有很大提高。优势:更高的容错能力,具备更快数据读取速率的潜力。需要注意的是:磁盘故障会影响吞吐量。故障后重建信息的时间比镜像配置情况下要长。

6,raid6的特性:

RAID6的性能:

  (1)RAID6的随机读取性能:很好(当使用大数据块时)。

  (2)RAID6的随机写入性能:差,因为不但要在每硬盘上写入校验数据而且要在专门的校验硬盘上写入数据。

  (3)RAID6的持续读取性能:好(当使用小数据块时)。

  (4)RAID6的持续写入性能:一般。

  (5)RAID6的优点:快速的读取性能,更高的容错能力。

  (6)RAID6的缺点:很慢的写入速度,RAID控制器在设计上更加复杂,成本更高。

7.raid60的特性:

具备更高的容错性,支持同时两块硬盘出现故障的修复功能,和更高的读性能。技术上还存在一定的问题,不够成熟,目前很少使用者。




RAID 50中:4块盘组成单组RAID 5,然后两组RAID 5再组成RAID 0最后得到8块盘的RAID 50


案例分析:

第1块盘的容错概率都是100%,可见磁盘阵列最基本的能力就是容错,然而不同级别的阵列能够提供的数据保护能力也是不同的;

从第2块盘开始除了RAID 6能够提供100%的故障可用性以外,其他包括RAID 10在内都不能提供完美的解决方案。同时我们可以发现RAID 5的容错能力是四者中最差的,但是要达到同样容量所需要的盘数量也是最少的,如果故障运维较为及时的话RAID 5是一个性价比较高的方案,不然在第一块盘故障后至阵列修复期间如果发生第二块盘故障就会导整个阵列故障(数据全部丢失),这就是风险所在;

RAID 6当然是较为可靠的方案,但是它要牺牲两块盘的容量并且性能也较差(后面有性能测试说明),所以要权衡性能和可用性;

当然重点还是RAID 10和50:我们发现50在第二块盘故障时的可用概率和10比较接近,由于上述案例中只有两组RAID 5因此只能提供至最多两块盘的容错,如果RAID 5的组数量更多的话能够容错的盘数也将更多,且可用概率也会更高。

我们以9块盘RAID 50(3组RAID 5)为例作分析(达到相同容量的RAID 10需要12块盘):


再以12块盘RAID 50(4组RAID 5)为例作分析(达到相同容量的RAID 10需要16块盘):

考虑使用RAID 50替换RAID 10(SSD篇)

上面对比中RAID 50已经能够容忍第3甚至第4块盘的故障,只是可用性相比RAID 10低了些,但是两者都不能达到完美的100%,所以权衡可用性和成本RAID 50还是有相当大的优势。

接下来看看性能,为了能够很好地分析性能,我们沿用了第一组对比方案的作性能分析:


随机读分析:

理论上认为R10性能最好,真实测试数据显示4K、8K数据块下R5、R50、R6的性能都要优于R10;

当数据块增大到16K、32K时,R10的多盘优势才被逐渐体现出来。

随机写分析:

4K由于R50、R5由于有大量校验计算一定程度上影响了性能,但随着数据块逐渐增大,盘数量的优势也显现出来。当数据块达到和超过8K时,R50性能全面超越了R10;

R10由于存在R1的写同步问题,因此只有4块盘在支撑并发写,随着数据块的增大,R50和R5的多盘性能优势开始发挥。

混合随机读写分析:

得益多盘和无校验计算,混合读写R10领先;R50其次,和R10相差27%,性能也较为接近,R5和R50性能为线性关系,R6性能最差。

顺序读分析:

由于不存在校验计算,顺序读性能基本上由盘的数量决定;R50和R10性能也较为接近,同盘数的R6和R50性能相当,而盘数较少的R5性能相对前三者要弱一些,符合预期。至于为何R10性能无法线性增加,主要是因为阵列卡本身的性能限制。

顺序写分析:

顺序写R5被优化得最好;R50由于需要同时计算两次校验因此损失了一些性能,和R10性能相当,当数据块达到512K时,多盘优势进一步体现出来了,拉开了与R10的差距;R6由于校验和计算的实现较为复杂,顺序写性能也是最差的。

性能测试结论:

性能测试显示,相同容量的R50和R10性能接近:其中小块文件的随机读R50要全面好于R10,随机写4K虽然R50和R10差距在28%,但是块增大后R50要全面优于R10。顺序读写方面,R50和R10十分接近。

容错方面,R50接近R10:第二块盘容错率R50十分接近R10,两者相差30%。R10的优势主要是在有一定的概率提供第三、甚至第四块磁盘的容错率,但是考虑到并非100%容错,因此从容错角度来看R50虽然和R10有一些差距,但也已体现出较好的容错率,至少优于R5。而且R50搭配灵活,甚至可以指定3组R5以达到最大3块磁盘的容错;

成本方面,R50有很大优势:按这个配置计算R50只有R10的3/4。

总结:

RAID 50提供了接近RAID 10性能、可用性以及接近RAID 5成本的特性,具有较好的整体性价比优势,所以考虑使用RAID 50替换RAID 10把!


你可能感兴趣的:(服务器,磁盘,raid0)