存储互联
存储互联

       众所周知,RIAD是一种将多块磁盘形成一个有机整体,使之能够在硬盘故障时提供数据保护的技术。一般来说,RAID能通过把数据并发将数据存储到多个硬盘上来提高存储系统的IO性能,但是RIAD的镜像或校验也会带来额外的计算开销,这点让我们在选择RAID级别的时候应该充分考虑,其对应硬盘性能和应用程序IO吞吐量(IOPS)的影响。下面简单介绍一个快速的计算方法来计算不同RAID下的IOPS。


       所有的IO操作无外乎“读”和“写”,对于“读”操作相对简单,只是对RAID其中的某一块硬盘的某一个块进行数据读取,没有额外的读写开销,可以认为是一次IO操作流程。


      对于写相对复杂,对于镜像或有校验的RAID系统,每个“写”操作都会对硬盘产生额外的IO开销,我们称之为“写惩罚”,对于RAID1,每次写操作都要在构成镜像对的两块磁盘上同时进行;而对于RAID5,每个写操作都会产生4个实际IO操作。

simditor-img

      比如上面最简单的3块硬盘构成的RAID5,其中D0、D1、D2、D3、D4、D5是数据,P0、P1、P2是校验位。当需要讲D5的数据改写为D6,要由下面的四个步骤构成:

1、读取需要写入数据地址位的原数据,本例为读取D5;

2、读取需要修改这个条带的校验位,本例为读取P2;

3、在D5的地址位写入D6;

4、利用之前读取的D5和P2,计算出此条带其他位的数据,带入新写入的D6,计算出这个条带的新校验值为P2’,将P2’写入原P2的地址位。

这样RAID5的一次写操作其实对应的是两次读操作和两次写操作。


下面是不同RAID级别下的一次读或写操作带来的额外IO惩罚:

simditor-img

有上面的读写惩罚比例,我们就可以简单的估算出用户的一些应用配置。

比如:如果某个客户的应用程序的估算需要10K的IOPS,其中读访问是80%,需要使用RAID6;推荐磁盘规格及数量:

RAID6的硬盘负载=0.8x10000+0.2x10000x6(RAID6写惩罚是6)=20000 IOPS。

如果我们推荐使用SAS硬盘,单个SAS硬盘的IOPS大概是180。

那么需要的硬盘数为:20000/180=112块硬盘。

simditor-img

simditor-img

评论 写短评
这篇文章还没有评论