RAID10与RAID5的异同比较
从一个普通应用来讲,要求存储系统具有良好的IO性能同时也要求对数据安全做好保护工作,所以raid10和raid5应该成为我们重点关注的对象。
单纯的谈论不同raid级别的优缺是不切实际的,raid只有和磁盘结合才是完整的阵列。
下面从IO性能,数据重构及对系统性能的影响,数据安全保护等方面,结合磁盘现状来分析两种技术的差异。
IO的性能:
读操作上raid10和raid5是相当的,
对于RAID-5 在一些很小数据的写操作(如比每个条带还小的小数据)需要2 个读、2 个写,还有2 个XOR 操作,对于单个用户的写操作,在新数据应用之前必须将老的数据从校验盘中移除,整个的执行过程是这样:读出旧数据,旧数据与新数据做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硬盘的质量已经可以承担企业级的应用,并且,容量的增加幅度相当大,目前已经可以实现单个磁盘400G的存储容量。SCSI硬盘由于要求高转速而使用小直径盘片,容量的增加相对缓慢。ATA磁盘相对SCSI磁盘拥有成本也要小很对,
应此,在一些IO要求非常高的应用中,raid5结合SCSI磁盘是比较好的选择,其他应用中采用大容量的ATA硬盘结合raid10,既降低了raid10的为获得一定的存储空间必须采用双倍磁盘空间的拥有成本,又避免了raid5相对raid10的各种缺点。
在企业应用中,raid10结合ATA磁盘意味着一个更好的选择。