选择什么样的RAID级别?
对于随机IO的分布来说我们还需要考虑我们到底选择什么样的RAID级别,不同的RAID级别对磁盘的要求是不同的,对于综合性能来说,RAID是最值得期待的。
通常RAID5是一个综合成本和性能的很好的选择,但是我们什么情况下需要采用RAID0+1呢?实际上一般的应用来说,占绝大多数的都是读IO,其中写IO通常占到10%左右。但是,当我们分析写IO超过20%的时候,我们就应该考虑采用RAID0+1,这种情况下,如果不要求太高的性能,RAID5也是可以接受的。但是当写IO超过了40%左右,那么我们就必须考虑采用RAID0+1了。
因为不同的RAID方式对磁盘产生的IO(Disk IO)是不同的。举例来说,一个四块磁盘的RAID5要做一个写操作时,所产生的磁盘IO实际上是4个,包括2个读IO和2个写IO。而同样一个写IO,在一个四块磁盘的RAID 0+1组中,所产生的磁盘IO实际上只有2个,实际上只需要同时写到两个磁盘中就可以了。因此,当一个应用中的写IO越高,那么对于RAID5和RAID0+1的性能影响就会体现的越明显。
那什么时候使用RAID6呢,首先要求写操作的比率比较低,低于15%的时候可以考虑使用RAID6。读操作的时候RAID5和RAID6相差不多,但是它比RAID5对系统的影响更大,因为一个post IO通常会在后端产生6个磁盘IO。所以,首先RAID 6在写IO操作并不十分多的情况下应用会比较好,另外就是应用在数据完整性方面的要求的确非常高。
相同应用下不同的RAID级别的性能差别
如图的这个案例,2100个IOPS,其中30%的写IO,在RAID0+1的情况下,磁盘利用率达到70%,响应时间13ms,而换到RAID5的情况下,磁盘利用率就达到了92%,响应时间变成了62ms,很多应用都不能接受62ms的响应时间。而对于RAID6来说,写操作完全没办法满足应用要求。
RAID条带宽度对性能会带来什么影响呢?RAID条带宽度主要与RAID组的磁盘数据是有关系的。一般来说,一个磁盘片的宽度是64K,如果是3+1的RAID组就是64K*3,7+1的RAID组就是64K*7。在随机应用的环境中,带宽对整体性能并没有明显的影响。但是当一个RAID组中的磁盘数量过多的时候,在磁盘出现故障需要重建的时候,磁盘会当机。