独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(RAID, Redundant Array of Inexpensive Disks),简称硬盘阵列。由伯克利大学一位教授提出,其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。但也有可能降低安全性、降低性能等多种缺点。另外,磁盘阵列对于计算机来说,看起来就像一个单独的硬盘或逻辑存储单元。根据不同的RAID级别,基础RAID级别可以分为RAID-0,RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-7(存储计算机公司独有技术),JBOD。根据基础RAID级别,可以进行进一步组合,实现使用者自己想要的方案。

简而言之,RAID就是针对硬盘提供一种虚拟化方案,将多个物理硬盘组合成一个逻辑硬盘,操作系统只会把这个逻辑硬盘当作“一个硬盘”。RAID常被用在服务器计算机上,并且使用完全相同的硬盘作为组合。由于硬盘价格的不断下降(机械硬盘,基于TLC和QLC的固态硬盘)并且RAID功能更多的集成到主板上,因而电脑组装爱好者也热衷于给自己的数据存储模块加入RAID技术。

加入RAID技术主要是为了增加以下一项或多项功能:

1.增加数据可靠性

2.增加存储器读写性能

3.增加容量

以下依次介绍部分主流RAID基本级别。

一、RAID0 又称Strip,条带化模式

原理:数据交付给RAID控制单元,切割成若干条带,并行写入阵列

得失:理论上最高可提升读写速度为原来N倍,存储容量扩充为单块硬盘N倍,N为阵列内硬盘个数,数据安全性降低为原来的1/N,阵列内任意一块硬盘故障,整个阵列崩溃!而且从实际情况来看,由于本身切割数据也需要耗费计算资源,所以实际读写提升将略小于理论值,并且会随着硬盘个数增加而提升越来越少。

应用情况:适用于对读写要求高,成本控制严格,安全性要求不高的场合,单独RAID0笔者本人原来组准系统的时候用过,主要是为了提升跑分好看。一般都是采用其他组合的方案。

原理图示:

二、RAID-1 又称Mirror,镜像模式

原理:数据交付给RAID控制单元,对阵列内所有磁盘写入相同数据。读取时,与RAID0相仿,可以同时从阵列中所有可用硬盘内读取所需数据。

得失:理论上数据安全性提升N倍,写能力不受影响,读取数据能力提升为原来N倍(性能基准与单块硬盘比较,N为硬盘个数)。实际情况中,数据安全性提升比率更大(要镜像阵列中所有盘坏才会定义为崩溃,所以崩溃几率是相乘,会成倍减小),读取数据能力提升不足N倍(受控制器影响,和控制策略算法影响),写能力微弱下降(控制单元损耗)

应用情况:适用于对数据安全性要求高,读多写极少的情况,故也不适合单独拿来大规模应用。

原理图示:

三、RAID3 带专用校验盘的数据条带

原理:数据交付给RAID控制单元,控制单元将向阵列中一块固定的磁盘写入校验信息,同时将数据信息写入其余磁盘。校验信息为异或值(Xor),如果任意一块硬盘发生错误,那么都可以通过其余磁盘信息异或后重建。

得失:当整个阵列健康时,能够提供接近RAID0的性能(倍数要排除掉校验盘),同时提供一定的容灾能力(允许一块硬盘故障)。但一旦出现坏盘进入降级模式,每一次读写坏区块的信息都要通过计算其余盘的内容,性能会大大下降

应用情况:由于RAID5能够更好的代替RAID3,所以基本上RAID3应用不多。

原理图示:

四、RAID5 分散校验盘的数据条带

原理:校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。

得失:读取速度接近RAID0(倍数要排除掉校验盘),同时提供一定的容灾能力(允许一块硬盘故障)。但RAID5还提供良好的扩展性,磁盘数量增加,能提供更高的容量和更快的速度。当然,对替换盘重建数据时,性能依然会受到较大影响。RAID5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID0 和 RAID1 的折中方案,是目前综合性能最佳的数据保护解决方案。

应用情况:RAID5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。但实际的应用中,也通常不单使用RAID5,而是有其他多种的组合方案。

原理图示:

当然,还有其他的诸如RAID2,RAID4,RAID6及7等非主流基本阵列模式,这种阵列模式一般商用产品都是不支持的,仅供理论了解,这里也贴一篇很好的博文,供大家参考。

点击这里查看超级详细的介绍RAID的一篇图文!

五、RAID的常见基础组合,raid10和raid01

原理:RAID10又称RAID1+0,是先将买来的硬盘分成两组,做镜像,再对每组硬盘做条带化。而RAID01则恰恰相反,是先将买来的硬盘分成两组,做条带化,再对每组硬盘做镜像。

得失:在对每个子组保持基本RAID等级的特性下,RAID10比RAID01有更好的容错能力,能够允许多个子RAID1都有坏盘,只要不是一个RAID1组中硬盘全部坏掉就OK。然而RAID01只能允许在其中一个RAID0组中有坏盘。成组至少四块硬盘,由于都有RAID1,所以磁盘利用率50%

应用情况:鉴于RAID10和01都至少四块硬盘,并且磁盘利用率在完全健康下都一致,基于RAID10数据更强的容灾能力,因而主流的磁盘阵列产品都只支持RAID10。

原理图示:

还有其他更多的组合,但都不常用。读者可以在我之前贴出的那个链接里去查阅,那篇文章很详细。

看完我这篇文章,应付一般面试都是没有问题的了。而且列举的阵列模式都是常用/支持商业化的,所以大家也可以灵活利用这些常用阵列,提升自己的硬盘效能和数据安全性。

Intel的SRT技术也可以看成是RAID的一种,只不过是Intel独有,这里就不放在这里介绍拉,有机会的话,我自己也会写一篇博客。

感谢观看。

转载于:https://www.cnblogs.com/sbhyc/p/9921604.html

【运维理论】RAID级别简介相关推荐

  1. 【2016年第6期】基于大数据的移动互联网主动运维理论和实践进展

    杨慰民 中国移动通信集团福建有限公司,福建 福州 350003 ‍‍摘要:‍对于非话音的移动互联网业务,即使网络指标是完好的,仍然存在用户感知不佳的现象.基于大数据技术研究用户感知和网络性能指标的关系 ...

  2. 运维技能定级标准第4篇——关于运维工程师岗位的自动化运维与运维开发技能级别设计

    运维工程师岗位工作技能的评定类别(5)和(6) 5.自动化运维技术 级别0,什么都不懂 级别1,了解ansible.saltstack.puppet等主流的自动化运维管理技术工具,掌握公司主要使用的一 ...

  3. 【运维】- raid管理工具MegaCli以及storcli使用介绍

    目录 背景 工具介绍 storcli: MegaCli: 处理 服务器A 服务器B 服务器C 背景 手上有几台服役三四年的服务器,近期因硬盘老化等各种问题出现Media error count,需要更 ...

  4. 运维监控系统——Zabbix简介

    前言 对于运维人员来说,监控是非常重要的,因为如果想要保证线上业务整体能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器.网络设备等硬件资源, ...

  5. 笔录:ERP运维理论

    1.     ERP运维三阶段:系统保障(上线初期)-> 系统优化(稳定阶段)->系统扩充(满足需求后) 2.     ERP运维模式 -       集中式.由专职运维人员负责 -    ...

  6. SaltStack自动化运维(一)——简介与架构解析

    前言 SaltStack是一种新型的基础设施管理软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位. SaltStack提供了一个动态基础设施通信总线用于 ...

  7. IT运维——系统监控软件简介

    对于很多企业来说,为了保证IT系统能够正常运行,很多企业都有选择一种系统监控软件进行实时或者远程监控.下面,编者搜集了一些切实可用的系统监控软件,希望能够帮助企业IT系统稳定.安全地运行. 首先,监视 ...

  8. Linux系统运维管理之Linux简介

    1.操作系统介绍 内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序: 内核能够控制硬件,比如:让CPU可以运算.让 ...

  9. 运维技能定级标准第3篇——关于运维工程师岗位的运维监控与MySQL数据库技能级别设计

    运维工程师岗位工作技能的评定类别(3)和(4) 3.运维监控技术 级别0,什么都不懂 级别1,常见监控工具或软件系统的基本安装.配置.使用,照猫画虎会使用而已. 级别2,熟悉监控系统的基本原理和常用配 ...

最新文章

  1. dataTable 表格组件刷新 问题记录
  2. Python多分类问题下,micro-PR计算以及macro-PR计算
  3. 011_学生管理系统二
  4. shell连接工具_无需本地软件,只用浏览器就能连接并控制安卓手机
  5. c++与java,有什么区别?
  6. ORACLE连接数据库(备忘)
  7. python文本筛选html_python 正则表达式过滤文本中的html标签 源代码解析
  8. 读《人月神话》笔记1
  9. 很少人知道,但是非常实用的 Python 库
  10. Enterprise Library—缓存应用程序块
  11. 参加管理课程所获的 之一
  12. HR谈网络工程师求职与职业规划
  13. 山西高考2021年成绩查询时间,2021年山西高考成绩公布时间
  14. 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建
  15. 怎么用硕鼠下载优酷专辑
  16. 直播带货系统,实现直播间人数统计
  17. C语言之for循环应用之断案篇----找凶手
  18. 四大开源3d游戏引擎探究(前言上)
  19. Android 将本地资源图片转换成Drawable,进行设置大小
  20. Linux修改密码提示鉴定令牌操作错误

热门文章

  1. mysql 默认时间_mysql中如何设置默认时间为当前时间?
  2. 二等水准数据平差_自编单次二等水准平差计算表
  3. python安装request失败_在python 虚拟环境下使用命令pip install -r request 安装软件失败?...
  4. BicycleGAN详解与实现
  5. java关键字static_Java中的static关键字
  6. 使用DataBinding的Android SearchView示例教程
  7. java编程测试题_Java编程测试可帮助您评估求职者
  8. C++基础知识(二)命名空间
  9. OpenGL ES应用开发实践指南:iOS卷
  10. JAVA--异常(1)