RAID “Redundant Array of Independent Disk” 的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于 1987 年,由美国加州大学伯克利分校提出。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

   RAID 磁盘阵列( Redundant Array of Independent Disks

  简单地解释,就是将 N 硬盘 通过 RAID Controller (分 Hardware Software )结合成虚拟单台大容量的硬盘使用,其特色是 N 台硬盘同时读取速度加快及提供容错性 Fault Tolerant ,所以 RAID 是当成平时主要访问 Data Storage 不是 Backup Solution

  在 RAID 有一基本概念称为 EDAP Extended Data Availability and Protection ),其强调扩充性及容错机制, 也是各家厂商如: Mylex IBM HP Compaq Adaptec Infortrend 等诉求的重点,包括在不须停机情况下可处理以下动作:

   RAID 磁盘阵列支援自动检测故障硬盘;

   RAID 磁盘阵列支援重建硬盘坏轨的资料;

   RAID 磁盘阵列支援支持不须停机的硬盘备援 Hot Spare

   RAID 磁盘阵列支援支持不须停机的硬盘替换 Hot Swap

   RAID 磁盘阵列支援扩充硬盘容量等。

  一旦 RAID 阵列出现故障,硬件服务商只能给客户重新初始化或者 REBUILD ,这样客户数据就会无法挽回。因此对 RAID0 RAID1 RAID5 以及组合型的 RAID 系列磁盘阵列数据恢复,出现故障以后只要不对阵列作初始化操作,就有机会恢复出故障 RAID 磁盘阵列的数据。

技术规范

   1 RAID 技术规范简介

   冗余磁盘阵列技术最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用,同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术,并且能适当的提升数据传输速度。

  过去 RAID 一直是高档服务器才有缘享用,一直作为高档 SCSI 硬盘配套技术作应用。近来随着技术的发展和产品成本的不断下降, IDE 硬盘性能有了很大提升,加之 RAID 芯片的普及,使得 RAID 也逐渐在个人电脑上得到应用。

  那么为何叫做冗余磁盘阵列呢?冗余的汉语意思即多余,重复。而磁盘阵列说明不仅仅是一个磁盘,而是一组磁盘。这时你应该明白了,它是利用重复的磁盘来处理数据,使得数据的稳定性得到提高。

   2 RAID 的工作原理

   RAID 如何实现数据存储的高稳定性呢?我们不妨来看一下它的工作原理。 RAID 按照实现原理的不同分为不同的级别,不同的级别之间工作模式是有区别的。整个的 RAID 结构是一些磁盘结构,通过对磁盘进行组合达到提高效率,减少错误的目的,不要因为这么多名词而被吓坏了,它们的原理实际上十分简单。问了便于说明,下面示意图中的每个方块代表一个磁盘,竖的叫块或 磁盘阵列 ,横称之为带区。

   3 RAID 规范

  主要包含 RAID 0 RAID 7 等数个规范,它们的侧重点各不相同,常见的规范有如下几种:

   RAID 0 :无差错控制的带区组

  

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

Raid 0

 

  要实现 RAID0 必须要有两个以上硬盘驱动器, RAID0 实现了带区组,数据并不是保存在一个硬盘上,而是分成数据块保存在不同驱动器上。因为将数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。如果刚好所需要的数据在不同的驱动器上效率最好。它不需要计算校验码,实现容易。它的缺点是它没有数据差错控制,如果一个驱动器中的数据发生错误,即使其它盘上的数据正确也无济于事了。不应该将它用于对数据稳定性要求高的场合。如果用户进行图象(包括动画)编辑和其它要求传输比较大的场合使用 RAID0 比较合适。同时, RAID 可以提高数据传输速率,比如所需读取的文件分布在两个硬盘上,这两个硬盘可以同时读取。那么原来读取同样文件的时间被缩短为 1/2 。在所有的级别中, RAID 0 的速度是最快的。但是 RAID 0 没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

   RAID 1 :镜象结构

  

Raid 1

对于使用这种 RAID1 结构的设备来说, RAID 控制器必须能够同时对两个盘进行读操作和对两个镜象盘进行写操作。通过下面的结构图您也可以看到必须有两个驱动器。因为是镜象结构在一组盘出现问题时,可以使用镜象,提高系统的容错能力。它比较容易设计和实现。每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同。因为 RAID1 的校验十分完备,因此对系统的处理能力有很大的影响,通常的 RAID 功能由软件实现,而这样的实现方法在服务器负载比较重的时候会大大影响服务器效率。当您的系统需要极高的可靠性时,如进行数据统计,那么使用 RAID1 比较合适。而且 RAID1 技术支持 热替换 ,即不断电的情况下对故障磁盘进行更换,更换完毕只要从镜像盘上恢复数据即可。当主硬盘损坏时,镜像硬盘就可以代替主硬盘工作。镜像硬盘相当于一个备份盘,可想而知,这种硬盘模式的安全性是非常高的, RAID 1 的数据安全性在所有的 RAID 级别上来说是最好的。但是其磁盘的利用率却只有 50% ,是所有 RAID 级别中最低的。

  

   RAID2 :带海明码校验

  从概念上讲, RAID 2 RAID 3 类似, 两者都是将数据条块化分布于不同的硬盘上, 条块单位为位或字节 。然而 RAID 2 使用一定的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得 RAID 2 技术实施更复杂。因此,在商业环境中很少使用。下图左边的各个磁盘上是数据的各个位,由一个数据不同的位运算得到的海明校验码可以保存另一组磁盘上,具体情况请见下图。由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。它的数据传送速率相当高,如果希望达到比较理想的速度,那最好提高保存校验码 ECC 码的硬盘,对于控制器的设计来说,它又比 RAID3 4 5 要简单。没有免费的午餐,这里也一样,要利用海明码,必须要付出数据冗余的代价。输出数据的速率与驱动器组中速度最慢的相等。

   RAID3 :带奇偶校验码的并行传送

  

Raid 3

这种校验码与 RAID2 不同,只能查错不能纠错。它访问数据时一次处理一个带区,这样可以提高读取和写入速度 , 它象 RAID 0 一样以并行的方式来存放数,但速度没有 RAID 0 快。校验码在写入数据时产生并保存在另一个磁盘上。需要实现时用户必须要有三个以上的驱动器,写入速率与读出速率都很高,因为校验位比较少,因此计算时间相对而言比较少。用软件实现 RAID 控制将是十分困难的,控制器的实现也不是很容易。它主要用于图形(包括动画)等要求吞吐率比较高的场合。不同于 RAID 2 RAID 3 使用单块磁盘存放奇偶校验 信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据。 果奇偶盘失效,则不影响数据使用。 RAID 3 对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈 利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为 n-1

   RAID4 :带奇偶校验码的独立磁盘结构

  

Raid 4

RAID4 RAID3 很象,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看, RAID3 是一次一横条,而 RAID4 一次一竖条 。它的特点的 RAID3 也挺象,不过在失败恢复时,它的难度可要比 RAID3 大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。

  

   RAID5 :分布式奇偶校验的独立磁盘结构

  从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,其中的 p0 代表第 0 带区的

Raid 5

奇偶校验值,其它的意思也相同。 RAID5 的读出效率很高,写入效率一般,块式的集体访问效率不错 。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错 RAID 5 也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为 n-1 但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难 RAID 3 RAID 5 相比,重要的区别在于 RAID 3 每进行一次数据传输,需涉及到所有的阵列盘。而对于 RAID 5 来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在 RAID 5 中有 写损失 ,即每一次写操作,将产生四个实际的读 / 写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

   RAID6 :带有两种分布存储的奇偶校验码的独立磁盘结构

  

Raid 6

名字很长,但是如果看到图,大家立刻会明白是为什么,请注意 p0 代表第 0 带区的奇偶校验值,而 pA 代表数据块 A 的奇偶校验值。它是对 RAID5 的扩展,主要是用于要求数据绝对不能出错的场合。当然了,由于引入了第二种奇偶校验值,所以需要 N+2 个磁盘,同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必须的负载。我想除了军队没有人用得起这种东西。

   RAID7 :优化的高速数据传送磁盘结构

   RAID7 所有的 I/O 传送均是同步进行的,可以分别控制,这样提高了系统的并行性,提高系统访问数据的速度;每个磁盘都带有高速缓冲存储器,实时操作系统可以使用任何实时操作芯片,达到不同实时系统的需要。允许使用 SNMP 协议进行管理和监视,可以对校验区指定独立的传送信道以提高效率。可以连接多台主机,因为加入高速缓冲存储器,当多用户访问系统时,访问时间几乎接近于 0 。由于采用并行结构,因此数据访问效率大大提高。需要注意的是它引入了一个高速缓冲存储器,这有利有弊,因为一旦系统断电,在高速缓冲存储器内的数据就会全部丢失,因此需要和 UPS 一起工作。当然了,这么快的东西,价格也非常昂贵。

   RAID10 :高可靠性与高效磁盘结构

  这种结构无非是一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充,达到既高效又高速还可以的目的。大家可以结合两种结构的优点和缺点来理解这种新结构。这种新结构的价格高,可扩充性不好。主要用于容量不大,但要求速度和差错控制的数据库中。

   RAID53 :高效数据传送磁盘结构

  越到后面的结构就是对前面结构的一种重复和再利用,这种结构就是 RAID3 和带区结构的统一,因此它速度比较快,也有容错功能。但价格十分高,不易于实现。这是因为所有的数据必须经过带区和按位存储两种方法,在考虑到效率的情况下,要求这些磁盘同步真是不容易。

   RAID0+1

  把 RAID0 RAID1 技术结合起来,即 RAID0+1 。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读 / 写能力。要求至少 4 个硬盘才能作成 RAID0+1

   3 JBOD 模式

   JBOD 通常又称为 Span 。它是在逻辑上将几个物理磁盘一个接一个连起来, 组成一个大的逻辑磁盘。 JBOD 不提供容错,该阵列的容量等于组成 Span 的所有磁盘的容量的总和。 JBOD 严格意义上说,不属于 RAID 的范围。不过现在很多 IDE RAID 控制芯片都带着种模式, JBOD 就是简单的硬盘容量叠加,但系统处理时并没有采用并行的方式,写入数据的时候就是先写的一块硬盘,写满了再写第二块硬盘 ……

  实际应用中最常见的是 RAID0 RAID1 RAID5 RAID10 由于在大多数场合, RAID5 包含了 RAID2-4 的优点,所以 RAID2-4 基本退出市场

  现在,一般认为 RAID2-4 只用于 RAID 开发研究

   4 )我们能够用得上的 IDE RAID

  上面是对 RAID 原理的叙述,而我们 Pcfans 最关心的是 RAID 的应用。我们日常使用 IDE 硬盘,而且很容易买到 IDE RAID 卡和集成 RAID 芯片的主板。所以跟我们最贴近的是 IDE RAID 。限于应用级别很低, IDE RAID 多数只支持 RAID 0 RAID 1 RAID 0+1 JBOD 模式。

RAID的应用

  开始时 RAID 方案主要针对 SCSI 硬盘系统,系统成本比较昂贵。 1993 年, HighPoint 公司推出了第一款 IDE-RAID 控制芯片,能够利用相对廉价的 IDE 硬盘来组建 RAID 系统,从而大大降低了 RAID 门槛 。从此,个人用户也开始关注这项技术,因为硬盘是现代个人计算机中发展最为 缓慢 和最缺少安全性的设备,而用户存储在其中的数据却常常远超计算机的本身价格。在花费相对较少的情况下, RAID 技术可以使个人用户也享受到成倍的磁盘速度提升和更高的数据安全性,现在个人电脑市场上的 IDE-RAID 控制芯片主要出自 HighPoint Promise 公司,此外还有一部分来自 AMI 公司(如表 2 )。

  面向个人用户的 IDE-RAID 芯片一般只提供了 RAID 0 RAID 1 RAID 0+1 RAID 10 )等 RAID 规范的支持,虽然它们在技术上无法与商用系统相提并论,但是对普通用户来说其提供的速度提升和安全保证已经足够了。随着硬盘接口传输率的不断提高, IDE-RAID 芯片也不断地更新换代,芯片市场上的主流芯片已经全部支持 ATA 100 标准,而 HighPoint 公司新推出的 HPT 372 芯片和 Promise 最新的 PDC20276 芯片,甚至已经可以支持 ATA 133 标准的 IDE 硬盘。在主板厂商竞争加剧、个人电脑用户要求逐渐提高的今天,在主板上板载 RAID 芯片的厂商已经不在少数,用户完全可以不用购置 RAID 卡,直接组建自己的磁盘阵列,感受磁盘狂飙的速度。