2026年01月19日/ 浏览 8
RAID: Redundant Arrays of Independent Disks 独立磁盘冗余阵列
一、RAID简述
1、RAID发展历史
1988年,美国加利福尼亚大学伯克利分校首次提出并定义了RAID(Redundant Array of Inexpensive Disks ,廉价冗余磁盘阵列)技术的概念。
RAID刚开始的思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。但是随着磁盘价格的不断降低,RAID的“廉价” 已经无意义。因此,RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于是 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks ,独立磁盘构成的具有冗余能力的阵列)。
2、RAID概述
简单的说,RAID是一种把多块独立的磁盘(物理硬盘)按不同的方式组合起来形成一个磁盘组(逻辑硬盘)、是一种把相同的数据存储在多个硬盘的方法(RAID0除外);从而提供比单个磁盘更高的存储性能和提供数据备份冗余技术。
RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求,主要包含RAID 0~RAID 50等数个规范,常见的规范有RAID 0、RAID 1、RAID 3、RAID 5、RAID 6、RAID 10和RAID 50等。
1)通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。
条带化:在创建带区集时,合理的选择带区的大小非常重要。条带粒度可以是一个字节至几 KB 大小,如果带区过大,可能一块磁盘上的带区空间就可以满足大部分的I/O操作,使数据的读写仍然只局限在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势;如果带区过小,任何I/O指令都可能引发大量的读写操作,占用过多的控制器总线带宽。
因此,分块越小,并行处理能力就越强,数据存取速度就越高,但同时就会增加块存取的随机性和块寻址时间。在创建带区集时,应当根据实际应用的需要,慎重地选择带区的大小,在数据存取随机性和并发处理能力之间进行平衡,以争取尽可能高的整体性能。数据条带是基于提高l/O 性能而提出的,也就是说它只关注性能,而对数据可靠性、可用性没有任何改善。实际上,其中任何一个数据条带损坏都会导致整个数据不可用,采用数据条带技术反而增加了数据发生丢失的概念率。
2)通过对一个阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。
3)通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。
二、RAID关系图
三、各种RAID规范介绍
1、RAID 0(又称为条带化(Stripe))
它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个硬盘上存取。这样,系统有数据请求就可以被多个硬盘并行的执行,每个硬盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高硬盘整体读写性能。
系统向三块硬盘组成的逻辑硬盘(RAID 0硬盘组)发出的I/O数据请求被转化为同时对三块硬盘进行I/O操作。通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。三块硬盘的并行操作在理论上使同一时间内硬盘读写速度提升了3倍。虽然由于总线带宽等多种因素的影响,实际的提升速率会低于理论值,但是大量数据并行传输与串行传输比较,提速效果显著。
缺点:RAID0 没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
优点:速度快,容量无损失,使用 n 块磁盘,即可拥有将近 n 倍的读写效能。
磁盘数量:最少 2 块。
2、RAID 1 (不含校验的镜像存储,又称为镜像(Mirror或Mirroring))
RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,它能最大限度的保证用户数据的可用性和可修复性。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。
系统向两块硬盘组成的逻辑硬盘(RAID 1硬盘组)发出I/O数据请求。通过建立RAID 1,向硬盘Disk 0写入数据时,系统会同时把用户写入Disk 0的数据自动复制到Disk 1上。读取数据时,系统先从源盘Disk 0读取数据,如果读取数据成功,则系统不去读取镜像盘Disk 1上的数据;如果读取源盘数据失败,系统自动转而读取镜像盘上的数据。这种情况下不会造成用户工作任务的中断。
缺点:RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的;实现成本较高。
优点:每块磁盘都会存一份全部的数据,从而达到安全性好、技术简单、管理方便。
磁盘数量:最少 2 个。
3、RAID 5(数据块级别的分布式校验条带存储)
RAID5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块磁盘设备中,而是存储到除自身以外的其他每一块对应的磁盘上,这样的好处是其中任何一个磁盘损坏后不至于出现致命缺陷,但只能允许一块磁盘损坏,否则无法利用剩下的数据和校验信息进行数据的恢复。
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。为保障存储数据的可靠性,采用循环冗余校验方式,并将校验数据分散存储在RAID组的各成员盘上。当RAID组的某个成员盘出现故障时,通过其他成员盘上的数据可以重新构建故障硬盘上的数据。
P0为D0、D1和D2的奇偶校验信息,P1为D3、D4和D5的奇偶校验信息,以此类推。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID 5的成员盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上。当RAID 5的一个硬盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。
磁盘上同时存储数据和校验数据,其中任意两块做存储,另一块做备份校验,这样假如其中一块盘损坏了,就可以通过其他两块盘来进行恢复,从而达到保护数据的功能。RAID5是目前综合性能最佳的数据保护解决方案,它基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
缺点:需要额外的运算资源,仅能承受 1 个磁盘损毁。
优点:兼顾空间利用率与安全性。写入性能相对较差,在有磁盘离线的情况下,RAID 5 的读写性能较差,在重建数据时,性能会受到较大的影响。
磁盘数量:最少3个。
4、RAID 6(两种存储的奇偶校验码的磁盘结构)
RAID6技术是在RAID 5 基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5等级。
优点:容错磁盘数量比 RAID 5 多 1 块;冗余性能相当好。
缺点:运算量比 RAID 5 大、空间利用率比 RAID 5 低;RAID 6 来自故障磁盘的同步比 RAID 5 更慢,因为使用双重同等性。
磁盘数量:至少 4 个。
5、混合RAID
甚至可以将 2 种以上的 RAID 组态放在同 1组磁盘阵列内,也就是双位数RAID 01、10、50、60……等。首先利用前位数字的 RAID 方式建立数组,接着再将后方数字所代表的数组建立其上。比如RAID10:它是RAID0和RAID1的组合升级版,安全性有所提高,但是损失的却是磁盘空间利用率。
1)RAID 10(镜像与条带存储)
RAID 10 是需要跨卷磁盘读写大量的较小文件的数据库管理员的绝佳选择。RAID 10 提供的令人印象深刻的 IOPS 和数据保护给予数据库管理员在保护文件和快速访问方面极佳的可靠性。
RAID 10是将镜像和条带进行两级组合的RAID级别,即RAID 0+RAID 1的组合形式,第一级是RAID 1,第二级是RAID 0。RAID 10是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。
Disk 0和Disk 1组成一个子组0,Disk 2和Disk 3组成一个子组1,子组内的硬盘互为镜像。系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1的方式,系统在向硬盘Disk 0写入数据的同时把数据自动复制到硬盘Disk 1上,向硬盘Disk 2写入数据的同时把数据自动复制到硬盘Disk 3上。
优点: RAID10兼备了RAID1和RAID0的优点,不仅实现了数据保障的作用,也保障数据读写的效率。
缺点: 由于一半的磁盘空间都用于存储冗余数据,所以RAID 10的磁盘利用率很低,只有50%。
磁盘数量:至少 4 个。
RAID10和RAID01的组合方式
2)RAID 50
RAID50是RAID5与RAID0的结合。每个RAID5子磁盘组要求至少三个硬盘。RAID50具备更高的容错能力,因为它允许某个组内有一个磁盘出现故障,而不会造成数据丢失。而且因为奇偶位分部于RAID5子磁盘组上,故重建速度有很大提高。它最适合需要高可靠性存储、高读取速度、高数据传输性能的应用。如大型数据库服务器、应用服务器、文件服务器等。
工作原理:如下图所示,它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0进行条带化存取。
优点: 比RAID5有更好的读性能,比相同容量的RAID5重建时间更短,可以容许N个磁盘同时失效,更高的容错能力,具备更快数据读取速率的潜力。
缺点: 设计复杂,比较难实现;同一个RAID5组内的两个磁盘失效会导致整个阵列失效;磁盘故障会影响吞吐量。故障后重建信息的时间比镜像配置情况下要长。
磁盘数量:最少需要6个磁盘。
3)RAID 60
RAID 60是RAID 6与RAID 0的结合,先做RAID 6,再做RAID 0,即对两组以上RAID 6做条带化存取。
磁盘数量:最少需要8个磁盘。每组RAID 6至少要4块硬盘,每组RAID 6允许2块盘故障。
三、RAID故障后的补救-设置热备盘
RAID 1+备件、RAID 5+备件、RAID 6+备件和 RAID 10+备件,即raid加热备盘,RAID+备件”准备好在一个磁盘故障时立即同步数据的“热备件”,如果卷中的硬盘故障,那么数据开始与备件同步。不必等待更换硬盘。更换故障磁盘时,更换磁盘变为新的热备件。
将一块硬盘设置为热备盘,会造成一定的浪费,但从安全角度考虑是值得的。
大容量的磁盘阵列使用RAID5,但有1个硬盘的冗余。如果1个硬盘损坏,整个阵列的安全会处于一种临界状态,此时再有任何1个硬盘故障都会造成灾难性的后果(数据全部丢失)。设置热备盘后,当硬盘发生故障时,系统会自动用热备盘去替换故障盘并重建阵列,随后数据又会处于完全保护之中。
磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。