一.简介

Raid全称" 独立磁盘冗余阵列", 有时也简称磁盘阵列(Disk Array)。

RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式成为RAID级别。

Raid的级别:

Raid 0,Raid 1,Raid 0+1(也称Raid 10),Raid 2,Raid 3,Raid 5,Raid 6,Raid 7,Raid 53.

原理分析

我们为什么需要磁盘阵列?

目前人们逐渐认识了磁盘阵列技术。磁盘阵列技术可以详细地划分若干个级别0-5RAID技术,并且又发展了所谓的RAID Level 10,30,50的新的级别。RAID是廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。用RAID的好处简单的说就是:安全性高,速度快,数据容量超大。

某些级别的RAID技术可以把速度提高到单个硬盘驱动器的400%。磁盘阵列把多个硬盘驱动器连接在一起协同工作,大大提高了速度,同时把硬盘系统的可靠性提高到接近无错的境界。这些"容错"系统速度极快,同时可靠性极高。

本文将讨论这些新技术,以及不同级别RAID的优缺点。

硬盘数据跨盘(Spanning)

数据跨盘技术使多个硬盘像一个硬盘那样工作,这使用户通过组合已有的资源或增加一些资源来廉价地突破现有的硬盘空间限制。

常用的是下面的几种RAID形式

(1) RAID 0

RAID 0又称为Stripe(条带化)或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。

RAID 0结构图解

如图所示:系统向四个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为4项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的两块硬盘中同时执行。从理论上讲,四块硬盘的并行操作使同一时间内磁盘读写速度提升了4倍。

但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。

RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。

(2) RAID 1

RAID 1又称为Mirror或Mirroring(镜像),它的宗旨是最大限度的保证用户数据的可用性和可修复性。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。

RAID 1结构图解

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

由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而Mirror(镜像)的磁盘空间利用率低,存储成本高。Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域.

(3) RAID 0+1

正如其名字一样RAID 0+1是RAID 0和RAID 1的组合形式,也称为RAID 10。

以四个磁盘组成的RAID 0+1为例,其数据存储方式如图所示:RAID 0+1是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

由于RAID 0+1也通过数据的100%备份功能提供数据安全保障,因此RAID 0+1的磁盘空间利用率与RAID 1相同,存储成本高。

RAID-10结构图解

RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。

(4) RAID 3

RAID 3是把数据分成多个"块",按照一定的容错算法,存放在N+1个硬盘上,实际数据占用的有效空间为N个硬盘的空间总和,而第N+1个硬盘上存储的数据是校验容错信息,当这N+1个硬盘中的其中一个硬盘出现故障时,从其它N个硬盘中的数据也可以恢复原始数据,这样,仅使用这N个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用RAID3,安全性是可以得到保障的。

RAID 3结构图解

与RAID0相比,RAID3在读写速度方面相对较慢。使用的容错算法和分块大小决定RAID使用的应用场合,在通常情况下,RAID3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播出机、大型数据库等.

(5) RAID 5

RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。

以四个硬盘组成的RAID 5为例,其数据存储方式如图4所示:图中,P0为D0,D1和D2的奇偶校验信息,其它以此类推。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

RAID 5结构图解

RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。

(6) RAID 6

RAID 6等级是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。与RAID 5的不同之处于除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。

这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此RAID 6的数据冗余性能相当好。但是,由于增加了一个校验,所以写入的效率较RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。由于RAID 6相对于RAID 5在校验方面的微弱优势和在性能与性价比方面的较大劣势,RAID 6等级基本没有实际应用过,只是对更高级的数据的冗余进行的一种技术与思路上的尝试

RAID-6结构图解

(7) RAID 7

RAID 7等级是至今为止,理论上性能最高的RAID模式,因为它从组建方式上就已经和以往的方式有了重大的不同。基本成形式见图,你会发现在,以往一个硬盘是一个组成阵列的"柱子",而在RAID 7中,多个硬盘组成一个"柱子",它们都有各自的通道,也正因为如此,你可以把这个图分解成一个个硬盘连接在主通道上,只是比以前的等级更为细分了。这样做的好处就是在读/写某一区域的数据时,可以迅速定位,而不会因为以往因单个硬盘的限制同一时间只能访问该数据区的一部分,在RAID 7中,以前的单个硬盘相当于分割成多个独立的硬盘,有自己的读写通道,效率也就不言自明了。

然而,RAID 7的设计与相应的组成规模注定了它是一揽子承包计划。总体上说,RAID 7是一个整体的系统,有自己的操作系统,有自己的处理器,有自己的总线,而不是通过简单的插卡就可以实现的。归纳起来,RAID 7的主要特性如下:

所有的I/O传输都是异步的,因为它有自己独立的控制器和带有Cache的接口,与系统时钟并不同步所有的读与写的操作都将通过一个带有中心Cache的高速系统总线,我们称之为X-Bus专用的校验硬盘可以用于任何通道带有完整功能的即时操作系统内嵌于阵列控制微处理器,这是RAID 7的心脏,它负责各通道的通信以及Cache的管理,这也是它与其他等级最大不同之一

连通性:可增至12个主机接口

扩展性:线性容量可增至48个硬盘

开放式系统,运用标准的SCSI硬盘、标准的PC总线、主板以及SIMM内存

高速的,集成Cache的数据总线(就是上文提到的X-bus)

在Cache内部完成校验生成工作

多重的附加驱动可以随时热机待命,提高冗余率和灵活性易管理性:SNMP(Simple Network Management Protocol,简单网络管理协议) 可以让管理员远程监视并实现系统控制按照RAID 7设计者的说法,这种阵列将比其他RAID等级提高150-600%写入时的I/O性能,虽然这引起了不小的争议。

RAID-7结构图解

(8) RAID 53

与RAID 10一样,RAID 53也是一种组合RAID 等级,但不要拿RAID 10的观点套用,认为它是RAID 5和RAID 3的组合,事实上,RAID 53应该称为RAID 30或RAID 03(也可以说是RAID 0+3),即RAID 3与RAID 0的组合,具体形式见图:与图1相对比,可以发现,RAID 53中将备份等级由RAID 0变为了RAID 3,也就是说把原来的镜像阵列变成了分割式(Segments)存储阵列。但它不是对每个RAID 0硬盘都用一个RAID 3系统进行,而是用RAID 3对所有数据进行冗余存储(或者说是校验),而且读写与ECC效率比RAID 0要高不少。

值得注意的是,RAID 3在RAID 53的数据传输中占有相当重要的位置。在介绍RAID 3时,曾说过它有很高的读写传输率。因此,在进行大数据量吞吐时,由于RAID 3的传输率高的缘故,RAID 53的性能要比RAID 10好(因为冗余备份的时间缩短)。而且,借助于RAID 0,其I/O带宽并没有降低。不过,从它的配置形式上就可以看出来,它的存储空间利用率要比RAID 10低,为40%。

RAID-53结构图解

RAID原理分析总结-运维工作记录相关推荐

  1. 运维工作常用的性能分析工具介绍

    在运维工作中常用到的性能分析工具包括:vmstat.sar.iostat.netstat.free.ps.top.mpstat以及第三方开发工具,如:dstat.collectl及淘宝的开源监控项目t ...

  2. 在知乎上看到的一个关于Linux运维工程师必知的几点,希望对有志于从事运维工作的你有帮助

    作者:Shanker Lee 链接:https://www.zhihu.com/question/19855127/answer/13816874 来源:知乎 著作权归作者所有.商业转载请联系作者获得 ...

  3. 实用技术干货!教你用机器学习提高日常安全运维工作中的效率

    作者介绍:黄龙,网易易盾资深安全工程师,专注于互联网安全,擅长安全攻防对抗和甲方安全建设,拥有CISSP认证,同时也是网易云课堂<Web安全工程师>微专业核心制作人. ​一.安全运维工作 ...

  4. 面试 Linux 运维工作至少需要知道哪些知识?

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明 ...

  5. 网络运维工作是什么的?

    互联网运维工作,以服务为中心,以稳定.安全.高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务. 运维人员对公司互联网业务所依赖的基础设施.基础服务.线上业务进行稳定性加 ...

  6. 大数据运维工作(Linux,OGG,链路监控,Hadoop运维等)

    大数据运维工程师工作内容 Linux运维手册 1. 启动/关闭集群组件 1.1 负载均衡 1)Nginx 运维命令 Copy to clipboard cd /usr/nginx/sbin #进入 s ...

  7. 史上最全互联网运维工作规划!

    ​​互联网运维工作,以服务为中心,以稳定.安全.高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务. 运维人员对公司互联网业务所依赖的基础设施.基础服务.线上业务进行稳定性加 ...

  8. 运维工程师主要做什么_弱电工程IT运维工作到底是做什么的?

    前言: 大家好,我是薛哥.现在的弱电工程竣工验收完成后,都要进入一个运维阶段,也就是我们所说的质保期,这个质保期期间是由弱电承包商来做的,过了这个质保期以后,企业就会独立承担或者委托企业进行运维工作, ...

  9. IT运维工作到底是做什么的?

    [欢迎关注微信公众号:厦门微思网络] 互联网运维工作,以服务为中心,以稳定.安全.高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务. 运维人员对公司互联网业务所依赖的基 ...

最新文章

  1. 使用NAT实现TCP负载均衡
  2. js如何让高度和宽度保持一致_如何实现一个下载进度条/播放进度条
  3. PostGIS_导入shp格式的数据
  4. Oracle数据库—— 事务处理与并发控制
  5. 印象笔记电脑版使用技巧_高效技巧 | 一文get印象笔记素材库的5大使用场景
  6. UGUI 锚点设置为四方扩充模式然后设置局部坐标为0将出现什么问题
  7. c语言计算据标准时间多少天,C语言系列--时间处理
  8. SpriteBuilder中的粒子系统属性
  9. mysql vfp_用 VFP 连接 MYSQL 数据库
  10. PHP笔记-用户登录权限拦截说明
  11. GitHub#SQL#:SQL必知必会
  12. 面向对象编程:包,继承,多态,抽象类,接口
  13. return、reutrn false、e.preventDefault、e.stopPropagation、e.stopImmediatePropagation的区别
  14. 策略模式和工厂模式的区别_设计模式系列 — 策略模式
  15. 实例分割新作——Instances as Queries
  16. 分享33个超棒的海洋地貌风光图片
  17. GoLang之Go中的map如何实现顺序读取
  18. 12-Gateway新一代网关
  19. mybatis-Plus自动生成代码
  20. P7961 [NOIP2021] 数列

热门文章

  1. 树的定义/性质/实现
  2. 基于递归的前序二叉树遍历实现
  3. 62. 不同路径(JavaScript)
  4. typecho怎么用html编写文章,为Typecho文章增加HTML标签支持
  5. list快速默认排序java_1. java Collections.sort()实现List排序的默认方法和自定义方法...
  6. centos7虚拟机安装mysql_Linux CentOS7 虚拟机安装mysql教程
  7. python灰度图生成g代码_Python打造一个在线G代码生成器
  8. python 替换重复字符_python – 替换Pandas中的列之间的重复值
  9. python代码规范工具_Python代码规范Flake8的简单示例
  10. expect java ssh_使用expect实现自动化ssh以及执行命令