码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈RAID写惩罚(Write Penalty)与IOPS计算

时间:2015-05-10 12:39:31      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

介绍

? ?

???? 通常在讨论不同RAID保护类型的性能的时候,结论都会是RAID-1提供比较好的读写性能,RAID-5读性能不错,但是写入性能就不如RAID-1,RAID-6保护级别更高,但写性能相对更加差,RAID10是提供最好的性能和数据保护,不过成本最高等等。其实决定这些性能考虑的因素很简单,它就是RAID Write Penalty(写惩罚)。本文从原理上解释了不同RAID保护级别的写惩罚,以及通过写惩罚计算可用IOPS的方法。

更多信息

? ?

RAID-5?Write Penalty的例子:

? ?

???? 存储方案规划的过程中,最基本的考虑因素有两个,性能和容量。性能上的计算看可以分为IOPS和带宽需求。计算IOPS,抛开存储阵列的缓存和前端口不谈。计算后端物理磁盘的IOPS不能简单的把物理磁盘的最大IOPS相加而获得。原因是,对于不同的RAID级别,为了保证当有物理磁盘损坏的情况下可以恢复数据,数据写入的过程中都需要有一些特别的计算。比如对于RAID-5,条带上的任意磁盘上的数据改变,都会重新计算校验位。如下图所示,一个7+1的RAID-5的条带中,七个磁盘存储数据,最后一个磁盘存储校验位。

? ?

技术分享

? ?

???? 对于一个数据的写入,我们假设在第五个磁盘上写入的数据为1111,如下图所示。那么整个RAID-5需要完成写入的过程分为以下几步:

? ?

技术分享

? ?

  1. 读取原数据0110,然后与新的数据1111做XOR操作:?0110 XOR 1111 = 1001
  2. 读取原有的校验位0010
  3. 用第一步算出的数值与原校验位再做一次XOR操作:?0010 XOR 1001 = 1011
  4. 然后将1111新数据写入到数据磁盘,将第三步计算出来的新的校验位写入校验盘。

?

???? 由上述几个步骤可见,对于任何一次写入,在存储端,需要分别进行两次读+两次写,所以说RAID-5的Write Penalty的值是4。

?

? ?

不同RAID级别的Write Penalty

? ?

下表列出了各种RAID级别的Write Penalty值:

? ?

RAID

Write Penalty

0

1

1

2

5

4

6

6

10

2

? ?

?

RAID-0直接的条带,数据每次写入对应物理磁盘上的一次写入

RAID-110:RAID-1?和RAID-10的写惩罚很简单理解,因为数据的镜像存在的,所以一次写入会有两次。

RAID-5RAID-5由于要计算校验位的机制存在,需要读数据、读校验位、写数据、写校验位四个步骤,所以RAID-5的写惩罚值是4。

RAID-6RAID-6由于有两个校验位的存在,与RAID-5相比,需要读取两次校验位和写入两次校验位,所以RAID-6的写惩罚值是6。

? ?

? ?

计算IOPS:

? ?

???? 根据上文的描述,在实际存储方案设计的过程中,计算实际可用IOPS的过程中必须纳入RAID的写惩罚计算。计算的公式如下:

?

物理磁盘总的IOPS =?物理磁盘的IOPS?× 磁盘数目

? ?

可用的IOPS =?(物理磁盘总的IOPS?× 写百分比 ÷?RAID写惩罚)?+?(物理磁盘总的IOPS?× 读百分比)

?

???? 假设组成RAID-5的物理磁盘总共可以提供500 IOPS,使用该存储的应用程序读写比例是50%/50%,那么对于前端主机而言,实际可用的IOPS是:

?

(500?×50%?÷?4)+ ( 500 * 50%) = 312.5 IOPS

?

具体不同应用程序的读写比例,可以参考:关于不同应用程序存储IO类型的描述

?

参考

? ?

关于不同应用程序存储IO类型的描述

浅谈RAID写惩罚(Write Penalty)与IOPS计算

标签:

原文地址:http://www.cnblogs.com/IvanChen/p/4491984.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!