RAID 的名称为磁盘阵列,它的作用,是在多块硬盘组成的系统中,牺牲一块至多块硬盘的容量,来对数据的存储提供一定的容错能力。

基本的 RAID 级别有 RAID0、RAID1、RAID5、RAID6。根据他们的排列组合,可以衍生出 RAID1+0、RAID5+0 等多种用法。

RAID 的关键技术

首先,介绍一个基础概念,RAID 技术主要有以下三个关键技术:

  • 镜像:将数据复制到多个磁盘,保证冗余。
  • 条带:将数据分片,同时读写至不同硬盘,提高读写速度。
  • 冗余校验:通过存储奇偶校验信息等方式,实现了对数据的冗余保护,当发生磁盘故障,可根据校验信息恢复数据。

RAID 级别

RAID0(条带存储)

假设有 2 块硬盘,RAID0 是将数据条带化,也就是切片,分别写入 2 块硬盘中。因此,RAID0 将提供非常优秀的读写性能。比如,读写一个 2G 的文件,在普通硬盘上,要以单盘的速度读取/写入 2G 的数据,而如果在 2 盘 RAID0 阵列中,每个盘只需读取/写入 1G 的数据,2 个盘可以并行读取/写入,因此理论的读写速度将是单块硬盘的 2 倍。

但是严格的说,RAID0 没有冗余,只要阵列中有一块硬盘坏掉,由于这块硬盘保存着所有数据(每个文件)的某一部分,所有数据都将无法读取,整个阵列中的数据将宣告报废。

因此,RAID0 的优点是读写速度快,缺点是没有冗余。

RAID1(镜像存储)

RAID1 是最安全的阵列方案,但也是空间利用率最低的方案。RAID1 将所有数据原封不动复制一份,放于另一块硬盘中。如果用 2 块 1T 的硬盘组成 RAID1 阵列,可用空间甚至只有 1T。因为剩下的 1 块硬盘中的数据与第一块硬盘一模一样。

至于 RAID1 阵列组的性能,读取性能取决于阵列中最快的硬盘(谁读的快就用谁的数据,反正数据都一样),而写入性能则取决于阵列中最慢的硬盘(要等所有硬盘写入结束,才完成写入操作)。

因此,RAID1 的优点是安全性高,但是空间利用率低,只有 50%。

RAID5(奇偶校验存储)

RAID5 阵列需要存储时,至少需要 3 块硬盘,每块硬盘会多存部分的奇偶校验信息,当任意一块磁盘损坏,就可以通过对剩余硬盘的数据做异或操作来恢复损坏硬盘中的数据。因此,RAID5 最多可以坏掉 1 块硬盘。

值得注意的是,有一种说法:RAID5 阵列在第一块盘坏掉后,重建时第二块盘坏掉的几率大于 70%。

这个说法不一定正确。

假设 RAID5 的阵列由多块硬盘组成,运行 3 年了,每天 24 小时工作,运行这么久硬盘或多或少会有些成长坏道,如果一块硬盘坏了,更换了新硬盘,Rebuild 时,其他硬盘的成长坏道将导致 Rebuild 失败,故有「第二块盘坏掉的几率大于70%」一说,实质是疏于管理造成的。

运维人员积极关注 RAID 的健康状况可解决此问题。通过抓取 RAID 阵列卡的日志,查看阵列的「巡读日志」和硬盘的「Midea Error」数量,及时更换存在隐患的硬盘,避免阵列损坏。

当然,这个解释也不一定正确,需要使用者自行判断,信不过 RAID5 的话可以选择 RAID6。

RAID6

RAID6 基于 RAID5 的基础上,根据伽罗华域的乘除法多产生了一份校验信息,因此需要至少 4 块硬盘,其中有 2 块存储冗余数据(比 RAID5 多了一块),同时允许最多 2 块硬盘坏掉。

RAID6 的读取性能与 RAID5 相似,而写入性能由于加入了基于伽罗华域的乘除法,计算相比 XOR 异或计算更为复杂,因此比起 RAID5 来说更是慢上加慢。

RAID10

介绍完 RAID0 与 RAID1,大家或许会发现如果是单独使用,它们俩都有着巨大的不足。因此,就有两种结合性的 RAID 方案被提出:RAID0+1 与 RAID1+0,分别简称为 RAID01 和 RAID10。这两种方案都是同时吸取了 RAID0 的读写快速优点与 RAID1 的安全容错优点,但是 RAID10 由于可以在相同的性能/容量下提供比 RAID01 更好的容错安全性,因此RAID01 已经被弃用。

要具体了解为什么弃用 RAID01 而选择 RAID10,我们要先分别了解它俩的原理。其实很简单,RAID01 就是先条带后镜像。而 RAID10 则先镜像后条带。

接下来我们假设拥有 10 块 1T 硬盘,来看看它们两个的安全性:

RAID01:ABCDE 硬盘组 RAID0 容量 5T,FGHIJ 硬盘组 RAID0 容量 5T,两组硬盘组 RAID1 容量 5T。在坏掉一块硬盘的情况下(假设 F 坏掉),FGHIJ 组成的 RAID0 阵列失效,整个 RAID1 阵列处于降级(不健康)状态;此时若ABCDE 中任意一块硬盘再坏掉,将导致 ABCDE 组成的 RAID0 阵列失效,整个 RAID1 阵列将完全失效,数据全部丢失。因此在一块硬盘失效,阵列恢复重建过程中的失败率为 5/9,超过了 50%。

RAID10:AB 硬盘组 RAID1 容量 1T,CD 组 RAID1 容量 1T……依此类推组成 5 个 RAID1,之后再将这 5 个 1T 阵列组成 RAID0,容量 5T。依然假设坏掉 F 盘,此时 F 所处的 RAID1 阵列(E、F)处于降级状态,而整个 RAID0 阵列依然健康(由于RAID0阵列没有容错机制,因此除了健康就是失效,没有降级状态);如果第二块硬盘坏掉,只要不是E盘,整个RAID0 阵列就不会失效。因此 RAID10 在一块硬盘失效,阵列恢复重建过程中的失败率仅为 1/9,只有 RAID01 的五分之一。

RAID50

RAID10 是用 2 块硬盘组 RAID1,之后再组 RAID0;而 RAID50 就是用 3 块硬盘组成 RAID5 阵列,之后再用多个RAID5 阵列组成 RAID0。如图所示:

RAID50 的限制是最少 6 块硬盘,同时硬盘的数量要是 3 的倍数。而它的空间利用率达到了 2/3,容错率也达到了 1/3,可谓是比较平衡的一种大量硬盘存储的解决方案了。

RAID 级别对比总结

总结:数据保护要求级别特别高的,建议使用 RAID10,常规的数据可以使用 RAID5,对于 RAID5 不信任,可以使用 RAID6。

热备盘与冷备盘

如果具有容错冗余能力的 RAID 阵列中坏掉了一块硬盘,RAID 阵列会如何自我进行恢复呢?

以 2 盘的 RAID1 为例。假如坏掉了一块盘,RAID1 阵列将只有 1 块盘在正常运行,这时的 RAID1 阵列将处于降级(Degraded)状态,也就意味着当前阵列已无容错冗余能力,虽然还能继续运行,但是数据已经不安全,需要人为干预进行修复。只需要拔出坏掉的硬盘,换一块相同容量的、好的硬盘插上去,RAID1 阵列就会自动开始恢复重建过程。简单来说,就是将剩余 1 块盘中的数据重新拷贝到新换上的这块盘中。根据硬盘大小的不同,阵列恢复重建过程将从十几小时到几十小时不等。

那么,换上的这块硬盘,不管是从抽屉里拿出来的还是去科技市场买了一块新的,都是通过人为操作插入到整个阵列里的。在出问题之前,这块盘就冷冷的躺在抽屉里而并不会通电,这块盘就叫冷备盘(Cold Spare)。

那能不能让阵列自动找一块好的硬盘来替换掉坏掉的盘呢?当然可以。

通过热备盘(Hot Spare)实现。简单来说,就是在建好 RAID 阵列后,再向其中插入 1 到多块与阵列中硬盘相同容量的盘,将其设置为 Hot Spare 模式。这些盘在阵列健康的时候就静静的呆在那,也不存数据,也没有读写访问。一旦阵列中有硬盘出问题,阵列处于 Degraded 状态时,RAID控制器会立即激活热备盘,开始阵列的恢复重建工作。

配备热备盘的好处是当阵列出现问题时,可以第一时间启动恢复重建操作,而不必等操作人员发现之后再手动操作。这样就避免了阵列在(降级后,操作人员发现之前)的这段时间内「带病运行」,增加了数据的可靠性。当然,缺点就是又增加了成本。

戴尔服务器 R740 的配置单里写着「硬盘4*6T(Raid5+1)」,指的就是有 4 块 6T 的硬盘。RAID5+1,是指 4 块硬盘其中 3 块做 RAID5,剩余 1 块做热备硬盘。

注:有些材料写的 RAID51 与 RAID5+1 是不一样的,RAID51 是指 6 块以上硬盘,其中 3 块硬盘做成 RAID5,另外 3 块硬盘做这个 RAID5 的镜像。

实现方式

RAID 阵列的实现分为硬实现和软实现,组成的阵列分别称为硬 RAID 和软 RAID。

1、硬 RAID
硬实现是通过硬件(RAID 卡)插在服务器上,类似于单独插显卡,优点是配备了专门的 RAID 控制/处理芯片和 I/O 处理芯片以及阵列缓冲,不占用服务器的 CPU 资源,性能较好,有缓存的 RAID 卡还可以提高随机读写性能。缺点是不够灵活,用 RAID 卡组 RAID 后,如果不解除/撤销/取消,阵列中的硬盘直接挂载到别的电脑上是无法使用的。以及需要额外的硬件,成本较高。当阵列柜损坏,更换阵列柜型号需要谨慎,如果更换品牌更要再三确认。

2、软 RAID
软 RAID 就是通过软件方式实现的 RAID,。磁盘数据的读写由 CPU 完成,系统可以识别出阵列中所有的硬盘。优点是使用灵活,拆下后可直接在其他电脑上使用,成本较低,操作简单。缺点是占用服务器 CPU 资源,性能较差。

生产环境一般使用硬实现,性能更好,特别是针对 RAID5、RAID6等。

Q&A

Q:RAID10 和 RAID5 区别比较,利用率与安全的取舍?

A:要求较高的空间利用率,对安全性要求不是特别高、大文件存储的系统采用 RAID5 比较好,值得注意的是 RAID5 重建,需要时间长,对于剩余的硬盘压力大,如果此时再损坏硬盘,就全军覆没了。相反,安全性要求很高,不计成本,小数据量频繁写入的系统采用 RAID10 的方式比较好。另外需要考虑的是,磁盘数量增加,对电源的要求上升,能耗也加大了,且服务器散热风扇的噪音也将增大。

Q:不同大小的磁盘是否可以组 RAID?
A:可以,以最小容量的磁盘作为 RAID 的有效容量。

Q:软件定义存储与传统磁盘阵列有哪些区别?
A:两者扩展性、兼容性、易用性不同。

最后,磁盘阵列主要解决的是冗余的问题,备份方案需要另外考虑。

参考列表

  • 小科普 | RAID磁盘阵列是个啥?
  • 小科普 | RAID磁盘阵列还有什么玩法?
  • RAID有哪几种?有什么区别?
  • 软 RAID 和硬 RAID 各有什么优劣?

注:本文同步发布于个人博客。

磁盘阵列 RAID 技术如何保护数据​www.uncoverman.com

raid卡直通模式会走缓存吗_磁盘阵列 RAID 技术如何保护数据相关推荐

  1. raid卡直通模式会走缓存吗_服务器硬件RAID性能横评(1)

    上次误打误撞测试了软件RAID,发现性能基本上是线性的,而据说硬件RAID性能比这个高的很.那本文将就硬件RAID展开测试,测试内容主要为各RAID等级下磁盘空间.I/O性能.模拟硬盘故障的可靠性等. ...

  2. raid 物理盘缓存状态_服务器raid卡、磁盘缓存的配置策略

    最近遇到不少因服务器异常断电,导致文件系统元数据等被破坏的问题,究其原因是磁盘缓存没有关闭. 不再重复码字了,直接贴图: 所以带raid卡.磁盘服务器环境的推荐配置为: 1 商用环境,RAID一定要有 ...

  3. 阵列卡直通模式和raid模式_DNF:希洛克Raid攻坚流程攻略

    ​ ​ --内容来自韩服官网 副本人数: 最多16人 时间限制: 一阶段40分钟 休息时间5分钟 二阶段40分钟 抗魔要求: 5983 希洛克Raid与之前的安徒恩.卢克和普雷-伊西斯Raid一样,不 ...

  4. 阵列卡直通模式和raid模式_DNF:希洛克Raid攻略,一不小心就被全屏秒杀

    ​ ​ --内容来自韩服官网 副本人数: 最多16人 时间限制: 一阶段40分钟 休息时间5分钟 二阶段40分钟 抗魔要求: 5983 希洛克Raid与之前的安徒恩.卢克和普雷-伊西斯Raid一样,不 ...

  5. 阵列卡直通模式和raid模式_linux入门系列13--磁盘管理之RAID、LVM技术

    前一篇文章学习了磁盘分区.格式化.挂载等相关知识,本文将讲解RAID和LVM技术. 磁盘管理操作主要是运维人员用的较多,如果只是单纯的开发人员,可以先略过本文.但是在很多小公司里往往都是一人多用,运维 ...

  6. 阵列卡直通模式和raid模式_DNF:希洛克四模式简单介绍,平民优先小队模式

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注.             注 ...

  7. 阵列卡直通模式和raid模式_DNF:希洛克四种模式简单介绍,平民优先小队模式四种...

    Hello,大家好,我是月月.在9月22日游戏更新之后,金秋版本降临,而希洛克Raid也会正式和我们见面!与之前的团本一样,希洛克Raid产出的装备,将会是目前版本最顶尖的装备!不过与之前的团本也有一 ...

  8. 阵列卡直通模式和raid模式_DNF希洛克Raid:门槛真高,没神话红10都不行,放进来再T出去...

    "地下城与勇士之小狐狸君爱谈游戏电竞"第一千七百八十一期<DNF希洛克Raid:门槛真高,没神话红10都不行,放进来再T出去>,韩服已经公布了希洛克Raid最新的视频, ...

  9. Java写入磁盘阵列_磁盘阵列RAID介绍及计算公式

    一.RAID介绍 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意. 磁盘阵列是由很多块 ...

最新文章

  1. 独家 | 6种让Python程序变慢的坏习惯
  2. MacBookProM1 重置的注意事项
  3. Mac OS 安全性 任何来源
  4. 基于原子探索者stm32f407开发板的ucos-iii+lwip1.4.1的tcp server并发服务器完美解决例程(转)...
  5. JZOJ 5452. 【NOIP2017提高A组冲刺11.5】轰炸
  6. 为什么可积不一定可导_为什么一定要办理焊工证?不办会怎么样?
  7. 300+Jquery, CSS, MooTools 和 JS的导航菜单资源
  8. 【数值分析】数值分析的微积分学基础
  9. Android Studio(2)---如何从不同IDE 工具开发的代码导入 Android Studio
  10. 完全卸载go语言编译器
  11. t3软件怎么生成报表_用友t3财务报表生成的步骤和流程
  12. 平面、柱面、球面投影
  13. kali Linux 2021 新版安装
  14. MySQL学习笔记(九)MVCC
  15. LC串联震荡电路谐振频率
  16. SQL在线自助查询平台
  17. 来学吧,我们不说再见
  18. jenkins定时任务时间设置方法
  19. 松翰2.4G无线传输USB摄像头方案
  20. Java使用System.currentTimeMillis()方法计算程序运行时间

热门文章

  1. 华为设备配置IS-IS的负载分担
  2. Auto.js 设置通知栏
  3. java生成二维码技术实现
  4. [Pandas] DataFrame的columns属性
  5. 改造我们学习:先僵化、再优化、后固化
  6. 爬虫——代理IP的高匿、匿名、透明介绍
  7. 计算机二级试题word,计算机二级word试题
  8. LINQ基础篇(中)
  9. 北师大计算机组成原理离线作业,[北京师范大学]20秋《计算机组成原理》 离线作业...
  10. 【M24】了解虚方法、多继承、虚基类、RTTI的成本