RAID,为Redundant Arrays of Independent Disks的简称,中文为廉价冗余磁盘阵列。

一.出现的原因(RAID的优点):

  1. 它的用途主要是面向服务器,但现在的个人电脑由于需求变大,需要几块硬盘,而计算机默认的是对第一块硬盘有缓存,而其它的则没有,这样就导致计算机访问其它的硬盘的速度特别的慢,这时磁盘阵列技术出现了,组合小的廉价磁盘来代替大的昂贵磁盘,用于协调几块硬盘的访问。
  2. 在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

二.不足之处(RAID的缺点)

做不同的RAID,有RAID模式硬盘利用率低,价格昂贵。

三.RAID的分类

   1.RAID0 (又称为StripeStriping)数据分条技术,即文件要写入RAID时,文件会被切割成大小相同的数据条,然后数据条被依次按顺序存放到不同的磁盘中去。

  如图1所示:系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。
  从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。硬盘越多,传输速度越块,但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。 
  RAID 0的缺点是不提供数据冗余,因为数据被分条储存,所以只要有一个硬盘挂了,文件的一部分数据条就丢失了,整个文件也损坏。所以一旦用户任意一个硬盘损坏,损坏的数据将无法得到恢复。 
  RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站或其他对硬盘性能要求较高的应用等。感觉RAID 0适用的情况比较极端,企业应用服务器极少会用到,另外,由于同品牌同型号、大小的硬盘在一起用才会更能体现,且效果不如SSD,因此RAID 0对家用电脑来说也略显不实。

硬盘需求数量:2或者2个以上

硬盘利用率:利用率最高,所有磁盘容量之和,100%

容错性:容错性最低,0

  2.RAID 1 (又称为MirrorMirroring)镜像技术

 一份数据被传入RAID 1中会被分为两股,并分别写入到各个磁盘里去,由於同一份数据会被分别写入到其他不同磁碟,因此如果要写入 100MB 时,数据传送到 I/O 汇流排后会被复制多份到各个磁碟, 结果就是数据量感觉变大了!因此在大量写入 RAID-1 的情况下,写入的效能可能会变的非常差 (因为我们只有一个南桥啊!)。 好在如果你使用的是硬件 RAID (磁盘阵列卡) 时,磁盘阵列卡会主动的复制一份而不使用系统的 I/O 汇流排,效能方面则还可以。
如果使用软件磁盘阵列,可能效能就不好了。

由於两颗硬盘内的数据一模一样,所以任何一颗硬盘损毁时,你的数据还是可以完整的保留下来的! 所以我们可以说, RAID 1 最大的优点大概就在於数据的备份吧!不过由於磁碟容量有一半用在备份, 因此总容量会是全部磁碟容量的一半而已。虽然 RAID-1 的写入效能不佳,不过读取的效能则还可以啦!这是因为数据有两份在不同的磁碟上面,如果多个 processes 在读取同一笔数据时, RAID 会自行取得最佳的读取平衡。

如图2所示:当读取数据时,系统先从RAID1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回的数据损失。

硬盘需求数量:2 + 2*N(N ≥0) (大部分控制器只支持2块盘纯RAID 1)

硬盘利用率:利用率最低分,所有磁盘容量的一半50%

容错性:容错性最高,容许坏一半的硬盘。

P.S. 有次跟Dell的工程师沟通过,dell的工程师说如果如果4块盘考虑纯RAID
1,那么只有一块盘的容量能用,别的盘都是镜像盘,那么容错是同时容许N-1块盘坏,可是实际上Dell及惠普的阵列卡在选择RAID 1的模式下是只能选择2块,不容许选再多了(╯' - ')╯︵ ┻━┻

  3.RAID 1+0 RAID 0+1

RAID-0 的效能佳但是数据不安全,RAID-1 的数据安全但是效能不佳,那么能不能将这两者整合起来配置 RAID 呢? 可以啊!那就是 RAID 0+1 或 RAID 1+0。所谓的 RAID 0+1 就是: (1)先让两颗磁碟组成 RAID 0,并且这样的配置共有两组; (2)将这两组 RAID 0 再组成一组 RAID 1。这就是 RAID 0+1 罗!反过来说,RAID 1+0 就是先组成 RAID-1 再组成 RAID-0 的意思。

硬盘需求数量:4 + 2*N(N ≥0)

硬盘利用率:利用率低,所有磁盘容量一半,50%

容错性:容错性尚可,允许同时损坏一半的盘片,但是至于如何损坏会对RAID有影响取决于是用RAID1+0 还是用RAID 0+1 。

  4.RAID5 、Raid 6

如上图所示,每个循环写入时,都会有部分的同位检查码 (parity) 被记录起来,并且记录的同位检查码每次都记录在不同的磁碟, 因此,任何一个磁碟损毁时都能够藉由其他磁碟的检查码来重建原本磁碟内的数据喔!不过需要注意的是,
由於有同位检查码,因此 RAID 5 的总容量会是整体磁碟数量减一颗。以上图为例, 原本的 3 颗磁碟只会剩下 (3-1)=2 颗磁碟的容量。而且当损毁的磁碟数量大於等於两颗时,这整组 RAID 5 的数据就损毁了。 因为 RAID 5 默认仅能支持一颗磁碟的损毁情况。

在读写效能的比较上,读取的效能还不赖!与 RAID 0 有的比!不过写的效能就不见得能够添加很多! 这是因为要写入 RAID 5
的数据还得要经过计算同位检查码 (parity) 的关系。由於加上这个计算的动作, 所以写入的效能与系统的硬件关系较大!尤其当使用软件磁盘阵列时,同位检查码是透过 CPU 去计算而非专职的磁盘阵列卡, 因此效能方面还需要评估。

另外,由於
RAID 5 仅能支持一颗磁碟的损毁,因此近来还有发展出另外一种等级,就是 RAID 6 ,这个 RAID 6 则使用两颗磁碟的容量作为 parity 的储存,因此整体的磁碟容量就会少两颗,但是允许出错的磁碟数量就可以达到两颗了!
也就是在 RAID 6 的情况下,同时两颗磁碟损毁时,数据还是可以救回来!

硬盘需求数量: N(N ≥3)

硬盘利用率:利用率尚可,利用率为N-1块盘的容量

容错性:容错性尚可,所有磁盘磁盘坏一个,如果RAID6,容许所有磁盘坏两个,但同时利用率也为N-2

四 热备盘

当坏盘出现后,服务器会报警,人工可以手动将坏盘替换出来,当插入好盘的时候,RAID控制器会根据XOR,将的三块盘的信息在后台算出来,然后写入新的硬盘。有些RAID控制系统会用NVRAM来存放阵列信息,因此和整列相关的条带化数据也会重新分配到新盘上,这些工作都对用户和应用程序来说都是透明的,用户可能会感受到的就是系统会因为在后台底层进行条带数据的重新分配而带来的服务器响应延迟。

当然,如果条件允许,用户也可以强制作重新分配,当然是在维护停机时间内操作。

好,看了上面的基础知识,大家可以知道,如果RAID 5的盘阵中即便出现一个坏盘,里的数据也不会丢失,甚至你可以不用去理睬他(当然系统性能会有比较大的下降)。

但是由于XOR的限制和RAID 5这个级别的限制,如果连续两个盘出现了问题,呢么整个盘阵中的数据就完蛋了,系统也会不可用。

特别是那些无人值守的机房,RAID 5中死掉一个盘,没有关系,如果他们比较倒霉,在管理人员没有更换坏盘的时候,第二个硬盘也死掉了,那麽就都完蛋了。

Hot-Spare盘就是一个不参与盘阵的,但是加电上线的盘,一点RAID 中的盘出现问题,它都可以自动的替换进入盘阵,你可以把它想象成一个"自动换盘"的概念。

RAID及热备盘详解的更多相关文章

  1. 服务器较稳妥的磁盘阵列方案:RAID5+热备盘

    最近公司这边要整个数据中心,但是我们这边磁盘阵列的方案选择方面需要做好万全的测试 内部测试的服务器当初损坏的磁盘1个做的raid5直接换个新磁盘做替换rebuild就行了 但是现在想的方法是5+1的方 ...

  2. 联想服务器X3650 M2 配置 RAID5 + 热备盘

    实验环境: 1.  服务器型号联想 System X3650 M2 2.  六块300G  SAS硬盘 实验目的: 配置RAID 5 ,搭建重要文件备份服务器. 标注:本教程六块硬盘,其中五块硬盘做R ...

  3. dell服务器在bios中指定raid5的热备盘

    一.创建raid5 二.指定热备盘   选择第15块磁盘作为上面创建的raid5的热备盘 选中 选中我们刚创建的raid5,点击OK

  4. U盘详解

    摘要:U盘,称呼最早来源于朗科公司生产的一种新型存储设备,名曰“优盘”,使用USB接口进行连接.USB接口就连到电脑的主机后,U盘的资料可与电脑交换.而之后生产的类似技术的设备由于朗科已进行专利注册, ...

  5. linux dd命令刻录启动U盘详解

    dd if=xxx.iso of=/dev/sdb bs=1M 用以上命令前必须卸载u盘,sdb是你的u盘,bs=1M是块的大小,后面的数值大,写的速度相对块一点,但也不是无限的,我一般选2M,注意, ...

  6. DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解

    DELL R720服务器安装Windows Server 2008 R2 操作系统图文详解 说明:此文章中部分图片为网络搜集,所以不一定为DELL R720服务器安装界面,但可保证界面内容接近DELL ...

  7. kickstart配置文件详解和system-config-kickstart (转载)

    kickstart是什么        许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以 ...

  8. mdadm命令详解

    创建阵列(-C或--create) --raid-devices(-n) 功能:指定阵列中成员盘个数. 举例:mdadm --create /dev/md0 -l5 -n2 /dev/sdb /dev ...

  9. linux基础-磁盘阵列(RAID)实例详解

    磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 R ...

随机推荐

  1. Eclipse中Maven的配置

    Maven 的配置 1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven 1.2 配置 Maven 的c ...

  2. JS中的循环结构

    [循环结构的执行步骤]1.声明循环变量:2.判断循环条件3.执行循环体操作4.更新循环变量然后循环执行2-4,直到条件不成立时,跳出循环.while循环()中的表达式,运算结果可以是各种类型,但是最终 ...

  3. [js高手之路]设计模式系列课程-委托模式实战微博发布功能

    在实际开发中,经常需要为Dom元素绑定事件,如果页面上有4个li元素,点击对应的li,弹出对应的li内容,怎么做呢?是不是很简单? 大多数人的做法都是:获取元素,绑定事件 <ul> < ...

  4. Spring详解(三)------DI依赖注入

    上一篇博客我们主要讲解了IOC控制反转,也就是说IOC 让程序员不在关注怎么去创建对象,而是关注与对象创建之后的操作,把对象的创建.初始化.销毁等工作交给spring容器来做.那么创建对象的时候,有可 ...

  5. adb 安装apk 报错:Failure [INSTALL_FAILED_ALREADY_EXISTS]

    遇到INSTALL_FAILED_ALREADY_EXISTS问题,直接通过adb install -r xxx.apk命令安装apk即可

  6. JS判断当前使用设备是pc端还是web端(转MirageFireFox)

    js判断当前设备 最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实. 仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站. 站点 PC端url we ...

  7. 关于Java的发展前景

    各位看官觉得Java还能火几年?未来的发展方向是什么?

  8. MQ、JMS以及ActiveMQ 关系的理解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt127 Best-text mb-10代码 ms 的一个标准或者说是一个协议. ...

  9. servlet中的字符编码过滤器的使用

    一:简介 Servlet过滤器是客户端和目标资源的中间层组件,主要是用于拦截客户端的请求和响应信息.如当web容器收到一条客户端发来的请求 web容器判断该请求是否与过滤器相关联,如果相关联就交给过滤 ...

  10. django源码解析一(请求处理流程)

    1.我们都知道WSGI是一个规范,规范了server和application之间通信的一些约束,server端在监听到请求之后,会把请求转给application去处理,他们之间关联起来的桥梁是一个e ...