未解决
此帖子已超过 5 年
2 Intern
•
2.1K 消息
3
16775
2013年8月12日 02:00
浅谈RAID写惩罚(Write Penalty)与IOPS计算
浅谈RAID写惩罚(Write Penalty)与IOPS计算
转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese
介绍
通常在讨论不同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需要完成写入的过程分为以下几步:
- 读取原数据0110,然后与新的数据1111做XOR操作: 0110 XOR 1111 = 1001
- 读取原有的校验位0010
- 用第一步算出的数值与原校验位再做一次XOR操作: 0010 XOR 1001 = 1011
- 然后将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-1和10:RAID-1 和RAID-10的写惩罚很简单理解,因为数据的镜像存在的,所以一次写入会有两次。
RAID-5:RAID-5由于要计算校验位的机制存在,需要读数据、读校验位、写数据、写校验位四个步骤,所以RAID-5的写惩罚值是4。
RAID-6:RAID-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类型的描述
参考
应用于
存储规划
基础知识
zhouzengchao
2 Intern
2 Intern
•
1.4K 消息
0
2013年8月12日 02:00
good reading,补充一下,server side i/o经过storage caching后数量会发生变化,所以计算的时候需要考虑这部分的变化。
jllm7
1 Rookie
1 Rookie
•
34 消息
0
2013年8月12日 03:00
经过caching之后理论上瞬时的IO应该会变小吧?,只有在大量的I/O进入且超过Cache的容量后才会造成性能的急速下降,这样理解是否正确?
zhouzengchao
2 Intern
2 Intern
•
1.4K 消息
0
2013年8月12日 18:00
你说的没错,但并不是我想表达的。我针对的是Fenglin关于主机I/O与后端磁盘I/O的数量关系,比如对于RAID5,一个主机写会产生四个磁盘操作,由于storage caching会执行合并写,回填写,条带写,因此主机i/o数量并不一定等于存储系统i/o数量,需要考虑这部分优化。
liulei_it
2 Intern
2 Intern
•
3.2K 消息
0
2013年8月12日 23:00
请教超哥,在没有使用virtual provising的机制的symmetrix设备,要想更改RAID类型只有重新规划RAID组了?
Yanhong1
2 Intern
2 Intern
•
1.6K 消息
0
2013年8月12日 23:00
写的不错,对了解基础原理很有帮助,可以放入基础知识帖去啊
zhouzengchao
2 Intern
2 Intern
•
1.4K 消息
0
2013年8月12日 23:00
不好意思,我不懂Symm,所以只有等Fenglin来回应你了。
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2013年8月12日 23:00
是的,Thin Pool中的Data Device必须是同一种RAID保护级别。如果要改的话,要再建一个Thin Pool,然后对Thin Device做迁移。迁移的方法,我之前写过一篇文档里面有介绍,VMAX应用实例:如何在不同的Thin Pool之间迁移Thin Device
Fenglin1
2 Intern
2 Intern
•
2.1K 消息
0
2013年8月20日 22:00
的确有笔误,已经更正,多谢Zhuzhu
zhuzhu281306
2 Intern
2 Intern
•
631 消息
0
2013年8月20日 22:00
应该为0010哦
johnemoney
3 消息
0
2013年9月1日 01:00
非常精彩,存储基础
merrist
2 Intern
2 Intern
•
483 消息
1
2013年9月4日 00:00
超哥,这部分变化有对于的计算公式么?
zhouzengchao
2 Intern
2 Intern
•
1.4K 消息
0
2013年9月4日 00:00
我这边没有
NomNom1
3 消息
0
2016年2月23日 04:00
偷人家东西,EMC和Fenglin Li不要脸,从http://rickardnobel.se/raid-5-write-penalty/,http://theithollow.com/2012/03/21/understanding-raid-penalty/和其他地方原封不动地抄来了这些内容
Jason_Zhou
2 Intern
2 Intern
•
1.2K 消息
0
2016年3月16日 19:00
nom nom, 我是EMC中文技术论坛的版主Jason Zhou。我看到你最近在“浅谈RAID写惩罚(Write Penalty)与IOPS计算”一文下面写的这条负面评论,有些想法想来和你说明一下。
EMC技术论坛里大家分享的技术内容一般有两类。一类是关于具体EMC产品的,另一类是不涉及具体产品而是针对业界通用技术的普及类知识点。对于后者,很多内容都是基于一个普遍认知的基础的,即就这些知识点本身来说,已经是多年前就被业内广泛认知的,属于应该普及化的知识。在互联网发达的时代,这类普及性的通用知识在很多不同站点上都能搜索到类似的文章。这篇文章我也看过,Fenglin Li的文章的措辞和内容组织是根据自己对知识点的理解并经过归纳整理的,而且也更加符合中文阅读习惯,特别方便对存储新入门不久的新人来学习。我们尽量避免内容一字一句的翻译国外的文章。插图里的举例和你提到的某篇文中的插图举例是接近的,这对于知识点本身的普及和使用有效的实例来帮助更好的阐述来说,也无可厚非。就好比你要写一篇文章里要用到一张世界地图,那么一般也就是在公开的网上找一张只要是无特殊版权申明限制的世界地图的图片来用就好了,很难追述谁是第一个画出那张图的人。
在这个论坛里,大家都本着学习和分享的友好态度来交流的。希望在当今这个生活工作节奏更快,时间日趋碎片化的互联网时代,能以跟高效的方式的学习,吸取和分享有用的知识,共同提高。所以,这里还请您理解这点,有任何其他的意见和建议,也欢迎一起来交流。
DELL-Leo
Community Manager
Community Manager
•
8.1K 消息
0
2016年12月27日 19:00
微信用户“Karn”提问:
RAID 5是将校验数据分散存在各个盘上吧,你说的7+1阵列里,7个存储数据,1个存储校验数据,这种单独把校验数据存在一个盘上的是RAID 3阵列吧