RAID 详解

RAID 简介:

1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “ A Case of Redundant Array of Inexpensive Disks ” 中提出了 RAID 概念,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵,RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低,RAID 可以使用大部分的磁盘,“ 廉价 ” 已经毫无意义。因此,RAID 咨询委员会( RAID Advisory Board , RAB )决定用 “ 独立 ” 替代 “ 廉价 ”,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。但这仅仅是名称的变化,实质内容没有改变。

RAID 这种设计思想很快被业界接纳,RAID 技术作为高性能、高可靠的存储技术,已经得到了非常广泛的应用。RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求。D. A. Patterson 等的论文中定义了 RAID 1 ~ RAID 5 原始 RAID 等级,1988 年以来又扩展了 RAID 0 和 RAID 6 。近年来,存储厂商不断推出诸如 RAID 7 、RAID 10 / 01 、RAID 50 、RAID 53 、RAID 100 等 RAID 等级,但这些并无统一的标准。目前业界公认的标准是 RAID 0 ~ RAID 5 ,除 RAID 2 外的四个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID 0 、RAID 1 、RAID 3 、RAID 5 、RAID 6 和 RAID 10 。

从实现角度看,RAID 主要分为软 RAID 、硬 RAID 以及软硬混合 RAID 三种:

  1. 软 RAID 所有功能均由操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I / O 处理芯片,效率自然最低。
  2. 硬 RAID 配备了专门的 RAID 控制 / 处理芯片和 I / O 处理芯片以及阵列缓冲,不占用 CPU 资源,但成本很高。
  3. 软硬混合 RAID 具备 RAID 控制 / 处理芯片,但缺乏 I / O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本在软 RAID 和硬 RAID 之间。

磁盘阵列中针对不同的应用使用不同的技术,称为 RAID level ,而每一个 level 都代表着一个不同的技术,目前业界公认的标准是 RAID 0 ~ RAID 5 。这个 level 并不代表技术的高低,level 5 并不高于 level 3 ,level 1 也不低过 level 4 ,至于要选择哪一种 RAID level 的产品,纯视用户的操作环境( operating environment )及应用( application )而定,与 level 的高低没有必然的关系。

RAID 基本原理:

RAID( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说,RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。SNIA 对 RAID 的定义是:一种磁盘阵列,部分物理存储空间用来记录保存在剩余空间上的用户数据的冗余信息。当其中某一个磁盘或访问路径发生故障时,冗余信息可用来重建用户数据。磁盘条带化虽然与 RAID 定义不符,通常还是称为 RAID(即 RAID 0 )。

RAID 的初衷是为大型服务器提供高端的存储功能和冗余的数据安全。在整个系统中,RAID 被看作是由两个或更多磁盘组成的存储空间,通过并发地在多个磁盘上读写数据来提高存储系统的 I / O 性能。大多数 RAID 等级具有完备的数据校验、纠正措施,从而提高系统的容错性;甚至提供镜像备份,大大增强系统的可靠性,Redundant 也由此而来。

这里要提一下 JBOD( Just a Bunch of Disks )。最初 JBOD 用来表示一个没有控制软件提供协调控制的磁盘集合,这是 RAID 区别与 JBOD 的主要因素。目前 JBOD 常指磁盘柜,而不论其是否提供 RAID 功能。

RAID 的两个关键目标是提高数据可靠性I / O 性能。在磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到多块磁盘(典型的如镜像),或者将计算的校验数据写入阵列中来获得冗余能力,当单块磁盘出现故障时可以保证不会导致数据丢失。有些 RAID 等级允许更多地磁盘同时发生故障,比如 RAID 6 ,可以是两块磁盘同时损坏。在这样的冗余机制下,可以用新磁盘替换故障磁盘,RAID 会自动根据剩余磁盘中的数据和校验数据重建丢失的数据,保证数据一致性和完整性。数据分散保存在 RAID 中的多个不同磁盘上,并发数据读写要大大优于单个磁盘,因此可以获得更高的聚合 I / O 带宽。当然,磁盘阵列会减少全体磁盘的总可用存储空间,牺牲空间换取更高的可靠性和性能;比如 RAID 1 存储空间利用率仅有 50 % ,RAID 5 会损失其中一个磁盘的存储容量,空间利用率为 ( n – 1 ) / n 。

磁盘阵列可以在部分磁盘(单块或多块,根据实现而论)损坏的情况下,仍能保证系统不中断地连续运行。在重建故障磁盘数据至新磁盘的过程中,系统可以继续正常运行,但是性能方面会有一定程度上的降低。一些磁盘阵列在添加或删除磁盘时必须停机,而有些则支持热交换( Hot Swapping ),允许不停机下替换磁盘驱动器。这种高端磁盘阵列主要用于要求高可靠性的应用场景,系统不能停机或停机时间尽可能少。一般来说,RAID 不可作为数据备份的替代方案,它对非磁盘故障等造成的数据丢失无能为力,比如病毒、人为破坏、意外删除等情形。此时的数据丢失是相对操作系统、文件系统、卷管理器或者应用系统来说的,对于 RAID 系统来身,数据都是完好的,没有发生丢失。所以,数据备份、灾备等数据保护措施是非常必要的,与 RAID 相辅相成,保护数据在不同层次的安全性,防止发生数据丢失。

RAID 中主要有三个关键概念和技术:镜像( Mirroring )数据条带( Data Stripping )数据校验( Data parity )

  1. 镜像:将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发地从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。
  2. 数据条带:将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的 I / O 性能提升 。
  3. 数据校验:利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或运算等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。

不同等级的 RAID 采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和 I / O 性能。至于设计何种 RAID(甚至新的等级或类型)或采用何种模式的 RAID ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。

RAID 思想从提出后就广泛被业界所接纳,存储工业界投入了大量的时间和财力来研究和开发相关产品。而且,随着处理器、内存、计算机接口等技术的不断发展,RAID 不断地发展和革新,在计算机存储领域得到了广泛的应用,从高端系统逐渐延伸到普通的中低端系统。RAID 技术如此流行,源于其具有显著的特征和优势,基本可以满足大部分的数据存储需求。总体说来,RAID 主要优势有如下几点:

  1. 大容量:这是 RAID 的一个显然优势,它扩大了磁盘的容量,由多个磁盘组成的 RAID 系统具有海量的存储空间。现在单个磁盘的容量就可以到 1 TB 以上,这样 RAID 的存储容量就可以达到 PB 级,大多数的存储需求都可以满足。一般来说,RAID 可用容量要小于所有成员磁盘的总容量。不同等级的 RAID 算法需要一定的冗余开销,具体容量开销与采用算法相关。如果已知 RAID 算法和容量,可以计算出 RAID 的可用容量。通常,RAID 容量利用率在 50 % ~ 90 % 之间。
  2. 高性能:RAID 的高性能受益于数据条带化技术。单个磁盘的 I / O 性能受到接口、带宽等计算机技术的限制,性能往往很有限,容易成为系统性能的瓶颈。通过数据条带化,RAID 将数据 I / O 分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合 I / O 性能。
  3. 可靠性:可用性和可靠性是 RAID 的另一个重要特征。从理论上讲,由多个磁盘组成的 RAID 系统在可靠性方面应该比单个磁盘要差。这里有个隐含假定:单个磁盘故障将导致整个 RAID 不可用。 RAID 采用镜像和数据校验等数据冗余技术,打破了这个假定。 镜像是最为原始的冗余技术,把某组磁盘驱动器上的数据完全复制到另一组磁盘驱动器上,保证总有数据副本可用。 比起镜像 50 % 的冗余开销 ,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。RAID 冗余技术大幅提升数据可用性和可靠性,保证了若干磁盘出错时,不会导致数据的丢失,不影响系统的连续运行。
  4. 可管理性:实际上,RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说,RAID 是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。从用户应用角度看,可使存储系统简单易用,管理也很便利。由于 RAID 内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。RAID 可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以大大简化管理工作。

RAID 关键技术:

1、镜像

镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。对于 RAID 而言,采用镜像技术典型地将会同时在阵列中产生两个完全相同的数据副本,分布在两个不同的磁盘驱动器组上。镜像提供了完全的数据冗余能力,当一个数据副本失效不可用时,外部系统仍可正常访问另一副本,不会对应用系统运行和性能产生影响。而且,镜像不需要额外的计算和校验,故障修复非常快,直接复制即可。镜像技术可以从多个副本进行并发读取数据,提供更高的读 I / O 性能;但不能并行写数据,写多个副本会导致一定的 I / O 性能降低。

镜像技术提供了非常高的数据安全性,其代价也是非常昂贵的,需要至少双倍的存储空间。高成本限制了镜像的广泛应用,主要应用于至关重要的数据保护,这种场合下数据丢失会造成巨大的损失。另外,镜像通过 “ 拆分 ” 能获得特定时间点上的数据快照,从而可以实现一种备份窗口几乎为零的数据备份技术。

2、数据条带

磁盘存储的性能瓶颈在于磁头寻道定位,它是一种慢速机械运动,无法与高速的 CPU 匹配。再者,单个磁盘驱动器性能存在物理极限,I / O 性能非常有限。RAID 由多块磁盘组成,数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合 I / O ,有效提高了整体 I / O 性能,而且具有良好的线性扩展性。这对大容量数据尤其显著,如果不分块,数据只能按顺序存储在磁盘阵列的磁盘上,需要时再按顺序读取。而通过条带技术,可获得数倍与顺序访问的性能提升。

数据条带技术的分块大小选择非常关键。条带粒度可以是一个字节至几 KB 大小,分块越小,并行处理能力就越强,数据存取速度就越高,但同时就会增加块存取的随机性和块寻址时间。实际应用中,要根据数据特征和需求来选择合适的分块大小,在数据存取随机性和并发处理能力之间进行平衡,以争取尽可能高的整体性能。

数据条带是基于提高 I / O 性能而提出的,也就是说它只关注性能,而对数据可靠性、可用性没有任何改善。实际上,其中任何一个数据条带损坏都会导致整个数据不可用,采用数据条带技术反而增加了数据发生丢失的概率。

3、数据校验

镜像具有非常高的安全性和读性能,但冗余开销太昂贵。数据条带通过并发性来大幅提高性能,然而对数据安全性、可靠性未作考虑。数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。相对镜像,数据校验大幅缩减了冗余开销,用较小的代价换取了极佳的数据完整性和可靠性。数据条带技术提供高性能,数据校验提供数据安全性,RAID 不同等级往往同时结合使用这两种技术。

采用数据校验时,RAID 要在写入数据的同时还要进行校验计算,并将得到的校验数据存储在 RAID 成员磁盘中。校验数据可以集中保存在某个磁盘或分散存储在多个不同磁盘中,甚至校验数据也可以分块,不同 RAID 等级实现各不相同。当其中一部分数据出错时,就可以对剩余数据和校验数据进行反校验计算重建丢失的数据。校验技术相对于镜像技术的优势在于节省大量开销,但由于每次数据读写都要进行大量的校验运算,对计算机的运算速度要求很高,必须使用硬件 RAID 控制器。在数据重建恢复方面,检验技术比镜像技术复杂得多且慢得多。

海明校验码和异或校验是两种最为常用的数据校验算法:

  1. 海明校验码是由理查德.海明提出的,不仅能检测错误,还能给出错误位置并自动纠正。海明校验的基本思想是:将有效信息按照某种规律分成若干组,对每一个组作奇偶测试并安排一个校验位,从而能提供多位检错信息,以定位错误点并纠正。可见海明校验实质上是一种多重奇偶校验。
  2. 异或校验通过异或逻辑运算产生,将一个有效信息与一个给定的初始值进行异或运算,会得到校验信息。如果有效信息出现错误,通过校验信息与初始值的异或运算能还原正确的有效信息。

RAID 主要特点:

  1. 通过对硬盘上数据的条带化,实现对数据成块存取,减少硬盘的机械寻道时间,提高数据存取速度;
  2. 通过对一个阵列中的几块硬盘同时读取,减少硬盘的机械寻道时间,提高数据存取速度;
  3. 通过镜像或者存储奇偶校验信息的方式,实现对数据的冗余保护。

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

  1. RAID 磁盘阵列支持自动检测故障硬盘;
  2. RAID 磁盘阵列支持重建硬盘坏轨的资料;
  3. RAID 磁盘阵列支持不须停机的硬盘备援 Hot Spare ;
  4. RAID 磁盘阵列支持不须停机的硬盘替换 Hot Swap ;
  5. RAID 磁盘阵列支持扩充硬盘容量等。

RAID 阵列等级介绍:

本文介绍的 RAID 阵列有:

  1. RAID 0 :无差错控制的带区组
  2. RAID 1 :镜像结构
  3. RAID 2 :带汉明码校验
  4. RAID 3 :带奇偶校验码的并行传送
  5. RAID 4 :带奇偶校验码的独立硬盘结构
  6. RAID 5 :带分布式奇偶校验码的独立硬盘结构
  7. RAID 5E( RAID 5 Enhencement )
  8. RAID 5EE
  9. RAID 6 :带有两个独立分布式校验方案的硬盘结构( independent data disks with two independent distributed parity schemes )
  10. RAID 7 :优化的高速数据传送硬盘结构( Optimized Asynchrony for High I / O Rates as well as high Data Transfer Rates )
  11. RAID 10 / 01 :高可靠性与高效硬盘结构
  12. RAID 50 :分布式奇偶位阵列条带
  13. RAID 51
  14. RAID 53 :高效数据传送硬盘结构
  15. RAID 60
  16. RAID 1.5 :一个新生的磁盘阵列方式
  17. JBOD( Just a Bunch of Disks )

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

RAID 0 即 Data Stripping(数据分条技术)。整个逻辑盘的数据是被分条( stripped )分布在多个物理硬盘上的。

RAID 0 通过同时对硬盘进行读写从而提供最大 I / O 性能的非冗余的磁盘阵列(通过对多个硬盘同时存取,减少了由硬盘机械系统引起的时间延迟,能提高硬盘子系统的读写性能);但由于没有提供数据冗余功能,所以如果磁盘阵列中的任意一个硬盘发生损坏,都会造成阵列所有数据的丢失。

RAID 0 至少需要两块硬盘才能实现;如果使用两块硬盘创建 RAID 0 ,则 160 GB + 120 GB = 240 GB ;如果使用 N 块容量均为 M GB 的硬盘来组建  RAID 0 ,则实际容量为 N x M(即实际容量等于所有硬盘容量之和)。

RAID 0
RAID 0

MORE DETAIL:

RAID 0
RAID 0
RAID 0
RAID 0

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

RAID 0 优缺点:

RAID 0 的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。RAID 0 运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。一般不建议企业用户单独使用。

RAID 0 具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0 也是提高硬盘存储性能的绝佳选择。

2、RAID 1 :镜像结构

也称磁盘镜像。系统将数据同时重复地写入到两个硬盘中,但是在操作系统中表现为一个逻辑盘。所以如果一个硬盘发生了故障,另一个硬盘中仍然保留了一份完整的数据,系统仍然可以照常工作。系统可以同时从两个硬盘读取数据,所以会提高硬盘的读性能。

RAID 1 至少需要两块硬盘才能实现;如果使用两块硬盘创建 RAID 1 ,则 160 GB + 120 GB = 120 GB ;如果使用 N 块容量均为 M GB 的硬盘来组建  RAID 1 ,则实际容量为 N x M / 2(即实际容量等于所有硬盘容量之和的一半)。

RAID 1
RAID 1

MORE DETAIL:

RAID 1
RAID 1
RAID 1
RAID 1

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

RAID 1 优缺点:

RAID 1 通过对硬盘做镜像来实现数据的冗余,保护数据安全,在两块盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像备份中读取数据,因此 RAID 1 可以提高读取性能。

RAID 1 是硬盘中单位成本最高的,但提供了很高的数据安全性和可用性,当一个硬盘失效时,系统可以自动切换到镜像硬盘上进行读写,并且不需要重组失效的数据。

3、RAID 2 :带汉明码校验

RAID 2 是 RAID 0 的改良版(也与 RAID 3 类似),以汉明码( Hamming Code ,也称海明码)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码( ECC ,Error Correction Code ),所以数据整体的容量会比原始数据大一些。

RAID 2 至少需要三块硬盘才能实现;根据公式 2^P ≥ P + D + 1(其中 P 代表汉明码的个数,D 代表数据位的个数)可得:2² ≥ 2 + 1 + 1 ,即当有 1 块数据盘时需要 2 块校验盘;具体所需硬盘数量请参见汉明码原理。

MORE DETAIL:

RAID 2
RAID 2

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

汉明码原理:

汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。以典型的 4 位数据编码为例,汉明码将加入 3 个校验码,从而使实际传输的数据位达到 7 个(位),如下图所示:

数据位 1 2 3 4 5 6 7
代码 P1 P2 D8 P3 D4 D2 D1
说明 第 1 个汉明码 第 2 个汉明码 第 1 个数据码 第 3 个汉明码 第 2 个数据码 第 3 个数据码 第 4 个数据码

注:Dx 中的 x 是 2 的整数幂结果(注:下面的幂都是指整数幂),多少幂取决于码位,即 D1 是 0 次幂,D2 是 1 次幂,D8 是 3 次幂。

现以数据码 1101 为例讲讲汉明码的编码原理,此时 D8 = 1 、D4 = 1 、D2 = 0 、D1 = 1 。在 P1 编码时,先将 D8 、D4 、D1 的二进制码相加,结果为奇数 3 ,汉明码对奇数结果编码为 1 ,偶数结果为 0 ,因此 P1 值为 1 ;D8 + D2 + D1 = 2 ,为偶数,那么 P2 值为 0 ;D4 + D2 + D1 = 2 ,为偶数,P3 值为 0 。这样,参照上文的位置表,汉明码处理的结果就是 1010101 。在这个 4 位数据码的例子中,我们可以发现每个汉明码都是以三个数据码为基准进行编码的。下面就是它们的对应表:

汉明码 编码用的数据码
P1 D8 、D4 、D1
P2 D8 、D2 、D1
P3 D4 、D2 、D1

从编码形式上,我们可以发现汉明码是一个校验很严谨的编码方式。在这个例子中,通过对 4 个数据位的 3 个位的 3 次组合检测来达到具体码位的校验与修正目的(不过只允许一个位出错,两个位出错就无法检查出来了,这从下面的纠错例子中就能体现出来)。在校验时则把每个汉明码与各自对应的数据位值相加,如果结果为偶数(纠错代码为 0 )就是正确,如果为奇数(纠错代码为 1 )则说明当前汉明码所对应的三个数据位中有错误,此时再通过其他两个汉明码各自的运算来确定具体是哪个位出了问题。

还是刚才的 1101 的例子,正确的编码应该是 1010101 ,如果第三个数据位在传输途中因干扰而变成了 1 ,就成了 1010111 。检测时,P1 + D8 + D4 + D1 的结果是偶数 4 ,第一位纠错代码为 0 ,正确。P2 + D8 + D2 + D1 的结果是奇数 3 ,第二位纠错代码为 1 ,有错误。P3 + D4 + D2 + D1 的结果是奇数 3 ,第三位纠错代码为 1 ,有错误。那么具体是哪个位有错误呢?三个纠错代码从高到低排列为二进制编码 110 ,换算成十进制就是 6 ,也就是说第 6 位数据错了,而数据第三位在汉明码编码后的位置正好是第 6 位。

那么汉明码的数量与数据位的数量之间有何比例呢?上面的例子中数据位是 4 位,加上 3 位汉明码是 7 位,而 2 的 3 次幂是 8 ,这其中就存在一个规律,即 2^P ≥ P + D + 1 ,其中 P 代表汉明码的个数,D 代表数据位的个数。比如 4 位数据,加上 1 就是 5 ,而能大于 5 的 2 的幂数就是 3 ( 2³ = 8 ,2² = 4 ),即需要 3 位汉明码。这样,我们就能算出任何数据位所需要的汉明码位数:7 位数据需要 4 位汉明码( 2^4 ≥ 4 + 7 + 1 ),64 位数据需要 7 位汉明码( 2^7 ≥ 64 + 7 + 1 ),大家可以依此推算。此时,它们的编码规也与 4 位时不一样了。

另外,汉明码加插的位置也是有规律的。以 4 位数据为例,第一个汉明码是第一位,第二个是第二位,第三个是第四位,1 、2 、4 都是 2 的整数幂结果,而这个幂次数是从 0 开始的整数。这样我们可以推断出来,汉明码的插入位置为 1( 2º )、2( 2¹ )、4( 2² )、8( 2³ )、16( 2^4 )、32( 2^5 )……

RAID 2 优缺点:

RAID 2 在写入数据位的同时还要计算出它们的汉明码并写入校验阵列,读取时也要对数据即时地进行校验,最后再发向系统。通过上文的介绍,我们知道汉明码只能纠正一个位的错误,所以 RAID 2 也只能允许一个硬盘出问题,如果两个或以上的硬盘出问题,RAID 2 的数据就将遭到破坏。但由于数据是以位为单位并行传输,所以传输率也相当快。

RAID 2 是早期为了能进行即时的数据校验而研制的一种技术(这在当时的 RAID 0 、1 等级中是无法做到的),从它的设计上看也是主要为了即时校验以保证数据安全,针对了当时对数据即时安全性非常敏感的领域,如服务器、金融服务等。但由于花费太大(其实,从上面的分析中可以看出如果数据位宽越大,用于校验阵列的相对投资就会越小,就如上面的 4 : 3 与 64 : 7 ),成本昂贵,目前已基本不再使用,转而以更高级的即时检验 RAID 所代替,如 RAID 3 、5 等。

4、RAID 3 :带奇偶校验码的并行传送

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

RAID 3 至少需要三块硬盘才能实现;如果使用三块硬盘创建 RAID 3 ,则 160 GB + 120 GB + 120 GB = 240 GB ;如果使用 N 块相同的硬盘来组建  RAID 3 ,则实际容量为 N – 1(即会损失其中一块硬盘的容量)。

MORE DETAIL :

RAID 3
RAID 3
RAID 3
RAID 3

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

RAID 3 工作原理:

RAID 3 的数据存取方式和 RAID 2 一样,把数据以位为单位来分割并且存储到各个硬盘上,并且在数据安全方面以奇偶校验取代海明码做错误校正及检测,所以只需要一个额外的校验盘。奇偶校验值的计算是以各个硬盘的相对应位进行异或的逻辑运算,然后将结果写入奇偶校验硬盘。

RAID 3 是在 RAID 2 基础上发展而来的,主要的变化是用相对简单的异或逻辑运算( XOR ,eXclusive OR )校验代替了相对复杂的汉明码校验,从而也大幅降低了成本。XOR 的校验原理如下表:

A 值 B 值 XOR 结果
0 0 0
1 0 1
0 1 1
1 1 0

这里的 A 与 B 值就代表了两个位,从中可以发现,A 与 B 一样时,XOR 结果为 0 ,A 与 B 不一样时,XOR 结果就是 1 ,而且知道 XOR 结果和 A 与 B 中的任何一个数值,就可以反推出另一个数值。比如 A 为 1 ,XOR 结果为 1 ,那么 B 肯定为 0 ,如果 XOR 结果为 0 ,那么 B 肯定为 1 。这就是 XOR 编码与校验的基本原理。

以上图为例,Ap( 1 – 3 )= A1 xor A2 xor A3 ,其中 Ap( 1 – 3 )代表校验块,An 代表相应的数据块,xor 是数学运算符号异或。

RAID 3 具有容错能力,但是系统会受到影响。当一块硬盘失效时,该硬盘上的所有数据块必须使用校验信息重新建立。如果是从好盘中读取数据块,不会有任何变化;但是如果要读取的数据块正好位于已经损坏的硬盘上,则必须同时读取同一带区中的所有其它数据块,并根据校验值重建丢失的数据。

RAID 3 优缺点:

在使用 RAID 3 的过程中还有其它一些性能上的问题需要引起注意。RAID 3 存在的最大的一个不足,同时也是导致 RAID 3 很少被人们采用的原因就是校验盘很容易成为整个系统的瓶颈。我们已经知道,RAID 3 会把数据写入操作分散到多个硬盘上进行,然而不管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个 RAID 系统性能的下降。鉴于这种原因,RAID 3 更加适合应用于那些写入操作较少,读取操作较多的应用环境,如数据库和 web 服务器等。与 RAID 0 相比,RAID 3 在读写速度方面相对较慢。使用的容错算法和分块大小决定 RAID 使用的应用场合,在通常情况下,RAID 3 比较适合大文件类型且安全性要求较高的应用。

5、RAID 4 :带奇偶校验码的独立硬盘结构

RAID 4 和 RAID 3 很像,数据都是依次存储在多个硬盘之上,奇偶校验码存放在独立的奇偶校验盘上;唯一不同的是,在数据分割上 RAID 3 对数据的访问是按位进行的,RAID 4 是以数据块为单位。

RAID 4 至少需要三块硬盘才能实现;如果使用三块硬盘创建 RAID 4 ,则 160 GB + 120 GB + 120 GB = 240 GB ;如果使用 N 块相同的硬盘来组建  RAID 4 ,则实际容量为 N – 1(即会损失其中一块硬盘的容量)。

MORE DETAIL :

RAID 4
RAID 4
RAID 4
RAID 4

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

RAID 4 工作原理:

RAID 4 是按数据块为单位存储的,那么数据块应该怎么理解呢?简单的话,一个数据块是一个完整的数据集合,比如一个文件就是一个典型的数据块。当然,对于硬盘的读取,一个数据块并不是一个文件,而是由操作系统所决定的,这就是我们熟悉的簇( Cluster )。RAID 4 这样按块存储可以保证块的完整,不受因分条带存储在其他硬盘上而可能产生的不利影响(比如当其他多个硬盘损坏时,数据就完了)。

不过,在不同硬盘上的同级数据块也都通过 XOR 进行校验,结果保存在单独的校验盘。所谓同级的概念就是指在每个硬盘中同一柱面同一扇区位置的数据算是同级。在写入时,RAID 就是按这个方法把各硬盘上同级数据的校验统一写入校验盘,等读取时再即时进行校验。因此即使是当前硬盘上的数据块损坏,也可以通过 XOR 校验值和其他硬盘上的同级数据进行恢复。由于 RAID 4 在写入时要等一个硬盘写完后才能写一下个,并且还要写入校验数据所以写入效率比较差,读取时也是一个硬盘一个硬盘的读,但校验迅速,所以相对速度更快。

RAID 4 优缺点:

RAID 4 也使用一个校验盘,各硬盘相同位置的分段形成一个校验硬盘分段,放在校验硬盘上。这种方式可在不同的硬盘平行执行不同的读取命令,大幅提高硬盘陈列的读取性能,但写入数据时,因受限于校验硬盘,同一时间只能做一次,启动所有硬盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入。即使如此,小型文件的写入仍然要比 RAID 3 快,因其校验计算较简单而非进行位的计算,但校验硬盘和 RAID 3 一样,也形成其性能的瓶颈。在失败恢复时,它的难度比 RAID 3 大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。

6、RAID 5 :带分布式奇偶校验码的独立硬盘结构

RAID 5 的校验原理与 RAID3 和 RAID 4 一样,都是使用 XOR( Exclusive OR );而 RAID 5 与 RAID3 和 RAID 4 的不同之处在于 RAID 5 将数据校验信息均匀保存在阵列中的所有硬盘上。

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

RAID 5 有以下几个简要的特点:

  1. RAID 5 具有数据冗余和条带化的特点,将数据校验信息均匀保存在阵列中的所有硬盘上;
  2. 系统可以对阵列中所有的硬盘同时读写,减少了由硬盘机械系统引起的时间延迟,提高了硬盘系统的 I / O 能力;当阵列中的一块硬盘发生故障,系统可以使用保存在其它硬盘上的校验信息恢复故障硬盘的数据,继续正常工作。

RAID 5 至少需要三块硬盘才能实现;如果使用三块硬盘创建 RAID 5 ,则 160 GB + 120 GB + 120 GB = 240 GB ;如果使用 N 块相同的硬盘来组建  RAID 5 ,则实际容量为 N – 1(即会损失其中一块硬盘的容量)。

MORE DETAIL :

RAID 5
RAID 5
RAID 5
RAID 5
RAID 5
RAID 5

从它的示意图上可以看到,它的奇偶校验码存在于所有硬盘上。RAID 5 的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的硬盘上,所以提高了可靠性,允许单个硬盘出错。RAID 5 也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。这样,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。硬盘的利用率为( n – 1 )/ n x 100(单位是 % )。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。

RAID 5 读写:

用简单的语言来表示,至少使用 3 块硬盘(也可以更多)组建 RAID 5 磁盘阵列,当有数据写入硬盘的时候,按照 1 块硬盘的方式就是直接写入这块硬盘的磁道,如果是 RAID 5 的话这次数据写入会根据算法分成 3 部分,然后写入这 3 块硬盘,写入的同时还会在这 3 块硬盘上写入校验信息,当读取写入的数据的时候会分别从 3 块硬盘上读取数据内容,再通过检验信息进行校验。当其中有 1 块硬盘出现损坏的时候,就从另外 2 块硬盘上存储的数据可以计算出第 3 块硬盘的数据内容。也就是说 RAID 5 这种存储方式只允许有一块硬盘出现故障,出现故障时需要尽快更换。当更换故障硬盘后,在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏 1 块,那就是灾难性的了。

RAID 5 存储:

RAID 5 把数据和相对应的奇偶校验信息存储到组成 RAID 5 的各个硬盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上,其中任意 N – 1 块硬盘上都存储完整的数据,也就是说有相当于一块硬盘容量的空间用于存储奇偶校验信息。因此当 RAID 5 的一个硬盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的硬盘被替换后,RAID 还会自动利用剩下奇偶校验信息去重建此硬盘上的数据,来保持 RAID 5 的高可靠性。

做 RAID 5 阵列所有硬盘容量必须一样大,当容量不同时,会以最小的容量为准。 最好硬盘转速一样,否则会影响性能,RAID 5 没有独立的奇偶校验盘,所有校验信息分散放在所有硬盘上, 只占用一个硬盘的容量。

RAID 5 为什么损失一块硬盘的容量?

RAID 5 把数据和相对应的奇偶校验信息存储到组成 RAID 5 的各个硬盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上,其中任意 N – 1 块硬盘上都存储完整的数据,也就是说有相当于一块硬盘容量的空间用于存储奇偶校验信息。因此当 RAID 5 的一个硬盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的硬盘被替换后,RAID 还会自动利用剩下奇偶校验信息去重建此硬盘上的数据,来保持 RAID 5 的高可靠性。

RAID 3 和 RAID 5 的区别:

RAID 3 和 RAID 5 都是校验方式。RAID 3 的工作方式是用一块硬盘存放校验数据。由于任何数据的改变都要修改相应的数据校验信息,存放数据的硬盘有好几个且并行工作,而存放校验数据的硬盘只有一个,这就带来了校验数据存放时的瓶颈。RAID 5 的工作方式是将各个硬盘生成的数据校验切成块,分别存放到组成阵列的各个硬盘中去,这样就缓解了校验数据存放时所产生的瓶颈问题,但是分割数据及控制存放都要付出速度上的代价。

7、RAID 5E( RAID 5 Enhencement )

RAID 5E 是在 RAID 5 级别基础上的改进,与 RAID 5 类似,数据的校验信息均匀分布在各硬盘上,但是,在每个硬盘上都保留了一部分未使用的空间,这部分空间没有进行条带化,最多允许两块物理硬盘出现故障。看起来,RAID 5E 和 RAID 5 加一块热备盘好象差不多,其实由于 RAID 5E 是把数据分布在所有的硬盘上,性能会与 RAID 5 加一块热备盘要好。当一块硬盘出现故障时,有故障硬盘上的数据会被压缩到其它硬盘上未使用的空间,逻辑盘保持 RAID 5 级别。

8、RAID 5EE

与 RAID 5E 相比,RAID 5EE 的数据分布更有效率,每个硬盘的一部分空间被用作分布的热备盘,它们是阵列的一部分,当阵列中一个物理硬盘出现故障时,数据重建的速度会更快。

9、RAID 6 :带有两个独立分布式校验方案的硬盘结构

与 RAID 5 相比,RAID 6 增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但 RAID 6 需要分配给奇偶校验信息更大的磁盘空间,相对于 RAID 5 有更大的 “ 写损失 ” ,因此 “ 写性能 ” 非常差。较差的性能和复杂的实施方式使得 RAID 6 很少得到实际应用。

RAID 6 有以下几个简要的特点:

  1. 具有数据冗余和条带化的特点,将两份数据校验信息均匀保存在阵列中的所有硬盘上;
  2. 系统可以对阵列中所有的硬盘同时读写,减少了由硬盘机械系统引起的时间延迟,提高了硬盘系统的 I / O 能力;当阵列中的最多两块硬盘发生故障,系统可以使用保存在其它硬盘上的校验信息恢复故障硬盘的数据,继续正常工作。

RAID 6 至少需要四块硬盘才能实现;如果使用四块硬盘创建 RAID 6 ,则 160 GB + 120 GB + 120 GB + 120 GB = 240 GB ;如果使用 N 块相同的硬盘来组建  RAID 6 ,则实际容量为 N – 2(即会损失其中两块硬盘的容量)。

MORE DETAIL :

RAID 6
RAID 6

RAID 6 技术是在 RAID 5 基础上,为了进一步加强数据保护而设计的一种 RAID 方式,实际上是一种扩展 RAID 5 等级。与 RAID 5 的不同之处在于除了每个硬盘上都有同级数据 XOR 校验区外,还有一个针对每个数据块的 XOR 校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式如上图所示。这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此 RAID 6 的数据冗余性能相当好。但是,由于增加了一个校验,所以写入的效率较 RAID 5 还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。

RAID 6 工作原理:

RAID 6 采用了两种校验方式,分别为 P 和 Q :

P = A0 xor B0 xor C0 xor D0 xor E0 xor F0(公式 1 )

  • A 、B 、C 、D 、E 、F 代表 RAID 6 中 6 块硬盘,A0 、B0 、C0 、D0 、E0 、F0 代表 6 块硬盘的第一个 strip
  • xor :异或运算

Q 的生成用了系数和异或,假设生成硬盘 D 的 Q 校验:

QA = A0 * D0 xor A1 * D1 xor A2 * D2 xor A3 * D3 xor A4 * D4 xor A5 * D5 ….. xor An * Dn(公式 2 )

  • D0 ~ Dn :单个硬盘的所有条带化数据
  • A0 ~ An :系数
  • xor :异或运算
  • * :乘法运算

硬盘 D 的 Q 校验数据不会存放在硬盘 D 中,而是存放在其他硬盘中;Q 校验数据的计算只需要使用刚刚写入的 strip 数据 Dn * An 再 xor 这次写入以前的 Q n-1 即可。

在 RAID 6 中,当有 1 块磁盘出故障的时候,利用公式 1 恢复数据,这个过程是和 RAID 5 一样的。而当有 2 块磁盘同时出故障的时候,就需要同时用公式 1 和公式 2 来恢复数据了。

各系数 A0 ~ A5 是线性无关的系数,在 D0 、D1 、D2 、D3 、D4 、D5 、P 、Q 中有两个未知数的情况下,也可以联列求解两个方程得出两个未知数的值。这样在一个 RAID 组中有两块磁盘同时坏的情况下,也可以恢复数据。上面描述的是校验数据生成的算法。其实 RAID 6 的核心就是有两份检验数据,以保证两块磁盘同时出故障的时候,也能保障数据的安全。

假设一共 6 块硬盘,使用 4 块创建 RAID 6 ,4 个硬盘在使用时都被先条带化,然后分别存储数据和校验位:

  1. 如果一块硬盘出现物理故障,RAID 的会处于降级状态,但是仍然有容错功能;
  2. 如果第二块硬盘出现故障,逻辑盘中还剩下的两块硬盘就不再有容错功能(即不允许再有硬盘出现故障);
  3. 如果阵列中有热备硬盘,出故障的硬盘上的数据会转移到热备硬盘上,并且自动进行重建,数据的条带化存储方式和原来的两块硬盘相同。

RAID 6 优缺点:

在实际应用中 RAID 6 的应用范围并没有其它的 RAID 模式那么广泛。因为实现这个功能一般需要设计更加复杂、造价更昂贵的 RAID 控制器,所以它一般也不会集成在主板上。

  • RAID 6 的随机读取性能:很好(当使用大数据块时);
  • RAID 6 的随机写入性能:差,因为不但要在每硬盘上写入校验数据而且要在专门的校验硬盘上写入数据;
  • RAID 6 的持续读取性能:好(当使用小数据块时);
  • RAID 6 的持续写入性能:一般;
  • RAID 6 的优点:快速的读取性能,更高的容错能力;
  • RAID 6 的缺点:很慢的写入速度,RAID 控制器在设计上更加复杂,成本更高。

RAID 6 技术虽好不过并不是每个企业都可以用得到的,而且他的高额价格也不是谁都承担得起的,对于大部分中小企业来说数据的保存所需级别并没有那么高,这种情况下我们只需要使用常规的 RAID 5 即可。就现在而言,对于那些数据中心,信息中心等对数据安全级别要求比较高的企业,使用 RAID 6 保护数据还是有必要的。

10、RAID 7 :优化的高速数据传送硬盘结构

RAID 7 并非公开的 RAID 标准,而是 Storage Computer Corporation 公司的专利硬体产品名称。RAID 7 是一个完整的存储阵列,有自身的实时操作系统用来管理阵列。

RAID 7 全称叫 “ Optimized Asynchrony for High I / O Rates as well as high Data Transfer Rates(最优化的异步高 I / O 速率和高数据传输率)” ,它与以前我们见到 RAID 级别具有明显的区别。RAID 7 完全可以理解为一个独立存储计算机,它自身带有操作系统和管理工具,完全可以独立运行。

MORE DETAIL :

RAID 7
RAID 7
RAID 7
RAID 7

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

RAID 7 工作原理:

  • 物理上 RAID 7 主要包括两部分:一个运行实时操作系统的控制器;多个 Channel 磁盘组;
  • 逻辑上 RAID 7 类似于 RAID3 和 RAID4 ;磁盘分布于多个 Channel,一个 Channel 包含一组磁盘,校验盘可以分布于任意 Channel,Channel 之间通过 X-BUS 连接;
  • 异步 IO :IO 读写操作以及奇偶校验都直接在缓存里面完成,控制器负责数据从缓存写入磁盘;
  • 可以根据需求,将部分磁盘配置为 Hot Standy 模式;
  • 提供 SNMP 远程监控管理功能。

11、RAID 10 / 01 :高可靠性与高效硬盘结构

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

RAID 10 / 01 至少需要四块硬盘才能实现;如果使用四块硬盘创建 RAID 10 / 01 ,则 160 GB + 120 GB + 120 GB + 120 GB = 240 GB ;如果使用 N 块相同的硬盘来组建 RAID 10 / 01 ,则实际容量为 N / 2(即实际容量等于所有硬盘容量之和的一半)。

MORE DETAIL :

其中可分为两种组合:

  1. RAID 10 :先对若干对物理硬盘分别做 RAID 1 ,再将这若干个 RAID 1 逻辑盘做成 RAID 0 阵列;
  2. RAID 01 :先对若干对物理硬盘分别做 RAID 0 ,再将这若干个 RAID 0 逻辑盘做成 RAID 1 阵列。

RAID 10 :

RAID 10
RAID 10

RAID 10 是先做镜像再做聚合。RAID 10 有着不错的读写速度,而且拥有比 RAID 0 更高的数据保护性。

RAID 01 :

RAID 01
RAID 01

RAID 01 则是跟 RAID 10 的程序相反,是先做聚合再做镜像。

RAID 10 / 01 优缺点:

虽然造成了 50 % 的硬盘浪费,但是它提供了 200 % 的读写速度和 100 % 的数据冗余。

12、RAID 50 :分布式奇偶位阵列条带

RAID 50 具有 RAID 5 和 RAID 0 的共同特性。它由两组 RAID 5 磁盘组成(每组最少 3 个),每一组都使用了分布式奇偶位,而两组硬盘再组建成 RAID 0 ,实现跨硬盘抽取数据。RAID 50 提供可靠的数据存储和优秀的整体性能,并支持更大的卷尺寸。即使两个物理磁盘发生故障(每个阵列中有一个),数据也可以顺利恢复过来。

RAID 50 至少需要六块硬盘才能实现;如果使用六块硬盘创建 RAID 50 ,则 160 GB + 120 GB + 120 GB + 120 GB + 120 GB + 120 GB = 480 GB ;如果使用 N 块相同的硬盘来组建  RAID 50 ,则实际容量为 N – 2 。

MORE DETAIL :

先对两组物理硬盘分别做 RAID 5 ,再将这两个 RAID 5 逻辑盘做成 RAID 0 。

RAID 50
RAID 50

RAID 50 优缺点:

RAID 50 具备更高的容错能力(因为它允许某个组内有一个磁盘出现故障,而不会造成数据丢失;而且因为奇偶位分部于 RAID 5 子磁盘组上,故重建速度有很大提高),且具备更快数据读取速率的潜力。但磁盘故障会影响吞吐量(故障后重建信息的时间比镜像配置情况下要长)。

RAID 50 与 RAID 10 相比,RAID 50( N – 2 )的硬盘空间利用率比 RAID 10( N / 2 )高,从读写性能上看 RAID 10 和 RAID 50 在某些情况下各有优劣。

13、RAID 51

14、RAID 53 :高效数据传送硬盘结构

15、RAID 60

先对若干组物理硬盘分别做 RAID 6,再将这若干个 RAID 6 逻辑盘做成 RAID 0 。

16、RAID 1.5 :一个新生的磁盘阵列方式

17、JBOD( Just a Bunch of Disks )

 

参考自:

  • ThinkServer-RD650-RAID及系统安装.docx
  • https://blog.csdn.net/lidan3959/article/details/8594128
  • https://blog.csdn.net/chenvast/article/details/77906712
  • https://baike.baidu.com/item/RAID%200
  • https://baike.baidu.com/item/RAID%201
  • https://baike.baidu.com/item/RAID%202
  • https://baike.baidu.com/item/RAID%203
  • https://baike.baidu.com/item/RAID%204
  • https://baike.baidu.com/item/RAID%205
  • https://baike.baidu.com/item/RAID%206
  • https://baike.baidu.com/item/RAID%207
  • https://baike.baidu.com/item/RAID%2050
  • http://www.hack520.com/169.html
  • https://www.cnblogs.com/interdrp/p/4892140.html

(未完待续)

本文完。如有疑问,欢迎在下方留言;如本文有什么错误,欢迎在下方留言指正,谢谢。

打赏作者
这里是 “ CCIE 工程师社区 ” 官方的捐款通道,您是否可以考虑请我们喝杯咖啡呢?

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

Article Attachments

Was this article helpful?

Related Articles

Leave A Comment?

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据