原创地址:http://www.cnblogs.com/jfzhu/p/3999283.html

转载请注明出处

 

独立硬盘冗余阵列RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列Redundant Array of Inexpensive Disks),简称硬盘阵列。其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。

 

(一)RAID级别

常见的有以下几种

RAID 0 – Disk Striping

RAID 1 – Disk Mirroring

RAID 5 – Disk Striping with Parity

 

 

(1)RAID 0

它将两个以上的磁盘串联起来,成为一个大容量的磁盘。它可以合并的硬盘数量是2-32个硬盘,合并后的硬盘容量即为每个硬盘容量的总和。举个例子,有四块硬盘,每个硬盘容量都是250GB,那么Disk Striping Array的容量就为1TB。

它在向磁盘存放数据时,将数据分段(以位或字节为单位)后分散存储在这些磁盘中。比如要保存一个Excel文档,这个文档的bit 1被写到磁盘1中,bit 2被写到磁盘2中,bit 3被写到磁盘3中,bit 4被写到磁盘4中,然后bit 5又被写到bit 1中,这样循环下去,只到整个文档都被写完。因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失,危险程度很高。

 

 

 

Volume = Sum(S1, S2, S3,…)

 

优点:硬盘利用率高,读写速度快

缺点:没有冗余功能

 

(2) RAID 1

Disk Mirroring 的意思是多块硬盘互为镜像,其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据,当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的,可靠性最高。RAID 1支持热插拔,如果有一块硬盘坏掉,可以把它直接拔下来,然后热插上一块新硬盘,新硬盘会把另一块硬盘内容拷贝过来。在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,但写入速度有微小的降低。另外无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。

 

 

 

 

Volume = min(S1, S2, S3…)

 

优点:冗余功能

缺点:硬盘写速度降低,硬盘利用率低

 

(3) RAID 5

RAID 5可以理解为是RAID 0和RAID 1的折衷方案,它兼顾了储存性能、数据安全和存储成本。RAID 5需要至少3块硬盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。

 

Volume = (N - 1) * min(S1, S2, S3…, SN)

 

 

优点:磁盘容量利用率较高 (RAID 0 > RAID 5 > RAID 1)

        硬盘读速度较快(RAID 0 > RAID 5 > RAID 1)

        冗余功能

 

(4) RAID 10 / 01

RAID 10是先镜像再分割资料,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。

RAID 01则是跟RAID 10的程序相反,是先分割再将资料镜像到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。

当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。如果以六个硬盘建RAID 01,镜像再用三个建RAID 0,那么一个硬盘坏便会有三个硬盘离线。因此,RAID 10远较RAID 01常用,零售主机板绝大部份支援RAID 0/1/5/10,但不支援RAID 01。

 

 

 

           

应该说能够与RAID10竞争的只有RAID 5了,两者在不同的场景有大量的使用。在安全性上RAID 10要比RAID 5强,当RAID 5有一块硬盘损坏时,读性能有很大的下降,因为损坏硬盘中的数据要通过其他硬盘中的数据和校验一起才能计算出来,所以在数据库存储时一般选择RAID 10。在磁盘使用率上RAID 5要比RAID 10高很多,所以对安全性要求不是特别高的场合比如文件存储一般大量使用RAID 5。相反,安全性要求很高,不计成本,小数据量频繁写入的系统采用RAID 10的方式比较好。

 

 

(二)Size VS. Volume in RAID

Size >= Volume

RAID对每块硬盘所能使用的容量取决于容量最小的那块硬盘。以下图为例,三块硬盘的容量分别为500GB, 250GB, 100GB, 我们要做一个RAID 5阵列,那么每块硬盘可以使用的容量就为100GB。做出的阵列,Size为300GB, Volume为200GB。

 

 

 

(三)服务器磁盘阵列损坏时注意不要做的事情

当服务器的RAID的磁盘阵列坏掉时,不要break磁盘阵列,不要将一块磁盘拔出来,试图在其他地方进行数据恢复,因为这样可能会破坏磁盘阵列数据的完整性。

 

 

(四)实际应用情况

RAID2、3、4较少实际应用,因为RAID5已经涵盖了所需的功能,因此RAID2、3、4大多只在研究领域有实现,而实际应用上则以RAID 5为主。在数据库等重要领域一般使用RAID 10,所以在实际生产中要么选择RAID5,要么选择RAID10,当然也有少量的RAID6存在。除非特定厂商的产品有比较特殊的特定的选择。虽然RAID技术是一个很伟大的发明,但是除非在大型企业或数据中心中,一般不建议使用RAID。即便使用了RAID技术,做好系统备份与灾难恢复的工作也是十分重要的,比如如果RAID Controller坏掉了,可能厂商会第二天才会过来帮你换一个新的,又或者厂商已经倒闭,没有办法换一个新的RAID Controller,所以相对来讲,可能更为实惠可靠的方法是对数据做好灾备工作。

 

另外参见微软的文档 RAID Levels and SQL Server

RAID 概述的更多相关文章

  1. Linux创建RAID概述

    Linux创建RAID RAID概述 RAID(Redundant Array of Independent Disk)虚拟存储系统 RAID即独立冗余磁盘阵列,其思想是将多块独立的磁盘按不同的方式组 ...

  2. raid概述与CentOS7.4中raid5的搭建与测试

    前言 一.raid的定义与作用 raid(独立冗余磁盘阵列).raid技术通过把多个硬盘设备组合成一个容量更大的,安全性更好的磁盘阵列.把数据切割成许多区段后分别放在不同的物理磁盘上,然后利用分散读写 ...

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

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

  4. 【转】RAID 技术发展综述

    原文地址:https://blog.csdn.net/liuaigui/article/details/4581970   摘要 :现代企业信息化水平不断提高,数据已经取代计算成为了信息计算的中心.这 ...

  5. centos6中创建软raid方法

    raid概述: 组建raid阵列命令: mdadm:模式化的工具 /etc/mdadm.conf     -A  Assemble 装配模式     -C  Create 创建模式     -C:专用 ...

  6. 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100

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

  7. 【Linux】LVM逻辑卷管理和RAID

    LVM概述: 是对磁盘分区进行管理的一种机制 是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不 够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空 ...

  8. RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】

    图文并茂 RAID 技术全解 – RAID0.RAID1.RAID5.RAID100…… RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转 ...

  9. RAID技术超详细讲解

    RAID 技术是一种多磁盘技术,面对数据的各方面有着两面性的影响,整体来说优点大于缺点的,下面我将详细介绍一下 RAID ,简称磁盘阵列技术. 一.RAID 概述 1988 年美国加州大学伯克利分校的 ...

随机推荐

  1. 毕业论文—使用js将canvas保存为图片文件,并且自定义文件名

    该文章引用http://blog.csdn.net/qq547276542/article/details/51906741 1.从canvas中直接提取图片元数据 // 图片导出为 png 格式 v ...

  2. 网络神器Greasemonkey(油猴子)使用方法简介+脚本分享【转载】

    推荐下,觉得这个方法有用, 今天艾薇百科来介绍一下功能强大的Greasemonkey,俗称"油猴子",Greasemonkey可以自由定制网页,实现你想要的各种功能.堪称" ...

  3. 转:Delphi2010新发现-类的构造和析构函数功能

    Delphi2010发布了. 虽然凭着对Delphi的热爱第一时间就安装了,但是现在可能是年纪大了,对新事物缺乏兴趣了.一直都没有仔细研究. 今天有点时间试了一下新功能. 本来C#和Delphi.NE ...

  4. VS2013发布网站,vs2013发布

    转自:http://www.bkjia.com/Asp_Netjc/1018876.html 本文讲解网站建好之后,如何发布在服务器上面.这也是阿辉最近遇到的问题,经过不停的查找资料终于解决了,但是有 ...

  5. c#取得应用程序根目录

    1.取得控制台应用程序的根目录方法 方法1.Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径方法2.AppDomain.CurrentDomain.Bas ...

  6. Ajax基础(小猫)

    Ajax 1.什么是Ajax: 不用刷新整个页面便可与服务器通讯的办法 2.Ajax的基本使用 2.1XMLHttpRequest l XMLHttpRequest对象 XMLHttpRequest是 ...

  7. 一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)

    背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...

  8. webScoket的浅短的认识

    在一般的发送数据请求的时候都是用的http协议,但是对于类似即时聊天,需要客户端与服务器不间断的交互的时候对于http协议来说就不太适用了.因为http协议无法主动把数据发到客户端,而且客户端发送请求 ...

  9. 关于 Raphael

    Raphael Javascript 是一个 Javascript的矢量库. 2010年6月15日,著名的JavaScript库ExtJS与触摸屏代码库项目jQTouch,以及SVG.VML处理库Ra ...

  10. java并发编程(十三)经典问题生产者消费者问题

    生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据. 这里实现如下情况的生产--消费模型: 生产者不断交替地生产两组数据&q ...