SSD阵列卡方案优化:考虑使用RAID 50替代RAID 10
最近一直在研究RAID 50,因为牺牲一半的容量的RAID 10代价实在太大了,而且它提供的可用性也并不是百分百的,我们首先来看下RAID 10的可用性分析:
以同等容量的不同RAID方式作为案例分析:
| 8盘RAID 10 | 6盘RAID 50 | 5盘RAID 5 | 6盘RAID 6 | |
| 第一块盘故障后可用概率 | 100% | 100% | 100% | 100% |
| 第二块盘故障后可用概率 | 6/7 | 3/5 | 0% | 100% |
| 第三块盘故障后可用概率 | 4/6 | 0% | 0% | 0% |
| 第四块盘故障后可用概率 | 2/5 | 0% | 0% | 0% |
RAID 50中:4块盘组成单组RAID 5,然后两组RAID 5再组成RAID 0最后得到8块盘的RAID 50
案例分析:
第一块盘的容错概率都是100%,可见磁盘阵列最基本的能力就是容错,然而不同级别的阵列能够提供的数据保护能力也是不同的;
从第二块盘开始除了RAID 6能够提供100%的可用性以外,其他包括RAID 10在内都不能提供完美的解决方案。同时我们可以发现RAID 5的容错能力是最弱的,但是要达到同样容量所需要的盘数量也是最少的,如果故障运维较为及时的话,RAID 5是一个非常经济的方案,不然在第一块盘故障期间再次发生第二块盘故障就会导致数据丢失,这就是风险所在;
RAID 6当然是较为可靠的方案,但是它要牺牲两块盘的容量并且性能较差,所以要权衡性能和可用性;
当然重点还是RAID 10和50,我们发现50在损坏第二块盘时的可用概率和10比较接近,如果RAID 5组的数量更多的话,可用性概率将会更高,我们以9块盘RAID 50为例,要达到相同容量RAID 10需要12块盘:
| 12盘RAID 10 | 9盘RAID 50 | |
| 第一块盘故障后可用概率 | 100% | 100% |
| 第二块盘故障后可用概率 | 10/11 | 6/8 |
| 第三块盘故障后可用概率 | 8/10 | 3/7 |
| 第四块盘故障后可用概率 | 6/9 | 0% |
50已经能够提供第三块盘的容错,只是相比10概率更低些,但是两者都不能达到完全的100%,所以权衡成本和可用性50还是有一定的优势。接下来看看性能。
SSD成本较高,不少用户为了考虑可用性都会选用RAID 10的方式作阵列,这样无疑又增加了成本,为了能够很好地分析性能,我们沿用了第一组对比方案的作性能分析:
| Intel S3500 800G SSD | 8p RAID 10 | 6p RAID 50 | 5p RAID 5 | 6p RAID 6 | |||||
| 块大小 | 队列深度 | IOPs | MBPs | IOPs | MBPs | IOPs | MBPs | IOPs | MBPs |
| 随机读(4KB 8KB 16KB 32KB) | |||||||||
| 4K | 32 | 96716 | 396 | 100630 | 412 | 105939 | 433 | 105278 | 431 |
| 8K | 32 | 96003 | 786 | 99199 | 812 | 103196 | 845 | 103059 | 844 |
| 16K | 32 | 94725 | 1551 | 94827 | 1553 | 91758 | 1503 | 96595 | 1582 |
| 32K | 32 | 83115 | 2723 | 66786 | 2188 | 56637 | 1855 | 66391 | 2175 |
| 随机写(4KB 8KB 16KB 32KB) | |||||||||
| 4K | 32 | 20220 | 82 | 15658 | 64 | 11602 | 47 | 10579 | 43 |
| 8K | 32 | 12306 | 100 | 14157 | 115 | 11561 | 94 | 9413 | 77 |
| 16K | 32 | 4856 | 79 | 8072 | 132 | 7426 | 121 | 6473 | 106 |
| 32K | 32 | 1856 | 60 | 2642 | 86 | 1631 | 53 | 1999 | 65 |
| 4KB混合随机读写(30%写) | |||||||||
| 4K | 32 | 46716 | 191 | 36758 | 150 | 30739 | 125 | 28566 | 117 |
| 顺序读(128KB 256KB 512KB) | |||||||||
| 128K | 32 | 20751 | 2719 | 20013 | 2623 | 18330 | 2402 | 20505 | 2687 |
| 256K | 32 | 10505 | 2753 | 9829 | 2576 | 8736 | 2290 | 9941 | 2605 |
| 512K | 32 | 5188 | 2720 | 4813 | 2523 | 4371 | 2291 | 4956 | 2598 |
| 顺序写(128KB 256KB 512KB) | |||||||||
| 128K | 32 | 5162 | 676 | 4660 | 610 | 7630 | 1000 | 2460 | 322 |
| 256K | 32 | 2426 | 635 | 1985 | 520 | 2208 | 578 | 980 | 256 |
| 512K | 32 | 1169 | 612 | 1373 | 719 | 2267 | 1188 | 1134 | 594 |
随机读分析:
理论上认为R10性能最好,真实测试数据显示4K、8K数据块下R5、R50、R6的性能都要优于R10;当数据块增大到16K、32K时,R10的多盘优势才被逐渐体现出来。
随机写分析:
4K由于R50、R5由于有大量校验计算一定程度上影响了性能,但随着数据块逐渐增大,盘数量的优势也显现出来。当数据块达到和超过8K 时,R50性能全面超越了R10;R10由于存在R1的写同步问题,因此只有4块盘在支撑并发写,随着数据块的增大,R50和R5的多盘性能优势开始发 挥。
混合随机读写分析:
得益多盘和无校验计算,混合读写R10领先;R50其次,和R10相差27%,性能也较为接近,R5和R50性能为线性关系,R6性能最差。
顺序读分析:
由于不存在校验计算,顺序读性能基本上由盘的数量决定;R50和R10性能也较为接近,同盘数的R6和R50性能相当,而盘数较少的R5性能相对前三者要弱一些,符合预期。至于为何R10性能无法线性增加,主要是因为阵列卡本身的性能限制。
顺序写分析:
顺序写R5被优化得最好;R50由于需要同时计算两次校验因此损失了一些性能,和R10性能相当,当数据块达到512K时,多盘优势进一步体现出来了,拉开了与R10的差距;R6由于校验和计算的实现较为复杂,顺序写性能也是最差的。
然后我们再来看看这些阵列方案的特性:
| 参数特性 | 8p RAID 10 | 6p RAID 50 | 5p RAID 5 | 6p RAID 6 | |||||
| 理论读并发数 | 8块盘 | 6块盘 | 5块盘 | 6块盘 | |||||
| 理论写并发数 | 4块盘 | 6块盘 | 5块盘 | 6块盘 | |||||
| IO延迟来源 | RAID 1写同步 | 2组RAID 5写校验 | 1组RAID 5写校验 | 1组RAID 6写校验 | |||||
测试结论:
性能测试显示,相同容量的R50和R10性能接近:其中小块文件的随机读R50要全面好于R10,随机写4K虽然R50和R10差距在28%,但是块增大后R50要全面优于R10。顺序读写方面,R50和R10十分接近。
容错方面,R50接近R10:第二块盘容错率R50十分接近R10,两者相差30%。R10的优势主要是在有一定的概率提供第三、甚至第四 块磁盘的容错率,但是考虑到并非100%容错,因此从容错角度来看R50虽然和R10有一些差距,但也已体现出较好的容错率,至少优于R5。而且R50搭 配灵活,甚至可以指定3组R5以达到最大3块磁盘的容错;
成本方面,R50有很大优势:按这个配置计算R50只有R10的3/4。
SSD阵列卡方案优化:考虑使用RAID 50替代RAID 10的更多相关文章
- dell服务器各类raid 和磁盘在阵列卡上的实验
听很多人说,做好阵列的硬盘从阵列上移除后,重新从硬盘导入阵列信息的时候不能打乱位置,昨天用两台Dell R710,四块sas 300G HP硬盘做实验,实验步骤如下: 一.dell R710首先用三块 ...
- 服务器&阵列卡&组raid 5
清除raid信息后,机器将会读不到系统, 后面若进一步操作处理, raid信息有可能会被初始化掉,那么硬盘数据就有可能会被清空, 导致数据丢失, 否则如果只是清除raid信息,重做raid是可以还原系 ...
- 关于hp proliant sl210t服务器raid 1阵列配置(HP P420/Smart Array P420阵列卡配置)
hp proliant sl210t服务器,一般都会带有两个阵列卡 一个服务器自带的Dynamic Smart Array B120i RAID控制器,一个为Slot卡槽上的Smart Array P ...
- 阵列卡,组成的磁盘组就像是一个硬盘,pci-e扩展出sata3.0
你想提升性能,那么组RAID0,主板上的RAID应该是软RAID,肯定没有阵列卡来得稳定.如果你有闲钱,可以考虑用阵列卡. 不会的.即使不能起到RAID的作用,起码也可以当作直接连接了2个硬盘.不会影 ...
- LSI阵列卡进行高效管理
LSI公司(LSI Corporation)(NASDAQ:LSI)(中文:艾萨华)是一家总部位于加利福尼亚州米尔皮塔斯 (Milpitas) 的半导体和软件领先供应商,其主要产品包括:RAID控制器 ...
- [转]DELL PERC 系列阵列卡选型和用法指南
引用地址 https://www.sulabs.net/?p=895 DELL PERC 系列阵列卡选型和用法指南 2018年12月29日 Su 本文缘起于一位朋友在生产服务器硬件中,使用了错误的阵列 ...
- 12G服务器在BIOS中收集阵列卡日志(TTY日志)的方法
如果系统进不去.请参考如下方法收集日志. 请准备个U 盘,容量在8G以下(含8G),否则会识别不到. 图片参考,以描述为准 F2 enter BIOS option--> Enter the ...
- 常用PC服务器LSI阵列卡配置
通常,我们使用的DELL/HP/IBM三家的机架式PC级服务器阵列卡是从LSI的卡OEM出来的,DELL和IBM两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控:而HP ...
- LSI IBM服务器阵列卡操作经历
说明:因为服务器的一个磁盘坏了,因为没有经验不敢操作.正好有一台撤下来的相同服务器,所以查找了各种教程,研究了一下各种操作.记录在这里,防止忘记.一.概念说明raid(自己百度)阵列卡组(group) ...
随机推荐
- VC++一些开发心得与调试技巧
1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选Gen ...
- 关于 contentWindow, contentDocument
没有永恒的技术只有变态的需求,没有好说的客户只有无奈的开发者, 如果iframe的出现是一个错误的话,iframe里边在来一个iframe那是错上加错,神话没有在远古的尘嚣中消失,却在怀具的今天不断上 ...
- Eclipse代码注释模板-code template
参考帖子blog.csdn.net/security08/article/details/5588013 操作步骤:打开Window->Preferences->Java->Code ...
- 【测试工具】http协议调试利器fiddler使用教程
转自:http协议调试利器fiddler使用教程http://bbs.phpchina.com/thread-207418-1-1.html Fiddler真乃神器!它和市面上常见的很多web调试器. ...
- UVa140 Bandwidth 小剪枝+双射小技巧+枚举全排列+字符串的小处理
给出一个图,找出其中的最小带宽的排列.具体要求见传送门:UVa140 这题有些小技巧可以简化代码的编写. 本题的实现参考了刘汝佳老师的源码,的确给了我许多启发,感谢刘老师. 思路: 建立双射关系:从字 ...
- 使用<c:set>标签配置项目路径
写在前面的话: 在java项目中,路径的配置是一项最基础也是最必不可少的工作,最初我们配置路径是根据<%=request.getContextPath()%>这个java代码块进行配置的, ...
- Redis客户端连接以及持久化数据(三)
0.Redis目录结构 1)Redis介绍及部署在CentOS7上(一) 2)Redis指令与数据结构(二) 3)Redis客户端连接以及持久化数据(三) 4)Redis高可用之主从复制实践(四) 5 ...
- PC端meta标签
下面介绍meta标签的几个属性,charset,content,http-equiv,name. 一.charset 此特性声明当前文档所使用的字符编码,但该声明可以被任何一个元素的lang特性的值覆 ...
- j.u.c系列(02)---线程池ThreadPoolExecutor---tomcat实现策略
写在前面 本文是以同tomcat 7.0.57. jdk版本1.7.0_80为例. 线程池在tomcat中的创建实现为: public abstract class AbstractEndpoint& ...
- LPC-LINK 2 Board IO TABLE