本人很喜欢RAID种类,在工作中也很喜欢总结关于RAID种类的经验教训,下面就这个问题来详细说说吧。RAID种类比较多:RAID 1/0是指数据在镜像 (RAID 1)组中分条(RAID 0)。(RAID 0-1不同于RAID 1/0;对于Microsoft Exchange数据,我建议不要使用RAID 0-1。)采用ID-1/0后,事务性能良好,这是因为镜像中的磁盘都能对读请求作出反应。奇偶信息都不需要校验,这样能有效实现磁盘的写操作。镜像组中的磁盘必须具有同等的写操作性能。
如果RAID 1/0阵列中某个磁盘发生故障,写操作性能不受影响,因为镜像中的磁盘仍能进行写操作。读操作会受到一定程度的影响,因为只有一个磁盘对读操作有反应。替换了发生故障的磁盘后,镜像就能重新建立,而数据必须复制或者重建。但是,你的磁盘容量减小了一半,因为你创建了“1”,磁盘中就会产生冗余“1”。
RAID 5具有奇偶校验功能,能在磁盘发生故障后,利用剩余数据重新构建数据。数据写在RAID 5阵列上后,由于每个I/O都需要进行写操作,I/O开销增加了4倍;奇偶校验会消耗大量的控制器和服务器资源。采用RAID 5后,事务性能良好,尤其是采用存储控制器校验奇偶时更是如此。
RAID 5阵列中磁盘发生故障时,阵列降级,性能降低,延迟增加。之所以会发生这种情况,是因为大多数阵列在所有的磁盘阵列中平均传输校验信息,结合剩余数据块,就能实时重建数据。读写操作都需要访问多个物理磁盘,才能重新在故障磁盘中构建数据,因而故障发生时,RAID 5阵列延迟增加,性能降低。
替换了发生故障的磁盘后,可以利用奇偶校验和剩余数据块重新构建丢失的数据,但是可能需要花费几天的时间。如果在恢复数据或重建数据时,RAID 5阵列中又有一个磁盘发生故障,那么阵列也会随之丢失。RAID 6就是为了解决这一问题。
RAID Levels 0+5 (05)和5+0 (50)技术结合了数据块分条功能和分布式奇偶校验功能。RAID 05和50形式的大型阵列融合了块分条、RAID 5的奇偶校验以及RAID 0的直接块分条技术。RAID 05是一种RAID 5阵列,由一些分条的RAID 0阵列组成。RAID 05不如RAID 50普遍,RAID 50是一种RAID 0阵列,在RAID 5中分条。RAID 50和05通过添加RAID 0提高了RAID 5的性能,尤其是写操作性能,比单级别的RAID具有更好的容错性能,尤其是在配置了RAID 50后。RAID 05和50的大部分特征与RAID 03和30相似。在小型文件的事务环境中,RAID 05和50比RAID 03和30更加常用。如果你在编辑视频文件,我建议你首先考虑RAID 03和30。
RAID 6比RAID 5多了一个奇偶校验块,数据保护功能是RAID 5的2倍,但是写操作的性能也降低了。随着物理磁盘越来越大,RAID重建时间越来越长,如果重建过程发生不可更改的错误,或者重建过程阵列群组中有第二个磁盘发生故障,RAID 6或许能防止LUN 出现故障。由于磁盘容量的原因,一些供应商支持RAID 6,不支持RAID 5.
为了达到Exchange 2007对既定容量的需求,实现IOPS目标,RAID 5可能比RAID 10需要更多的磁盘。
最后,性能取决于驱动器、RAID群组配置和RAID种类的功能特征。在挑选RAID 5(或RAID 6)时,由于RAID 5的局部分条写操作或RAID 6的双分条写操作,主机IOP需要实现4倍的操作。操作需要对驱动器进行奇偶性读取和验算,同时对驱动器和奇偶性进行写操作,使驱动器的有效IO速率降低四分之一。
选择一种RAID
要选择一种RAID,你需要平衡对容量、吞吐量、事务I/O和故障/重建性能的需求。RAID 1/0是数据库和邮件的理想配置,与大容量磁盘协作良好。在你的环境中,读操作占的比例是否较大?是的话,就采用RAID 1/0。在驱动器出现故障时,RAID 1/0能保持性能的一致性。
对于RAID 5和RAID 6,重建性能对存储吞吐量具有重要影响,使吞吐量几乎减少一半,具体按照存储阵列和配置而定。在工作时间之外进行重建,可以减少这种性能影响,但是又得牺牲可靠性。在群集连续复制(CCR)环境中,你可以将Mailbox server迁移到被动节点,从而使其成为主动节点。如果这两种方法都不可行,在架构中应该设计额外的I/O吞吐量,在工作时间提供RAID 5或 RAID 6的重建条件。这种额外的I/O吞吐量可以达到非故障状态下I/O吞吐量的2倍。
如果你的备份解决方案(VTL或D2D)需要维持一定量的数据吞吐量,你就得考虑需要多少驱动器资源,才能维持“连续、顺序写操作”的性能水平。如果你的RAID阵列能够根据规格处理350 MB/sec的连续、顺序写操作,就可以简单地将控制器中的平衡负荷写入磁盘资源中。你需要保证驱动器数量足够多,阵列性能达到最优。通常情况下,你需要 2到3“盘”阵列,才能完成这项工作。计划为每个“通道”(RAID阵列中通向RAID控制器的数据路径)创建RAID群组。因此,如果你具有双控制器的 RAID阵列,你就需要使RAID群组在两个控制器之间平均分配。