文档内容3部分:
1、基本的RAID级别介绍
2、RAID10和RAID01的比较
3、RAID10和RAID5的比较

RAID10和RAID01的比较
 RAID10是先做镜象,然后再做条带。
 RAID01则是先做条带,然后再做镜象。
比如以6个盘为例,RAID10就是先将盘分成3组镜象,然后再对这3个RAID1做条带。RAID01则是先利用3块盘做RAID0,然后将另外3块盘做为RAID0的镜象。
下面以4块盘为例来介绍安全性方面的差别:
1、RAID10的情况

这种情况中,我们假设当DISK0损坏时,在剩下的3块盘中,只有当DISK1一个盘发生故障时,才会导致整个RAID失效,我们可简单计算故障率为1/3。
2、RAID01的情况

这种情况下,我们仍然假设DISK0损坏,这时左边的条带将无法读取。在剩下的3块盘中,只要DISK2,DISK3两个盘中任何一个损坏,都会导致整个RAID失效,我们可简单计算故障率为2/3。
因此RAID10比RAID01在安全性方面要强。

从数据存储的逻辑位置来看,在正常的情况下RAID01和RAID10是完全一样的,而且每一个读写操作所产生的IO数量也是一样的,所以在读写性能上两者没什么区别。而当有磁盘出现故障时,比如前面假设的DISK0损坏时,我们也可以发现,这两种情况下,在读的性能上面也将不同,RAID10的读性能将优于RAID01。

RAID10和RAID5的比较

为了方便对比,这里拿同样多驱动器的磁盘来做对比,RAID5选择3D+1P的RAID方案,RAID10选择2D+2D的RAID方案,如图:

1、安全性方面的比较

其实在安全性方面,勿须质疑,肯定是RAID10的安全性高于RAID5。我们也可以从简单的分析来得出。当盘1损坏时,对于RAID10,只有当盘1对应的镜象盘损坏,才导致RAID失效。但是对于RAID5,剩下的3块盘中,任何一块盘故障,都将导致RAID失效。

在恢复的时候,RAID10恢复的速度也快于RAID5。

2、空间利用率的比较

RAID10的利用率是50%,RAID5的利用率是75%。硬盘数量越多,RAID5的空间利用率越高。

3、读写性能方面的比较

主要分析分析如下三个过程:读,连续写,离散写。

在介绍这三个过程之前,先介绍一个特别重要的概念:cache。

cache已经是整个存储的核心所在,就是中低端存储,也有很大的cache存在,包括最简单的raid卡,一般都包含有几十,甚至几百兆的raid cache。

cache的主要作用是什么呢?体现在读与写两个不同的方面,如果作为写,一般存储阵列只要求写到cache就算完成了写操作,所以,阵列的写是非常快速的,在写cache的数据积累到一定程度,阵列才把数据刷到磁盘,可以实现批量的写入,至于cache数据的保护,一般都依赖于镜相与电池(或者是UPS)。

cache的读一样不可忽视,因为如果读能在cache中命中的话,将减少磁盘的寻道,因为磁盘从寻道开始到找到数据,一般都在6ms以上,而这个时间,对于那些密集型io的应用可能不是太理想。但是,如果cache能命中,一般响应时间则可以在1ms以内。两者应该相差3个数量级(1000倍)。

1)读操作方面的性能差异

RAID10可供读取有效数据的磁盘个数为4,RAID5可供读取有效数据的磁盘个数也为4个(校验信息分布在所有的盘上),所以两者的读的性能应该是基本一致的。

2)连续写方面的性能差异

在连续写操作过程,如果有写cache存在,并且算法没有问题的话,RAID5比RAID10甚至会更好一些,虽然也许并没有太大的差别。(这里要假定存储有一定大小足够的写cache,而且计算校验的cpu不会出现瓶颈)。

因为这个时候的RAID校验是在cache中完成,如4块盘的RAID5,可以先在内存中计算好校验,同时写入3个数据+1个校验。而RAID10只能同时写入2个数据+2个镜相。

如上图所示,4块盘的RAID5可以在同时间写入1、2、3到cache,并且在cache计算好校验之后,这里假定是6,同时把三个数据写到磁盘。而4块盘的RAID10不管cache是否存在,写的时候,都是同时写2个数据与2个镜相。

根据前面对缓存原理的介绍,写cache是可以缓存写操作的,等到缓存写数据积累到一定时期再写到磁盘。但是,写到磁盘阵列的过程是迟早也要发生的,所以RAID5与RAID10在连续写的情况下,从缓存到磁盘的写操作速度会有较小的区别。不过,如果不是连续性的强连续写,只要不达到磁盘的写极限,差别并不是太大。

3)离散写方面的性能差异

例如oracle 数据库每次写一个数据块的数据,如8K;由于每次写入的量不是很大,而且写入的次数非常频繁,因此联机日志看起来会像是连续写。但是因为不保证能够添满RAID5的一个条带,比如32K(保证每张盘都能写入),所以很多时候更加偏向于离散写入(写入到已存在数据的条带中)。

我们从上图看一下离散写的时候,RAID5与RAID10工作方式有什么不同。如上图:我们假定要把一个数字2变成数字4,那么对于RAID5,实际发生了4次io:先读出2与校验6,可能发生读命中然后在cache中计算新的校验写入新的数字4与新的校验8。

如上图我们可以看到:对于RAID10,同样的单个操作,最终RAID10只需要2个io,而RAID5需要4个io.

这里我忽略了RAID5在那两个读操作的时候,可能会发生读命中操作的情况。也就是说,如果需要读取的数据已经在cache中,可能是不需要4个io的。这也证明了cache对RAID5 的重要性,不仅仅是计算校验需要,而且对性能的提升尤为重要。

当然,并不是说cache对RAID10就不重要了,因为写缓冲,读命中等,都是提高速度的关键所在,只不过RAID10对cache的依赖性没有RAID5那么明显而已。

4)磁盘的IOPS对比

假定一个case,业务的iops是10000,读cache命中率是30%,读iops为60%,写iops为40%,磁盘个数为120,那么分别计算在raid5与raid10的情况下,每个磁盘的iops为多少。

raid5:

单块盘的iops = (10000*(1-0.3)*0.6 + 4 * (10000*0.4))/120

= (4200 + 16000)/120

= 168

这里的10000*(1-0.3)*0.6表示是读的iops,比例是0.6,除掉cache命中,实际只有4200个iops。

4 * (10000*0.4) 表示写的iops,因为每一个写,在raid5中,实际发生了4个io,所以写的iops为16000个

为了考虑raid5在写操作的时候,那2个读操作也可能发生命中,所以更精确的计算为:

单块盘的iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4)*(1-0.3) + 2 * (10000*0.4))/120

= (4200 + 5600 + 8000)/120

= 148

计算出来单个盘的iops为148个,基本达到磁盘极限

raid10

单块盘的iops = (10000*(1-0.3)*0.6 + 2 * (10000*0.4))/120

= (4200 + 8000)/120

= 102

可以看到,因为raid10对于一个写操作,只发生2次io,所以,同样的压力,同样的磁盘,每个盘的iops只有102个,还远远低于磁盘的极限iops。

4、小结

所以要求较高的空间利用率,对安全性要求不是特别高、大文件存储的系统采用RAID5比较好。

相反,安全性要求很高,不计成本,小数据量频繁写入的系统采用RAID10的方式比较好。

06.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/787018/viewspace-666280/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/787018/viewspace-666280/

RAID基础,RAID10与RAID01比较,RAID10与RAID5比较相关推荐

  1. RAID基础(附RAID10搭建)

    一.RAID基础概念 硬raid 通过riad卡来形成硬raid 软raid 正常自己搭建都是软raid 1.raid0 两块及以上的盘组成,读写性能翻倍,但是空间只有一块盘大小 2.raid1 两块 ...

  2. 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10

    RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...

  3. 文件系统学习 RAID原理学习 RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 RAID10

    RAID RAID,全称为redundant array of independent disks,是目前商用服务器常见的磁盘管理技术 文章目录 RAID RAID的作用 数据冗余 性能提升 各级RA ...

  4. RAID10和RAID01区别

    RAID10和RAID01区别.docx - 文件下载http://kk263.cn/ft-9389.html

  5. RAID技术规范简介 RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 RAID7

    技术规范 (1)RAID技术规范简介 冗余磁盘阵列技术最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用,同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问 ...

  6. 01-linux磁盘管理-02-RAID(RAID1,RAID10,RAID01,RAID5,创建RAID,查看RAID,删除RAID)

    文章目录 1.RAID类型 1.1 RAID0 1.2 RAID1 1.3 RAID10 1.4 RAID 01 1.5 RAID 5 2. 创建RAID5示例 2.1 准备硬盘 2.2 创建RAID ...

  7. 服务器做raid 10后更换硬盘,做RAID10内置硬盘更换步骤

    <做RAID10内置硬盘更换步骤>由会员分享,可在线阅读,更多相关<做RAID10内置硬盘更换步骤(2页珍藏版)>请在人人文库网上搜索. 1.P52A更换内置RAID硬盘更换步 ...

  8. 各种RAID磁盘阵列简介:RAID0、RAID1、RAID5、RAID6、RAID10、RAID50

    RAID Redundant Array of Independent Disks,通过并行I/O以提高磁盘性能,同时提供数据备份恢复功能.把连续的数据分散到多个磁盘上存取,存取数据时多个磁盘并行的执 ...

  9. 计算机raid基础知识,主板知识详解:板载 RAID

    主板知识详解:板载 RAID RAID 是英文 Redundant Array of Inexpensive Disks 的缩写.中文简称为廉价磁盘冗余阵列.RAID 就是一种由多块硬盘构成的冗余阵 ...

最新文章

  1. 运维开发必会技能之一——虚拟机管理
  2. 如何摆脱穷打工的命?
  3. 手脱UPX(堆栈平衡原理)
  4. boost::mpi::wait_all相关用法的测试程序
  5. UVA - 796 Critical Links(tarjan求割边)
  6. ECCV 2020 亮点摘要(下)
  7. golang实现常用数据结构
  8. 使用Python预处理机器学习需要的手写体数字图像文件数据集
  9. SQL SERVER 如何把1列多行数据 合并成一列显示
  10. 字符串匹配KMP算法的讲解C++
  11. ArcGIS案例学习笔记-手动编辑擦除挖空挖除相减
  12. 个性化网管软件快速实现方法
  13. 新手焊接电路板_手工焊接电路板的步骤
  14. 程序员最爱说的十句口头禅。。 | 今日最佳
  15. 文件是存储在计算机外存上的,计算机存储器——内存和外存.doc
  16. python幂函数无序分布_Python:从幂律分布中生成随机数
  17. 在线HTML转XML工具
  18. 国内外php主流开源cms汇总(2010年1月)
  19. c#语言编程:定义person类,再派生学生类如何存放学生的成绩,C#定义全班学生成绩类,包括姓名,学号,C++成绩,英语成绩,数学成绩,平均成绩...
  20. pandas-组操作-拆分-应用-组合(groupby)(三)

热门文章

  1. 流媒体学习之路(WebRTC)——GCC分析(1)
  2. mongo java aggregate_Java中使用mongodb的aggregate聚合查询
  3. Java线程池面试题
  4. 职场中怎样避免被同事欺负呢?
  5. PhoneGap RSS Reader
  6. 【暑假自学C语言】 --8 练习题详解(分段函数)
  7. DTPA-tetra(tBu)ester,CAS:180152-83-4 ,大环配体配合物
  8. 高通ISPpipline
  9. SAP-SD 销售返利
  10. 百度浏览器(PC)宣布不再更新,部分功能将停止服务