我发现周围不少人在学习和理解RAID磁盘阵列的原理时,找了很多专业的资料来看,但是因为动手的机会比较少,因此看完以后还是似懂非懂,真正遇到实际的方案设计的时候,还是拿不定主意。
因此,我结合自己在过去几年中积累的实际项目经验,在这里通过最通俗的方式,来谈一谈我对几种常用的RAID磁盘阵列级别的理解,如有错误与不恰当之处,欢迎拍砖。
 
RAID0 是把两块物理盘组合成一块逻辑盘用,因此容量相当于等于二者之和,IO的读写也提高了(因为可以同时把数据分成两部分各写入两块物理盘中),但是安全性反而降低了,因为一旦其中一块盘坏了,整个逻辑盘就坏了;
总结:在不担心数据安全的情况下,RAID0是最佳的选择。
 
RAID1 是把两块物理盘做成完全相同的镜像,因此逻辑盘的容量仅相当于一块硬盘的大小,但是安全性却很高,任何其中一块盘坏掉,数据都没有影响,冗余程度1/2,找一块新盘换上去数据又可以自动重构,缺点就是牺牲了容量,以及降低了数据写入的IO(因为必须把每一份数据同时都写入到两块硬盘中);
总结:在优先考虑数据安全且不需要保证磁盘性能与容量的情况下,RAID1是最佳选择。
 
RAID5 是把三块物理盘做成一个逻辑盘用,其中有近一块盘的容量用来做奇偶校验,因此容量仅相当于两块硬盘,但支持其中一块硬盘损坏,冗余程度1/3,整体性能相当于介于RAID0与RAID1之间,属于性价比较高的一种RAID;
总结:在经济情况不太充裕的情况下既想保障磁盘性能与容量又想保障数据的安全,RAID5是最佳的选择。
 
RAID10 则由RAID0与RAID1组合构成,因此需要四块物理盘来构成一个逻辑盘,它集合了RAID0和RAID1的优点,既提升了IO的读写速度,又保障了数据的安全,可以有两块物理盘损坏,冗余程度1/2,缺点嘛显而易见,就是成本很高,且牺牲了两块硬盘的容量。
总结:在不差钱的情况下,RAID10是最佳的选择。
 
最后,需要提到的一点是,在超过2-4块硬盘做RAID的时候,其实也是由以上这种基础单元构成的,比如我拿16块硬盘做RAID10,就是由4组4块硬盘所构成的RAID10来实现的。
 
我买100GB的容量,我能用的是多少?我应该做哪一级的RAID?  首先我用一句话来描述各个RAID级别的原理。
         RAID0:将数据切割成块,将块同时写到几个硬盘中。RAID0提高了读写性能,没有容错能力。
         RAID1:将同一份数据同时写到2个硬盘中。写性能降低,读性能提高。有容错。
         RAID3:将数据写到几块硬盘中,一块盘做数据校验盘。有容错。
         RAID5:将数据写到几块硬盘中,一份校验数据分布中各个硬盘中。有容错。
         RAID6:将数据写到几块硬盘中,2份校验数据分布中各个硬盘中。有容错。
 
特征 RAID 0 RAID 1 RAID 5 RAID 6
最小磁盘数 2 2 3 4
数据保护 无保护 一块硬盘故障 一块硬盘故障 两块硬盘故障
读取性能 High High High High
写入性能 High Medium Low Low
读取性能退化 N/A Medium Low Low
写入性能退化 N/A High Low Low
利用率 100% 50% 67% - 94%
n/(n-1)
50% - 88%
n/(n-2)
典型应用 高性能 工作站, 数据计录, 实时翻译, 短暂的数据 运营系统, 交换数据库 数据存储, 网络服务,存档 数据存储, 备份磁盘, 高可用解决方案, 大容量服务器
 
总结:RAID0两块硬盘容量相加,提升性能,但坏一块就全坏,安全没保障;
RAID1两块硬盘同样内容,数据写入一写就两分,容量只有一块硬盘,性能低,但坏了一块没事,而且有保障;
RAID5三块硬盘其中一块做检验盘,容量利用率2/3,性能中等,允许坏一块,性价比最好;
RAID1+0四块硬盘结合0和1优点,性能高,安全有保障,可以坏两块。但利用率最低50%;
RAID6是RAID5升级版,六块硬盘,两块做检验,容量利用率4/6,允许坏两块硬盘,但两块坏了还不换硬盘就没了保障,但支持热备硬盘,出故障的硬盘上的数据会转移到热备硬盘上,并且自动进行重建,虽然成本高,数据写入慢,但有效的硬盘利用率和保障性是大容量存储的首选;
最后,上面是最低硬盘数量,也称基础单元,不能再少。比如我拿16块硬盘做RAID10,就是由4组4块硬盘所构成的RAID10来实现的。

快速理解几种常用的RAID磁盘阵列级别的更多相关文章

  1. 快速理解VirtualBox的四种网络连接方式

    VirtualBox中有4中网络连接方式: NAT Bridged Adapter Internal Host-only Adapter VMWare中有三种,其实他跟VMWare 的网络连接方式都是 ...

  2. RAID磁盘阵列及CentOS7启动流程

    1. 磁盘阵列 1.1 RAID,磁盘阵列磁盘通过硬件和软件的形式组合成一个容量巨大的磁盘组,提升整个磁盘的系统效能:RAID常见类型: RAID类型 最低磁盘个数 空间利用率 各自的优缺点 级别 说 ...

  3. RAID磁盘阵列介绍

    磁盘阵列 RAID介绍 一.简介: 磁盘阵列(Redundant Arrays of Independent Drives,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 最初是由加利福尼亚 ...

  4. RAID磁盘阵列原理

    磁盘阵列(Redundant Arrays of independent Disks,RAID),有“价格便宜具有冗余能力的磁盘阵列”之意.原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数 ...

  5. RAID磁盘阵列及CentOS7系统启动流程(week2_day3)--技术流ken

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...

  6. RAID磁盘阵列及CentOS7系统启动流程

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,,数据读取无影响.将数据切割成许多区段,分别存放在各个硬盘 ...

  7. 末学者笔记--Linux中RAID磁盘阵列及centos7启动过程

    <一>RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便 ...

  8. Linux系统的RAID磁盘阵列

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意. 磁盘阵列是由很多价格较便宜的磁盘,以硬件( ...

  9. 【存储】RAID磁盘阵列选择

    RAID磁盘阵列(Redundant Arrays of Inexpensive Disks) 一个基本思想:将多个容量较小.相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量 ...

随机推荐

  1. 十一. 一步步破解JEB 2.0demo版一

    字符串解密算法还愿 jeb.jar为核心功能,所以主要分析这个 1. jar转dex在使用jeb分析 Android\sdk\build-tools\23.0.3 dx.bat --dex --out ...

  2. 【转】android中ListView的定位:使用setSelectionFromTop实现ListView的position的保持

    如果一个ListView太长,有时我们希望ListView在从其他界面返回的时候能够恢复上次查看的位置,这就涉及到ListView的定位问题: 解决的办法如下: 1 2 3 4 5 6 7 // 保存 ...

  3. javax.validation.ConstraintViolationException---Hibernate后台实体校验

    javax.validation.ConstraintViolationException ... 71 moreCaused by: javax.validation.ConstraintViola ...

  4. 设置app的启动图

    Step1 1.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image" 2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以 ...

  5. 无废话ExtJs 入门教程二十一[继承:Extend]

    无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...

  6. Windows 10 使用C#如何将IE设置为默认浏览器

    在WPF XBAP项目中遇到这样一个问题,程序在Windows 10上面无法运行.原因是因为Windows 10默认浏览器是Edge,而XBAP程序是需要在IE上面运行的.于是开始想办法修改Windo ...

  7. C# 使用Log4Net记录程序日志

    在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可 ...

  8. 移动端使用让图片或者div垂直居中

    ._limgMIiddle{ /* Firefox */ display:-moz-box; -moz-box-pack:center; -moz-box-align:center; /* Safar ...

  9. 《DSP using MATLAB》示例Example5.11

  10. [工作中的设计模式]装饰模式decorator

    一.模式解析 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式的要点主要是: 1.需要对已有对象扩展新的功能,又不希望改变原有对 ...