一、RAID说明

1.1、RAID概述

    ①RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求。

    ②目前业界公认的标准是 RAID0 ~ RAID5 ,除 RAID2 外的四个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID0 、 RAID1 、 RAID3 、 RAID5 、 RAID6 和 RAID10。 

    ③从实现角度看, RAID 主要分为:【软 RAID】、【硬 RAID】 以及【软硬混合 RAID】 三种。软 RAID 所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率自然最低。硬 RAID 配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,但成本很高。软硬混合 RAID 具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本 在软 RAID 和硬 RAID 之间。

    ④RAID 每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的 RAID 等级,以及具体的实现方式。

1.2、RAID原理

 RAID ( Redundant Array of Independent Disks )即【独立磁盘冗余阵列】,通常简称为:【磁盘阵列】简单地说:【RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储

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

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

1.3、RAID优势

①大容量

  这是 RAID 的一个显然优势,它扩大了磁盘的容量,由多个磁盘组成的 RAID 系统具有海量的存储空间。现在单个磁盘的容量就可以到 1TB 以上,这样 RAID 的存储容量就可以达到 PB 级,大多数的存储需求都可以满足。一般来说, RAID 可用容量要小于所有成员磁盘的总容量。不同等级的 RAID 算法需要一定的冗余开销,具体容量开销与采用算法相关。如果已知 RAID 算法和容量,可以计算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之间。

②高性能

   RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有限,容易成为系统性能的瓶颈。通过数据条带化, RAID 将数据 I/O 分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合 I/O 性能

③可靠性

  可用性和可靠性是 RAID 的另一个重要特征。从理论上讲,由多个磁盘组成的 RAID 系统在可靠性方面应该比单个磁盘要差。这里有个隐含假定:单个磁盘故障将导致整个 RAID 不可用。 RAID 采用镜像和数据校验等数据冗余技术,打破了这个假定。 镜像是最为原始的冗余技术,把某组磁盘驱动器上的数据完全复制到另一组磁盘驱动器上,保证总有数据副本可用。 比起镜像 50% 的冗余开销 ,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。 RAID 冗余技术大幅提升数据可用性和可靠性,保证了若干磁盘出错时,不会导致数据的丢失,不影响系统的连续运行。

④可管理性

  实际上,RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器对于外部主机系统来说, RAID 是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。 从用户应用角度看,可使存储系统简单易用,管理也很便利。 由于 RAID 内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。 RAID 可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以 大大简化管理工作。

二、关键技术

2.1、镜像

《1》说明

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

《2》应用场景

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

2.2、数据条带

《1》说明

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

  数据条带技术的分块大小选择非常关键。条带粒度可以是一个字节至几 KB 大小,分块越小,并行处理能力就越强,数据存取速度就越高,但同时就会增加块存取的随机性和块寻址时间。实际应用中,要根据数据特征和需求来选择合适的分块大小,在数据存取随机性和并发处理能力之间进行平衡,以争取尽可能高的整体性能。
     数据条带是基于提高 I/O 性能而提出的,也就是说它只关注性能, 而对数据可靠性、可用性没有任何改善。实际上,其中任何一个数据条带损坏都会导致整个数据不可用,采用数据条带技术反而增加了数据发生丢失的概念率。

2.3、数据校验

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

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

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

三、RAID等级

3.0、常见的RAID等级

《1》标准RAID:RAID0 、 RAID1 、 RAID2 、 RAID3 、 RAID4 、 RAID5 、RAID6 七个等级定为标准的 RAID 等级。

《2》混合RAID:RAID10、RAID50、RAID60...。

3.1、RAID 0

《1》原理:将数据条带化,【最少需要两块硬盘】(每块硬盘的容量一样,实际生产环境中建议使用同品牌同型号同批次同容量的硬盘组成 RAID 0),即将所有组成 RAID 0 的硬盘的可用容量组合在一起,形成计算机上的一个逻辑卷。通俗的讲就是至少使用两块硬盘来存储数据,但是我要存储的数据不是全部存在某一块硬盘上,而是把我要存储的数据分成均等的多部分,然后平均分散存储在组成 RAID 0 的磁盘阵列上。

下图是用四块硬盘组成 RAID 0 的示意图,其中每块硬盘都被分成 ABCD 四个条带,然后我要存数据就先存把数据均分成四部分,如果 A1 能存下其中一份,那就直接将四部分分别存入 A1-A4,如果存不下就先存满 A1-A4,剩下的按同样的方式存 B1-B4,以此类推。

《2》可用容量:组成 RAID 0 所有硬盘容量的总和

《3》优点:

        ①提高读写速度,对硬盘的总容量没有损失。

        ②处理大文件很快。

《4》缺点:

        ①一旦阵列中某块硬盘损坏了,所有数据将不可恢复。

《5》应用场景:RAID 0 不应用于任务关键系统非常适合非关键存储必须高速读取/编写的数据,例如在图像修饰或视频编辑站上。

3.2、RAID 1

《1》原理:镜像存储,RAID 1 【至少需要两块硬盘】组成,两块硬盘互为备份,存储的内容完全相同。建议硬盘容量大小也要一样,如果不一样,那实际可用容量不超过较小的那块硬盘的容量。

下图是 RAID 1 的示意图,左右两边存储的数据是完全相同的。

 

《2》可用容量:不超过最小的那块硬盘的容量总和。

《3》优点:

        ①读取性能翻倍。

        ②提供数据冗余,如果其中一块数据丢失,可以通过另一块还原。

《4》缺点:

         ①主要缺点是:有效存储容量仅占总驱动器容量的一半,因为所有数据都写两次。

        ②软件 RAID 1 解决方案并不总是允许对失败的驱动器进行热交换。这意味着只有在关闭连接到的计算机后才能更换故障驱动器。对于许多人同时使用的服务器,这可能是不能接受的。此类系统通常使用支持热交换的硬件控制器。

《5》应用场景:非常适合任务关键存储,例如会计系统。它也适用于小型服务器,其中将只使用两个数据驱动器。

3.3、 RAID 2(已淘汰)

《1》原理:RAID 2 本质上是 RAID 0,只是加入了汉明码来做数据的纠错。以此来优化 RAID 0。

        ①汉明码:(Hamming Code)是广泛用于内存和磁盘纠错的编码。汉明码不仅可以用来检测转移数据时发生的错误,还可以用来修正错误。(要注意的是,汉明码只能发现和修正一位错误,对于两位或者两位以上的错误无法正确和发现)。

《2》优点:

        ①加入了数据纠错机制。

《3》缺点:

        ①成本增高,需要额外的盘做汉明码纠错

注意:RAID 2 的应用场景不多,目前已经被淘汰,所以没有必要研究它。

3.4、 RAID 3

《1》原理:RAID 3,【最少需要3块硬盘】 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘。RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。本质上和 RAID 0 相同,与 RAID 2 相似,作为 RAID 0 的优化版本。

下图是 RAID 3 的实现架构图,图中 Disk 4 就是那块专用的奇偶校验磁盘。

 《2》优点:

        ①加入了数据纠错机制。

《3》缺点:

        ①做奇偶校验会消耗系统性能,容易导致系统出现性能瓶颈。

  • 变种(RAID 3 + Spare)

 这种变种在主磁盘遇到故障的时候不需要立即处理,Spare 磁盘会无缝顶替上去。

3.5、RAID 4

《1》原理:和 RAID 3 一样,唯一的区别是在数据分割上 RAID 3 对数据的访问是按位进行的,RAID 4 是以数据块为单位。
这里就不画图介绍了,图和 RAID 3 一样,这种 RAID 在生产环境中几乎不用。

3.6、RAID 5

《1》原理:RAID 5 综合了 RAID 0 的条带化技术以及阵列数据冗余技术(阵列【最少包括三个磁盘】)。RAID 3 和 RAID 5 之间的区别在于,RAID 3 配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。

虽然 RAID 5 可以在软件中实现,但建议使用硬件控制器。通常,这些控制器上会使用额外的缓存内存来提高书写性能。

下图是实现的架构图,其中能够看到,Ap-Dp 奇偶校验是放到和数据同一条带上的。

《2》 优点:

①读取数据非常快,而写入数据则稍慢(由于必须计算的平价)。

②有校验机制。

③空间利用率高。

《3》缺点:

①组成 RAID 5 的磁盘越多,安全性能越差,容易丢失数据。连续两块硬盘损坏,数据就找不回来了。

②驱动器故障对吞吐量有影响,尽管这仍然是可以接受的。

《4》应用场景:RAID 5 是一款出色的全方位系统,将高效的存储与出色的安全性和良好的性能相结合。它是数据驱动器数量有限的文件和应用程序服务器的理想选择。

  • 变种(RAID 5 + Spare)

这种变种通过加入空闲的 Spare 盘,在系统将数据重建至备用驱动器时用户仍可以继续访问数据。它能提供良好的数据安全,但磁盘空间由于热备用磁盘的存在(在其他磁盘出现故障之后才使用)而受到限制。磁盘故障不需要立即处理,因为系统会使用热备用磁盘对自己进行重建,但故障磁盘还是应尽快更换。

3.7、RAID 10

《1》原理:RAID 1 + RAID 0,它合并了其他级别(尤其是 RAID 1 和 RAID 0)特点的另一种 RAID 级别。这是一种“镜像集条带”,意思是数据在两个镜像阵列间分条。“条带化”在阵列之间发生,而“镜像”是在相同的阵列中出现,两种技术的组合加快了重建的速度。RAID 10 阵列包含的磁盘数应为四的倍数。
下图是 RAID 10 的架构图,在 RAID 10 阵列中,每个镜像对中,可以有一个磁盘出现故障而不丢失数据。不过,故障磁盘所在阵列的工作磁盘会成为整个阵列中的弱点。如果镜像对中的另一个磁盘也发生故障,则会丢失整个阵列。

 《2》优点:

        ①如果 RAID 10 配置中的某个磁盘出现问题,则重建时间非常快,因为只需要将所有数据从幸存的后视镜复制到新驱动器。这可能需要30分钟,驱动器1结核病。

《3》缺点:

        ①一半的存储容量用于镜像,因此与大型 RAID 5 或 RAID 6 阵列相比,这是一种具有冗余的昂贵方式。

四、RAID 应用选择

        RAID 等级的选择主要有三个因素【数据可用性】、【I/O 性能】和【成本】。目前,在实际应用中常见的主流 RAID 等级是 RAID0 , RAID1 , RAID3 , RAID5 , RAID6 和 RAID10 ,它们之间的技术对比情况如表 1 所示。

①如果不要求可用性,选择 RAID0 以获得高性能。

如果可用性和性能是重要的,而成本不是一个主要因素,则根据磁盘数量选择 RAID1

如果可用性,成本和性能都同样重要,则根据一般的数据传输和磁盘数量选择 RAID3 或 RAID5 。

在实际应用中,应当根据用户的数据应用特点和具体情况,综合考虑可用性、性能和成本来选择合适的 RAID 等级。 

表1 主流 RAID 等级技术对比

    近年来,企业的信息化水平不断发展,数据已经取代计算成为了信息计算的中心,信息数据的安全性就显得尤为至关重要。随着存储技术的持续发展, RAID 技术在成本、性能、数据安全性等诸多方面都将优于其他存储技术,例如磁带库、光盘库等,大多数企业数据中心首选 RAID 作为存储系统。

    当前存储行业的知名存储厂商均提供全线的磁盘阵列产品,包括面向个人和中小企业的入门级的低端 RAID 产品,面向大中型企业的中高端 RAID 产品。这些存储企业包括了国内外的主流存储厂商,如 EMC 、 IBM 、 HP 、 SUN 、 NetApp 、 NEC 、 HDS 、 H3C 、 Infortrend 、华赛等。另外,这些厂商在提供存储硬件系统的同时,还往往提供非常全面的软件系统,这也是用户采购产品的一个主要参考因素。

  不同的存储厂商的产品在技术、成本、性能、管理、服务等方面各有优势和不足。用户选择 RAID 的原则是:在成本预算内,满足数据存储需求的前提下,选择最优的存储厂商解决方案。因此,首先用户需要对存储需求作深入的调研和分析,并给出成本预算,然后对众多存储厂商的解决方案进行分析和对比,最后选择出一个综合最优的存储方案。其中,存储产品的扩展性和存储厂家的售后服务需要重点考察,存储需求(如容量、性能)可能会不断升级,存储产品发生故障后的维修和支持保障,这些都要未雨先缪。

五、其他资料

各种 RAID 详解icon-default.png?t=L9C2https://zhuanlan.zhihu.com/p/119452913RAID 级别 0、1、5、6 和 10 |优势,劣势,使用 (prepressure.com)icon-default.png?t=L9C2https://www.prepressure.com/library/technology/raid

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐