`
lzquan
  • 浏览: 197154 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

独立磁盘冗余阵列(RAID)

阅读更多

编者按:本文从独立磁盘冗余阵列(RAID)的概念、关键技术以及分类三个方面,详细地介绍了独立磁盘冗余阵列RAID的有关技术。关键词:RAID。

随着计算机应用的日益普及,人们对计算速度和性能的要求也逐渐提高。在一个完整的计 算机系统中,CPU和内存的作用固然重要,但是数据存储设备性能的好坏和速度的快慢也直接影响到整个系统的表现,同时随着信息量的急剧增加,如何有效、安 全地保存及备份那些有价值的信息就显得日益重要。磁介质存储技术的成熟,使得独立磁盘冗余阵列(RAID)技术得到非常广泛的应用。特别是大型网 站,RAID技术已经成为数据存储管理的基础。在广播电视领域,RAID技术越来越多地在非线性编辑,广告插播系统、硬盘自动播出系统、数字视频网等方面 得到应用。

一、RAID的概念

RAID即独立(廉价)磁盘冗余阵列是英文Redundant Array of Inexpensive Disks的缩写,它是一种将多个磁盘驱动器按照一定的方式组合在一起协同工作,使用起来如一个磁盘,但是比单个磁盘有着更大存储容量、更高速度和更高稳 定性的存储技术。一个磁盘阵列就是多个磁盘驱动器的集合。磁盘阵列有物理驱动器阵列与逻辑驱动器阵列之分,物理驱动器阵列可以被分开或组合成一个或多个逻 辑驱动器阵列,逻辑驱动器阵列可以是一个硬盘,也可以是硬盘中的一个分区,逻辑驱动器阵列由可以在操作系统中看到的逻辑驱动器组成。

RAID控制器就是在物理和逻辑驱动器阵列中管理数据存取的功能部件。它的功能可 以通过硬件实现,也可以通过软件来完成。系统通过它管理阵列中数据的存取,而不直接管理,这样系统可集中力量进行数据的运算处理,提高整个系统的性能。硬 件RAID控制器一般用于处理大量数据的RAID模式。软件RAID需要占用一定的CPU处理时间,当处理大量数据时,应该使用硬件RAID控制器。

人们在开发RAID时主要是基于以下设想,即几块小容量硬盘的价格总和要低于一块 大容量的硬盘。虽然目前这一设想还没有成为现实,RAID在节省成本方面的作用还不是很明显,但是RAID可以充分发挥出多块硬盘的优势,实现远远超出任 何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏 硬盘的影响。

二、RAID的关键技术

数据分块技术(Striping)、镜像技术(Mirror)和奇偶校验技术(Parity)是RAID的关键技术。

1.数据分块技术

数据分块技术就是数据的并行处理。存取文件时,将文件分成多个小块,分别存储在多个 硬盘上,这样写入和读取数据就可以在多个硬盘上同时进行,以提高数据的存取速度及数据的传输性能。尤其在存取一个大文件时,如果不分块,文件只能顺序存储 在磁盘阵列的一个硬盘上,读取时要从头到尾逐一读取,速度较慢,如果分块,就能让各块在不同的硬盘上同时读写,速度大大提高。

数据分块技术的关键在于分块大小的选择,根据不同的应用要采用不同的分块尺寸。分 块越小,一个文件被分割的块数就越多,并行处理能力就越强,数据存取速度就越高,但与此同时就会增加块存取的随机性和块寻址时间。在实际应用中应该找到一 个平衡点,选择合适的分块大小,解决文件存取的随机性与提高并行处理能力之间的矛盾。

2.镜像技术

镜像就是RAID技术中的冗余技术,即在多个独立的硬盘驱动器或驱动器阵列上存放数 据的多个拷贝。系统在某个硬盘上存储数据的同时,会在作为镜像的另一个硬盘上存储完全相同的数据。这样,当其中一个硬盘或阵列的某一部分出现问题时,系统 便可以访问镜像硬盘或镜像阵列以便继续工作,并可缩短数据的修复时间。

镜像技术强调数据的安全性,其代价是需要更大的存储空间,需要更多的经费来购置存储设备。但这些花费在很多场合是值得的,因为在这些场合,信息丢失而无法恢复的损失是非常巨大的。当然在那些对数据的稳定性要求不高的场合,镜像的意义不是很大。

镜像技术不能并行写数据,但是读取数据的过程可以是并行的。通过RAID控制器的控制,可以读取数据盘或镜像盘中任意一个数据,当其中一个正在工作时,空闲的那一个可以响应数据读出请求。

3.奇偶校验技术

奇偶校验是RAID用到的另一种冗余技术,校验位就是数据的冗余。进一步分为奇校验 和偶校验。奇校验约定的规律是让整个校验码(包含有效信息和校验位)中"1"的个数为奇数,而偶校验中"1"的个数为偶数。简单的奇偶校验不具有自动纠正 错误的能力,1950年理查德·海明提出的海明校验码,不仅能检测错误,还能给出错误位置并自动纠正。海明校验的基本思想是:将有效信息按照某种规律分成 若干组,对每一个组作奇偶测试并安排一个校验位,从而能提供多位检错信息,以定位错误点并纠正。可见海明校验实质上是一种多重奇偶校验。

校验码通过"异或"逻辑运算产生,将一个有效信息与一个给定的初始值进行"异或"运算,会得到校验信息。如果有效信息出现错误,通过校验信息与初始值的异或运算能还原正确的有效信息。

奇偶校验技术只多加一个硬盘就能够起到保护数据的作用,而不用象镜像那样,任何数据 都要存储为相同的两份。对于分布式奇偶检验,奇偶校验数据不必存储在单一的物理硬盘上,它可以分布在整个磁盘阵列中。另外,奇偶校验数据也可以分块。由此 可见,奇偶校验技术相对于镜像技术的优势在于减少设备投入,但由于每次数据读写都要进行大量的奇偶校验运算,对计算机的运算速度要求很高,必须使用硬件 RAID控制器。在数据恢复方面,奇偶检验技术比镜像技术复杂得多且慢得多。

三、RAID的分类

目前有很多种方法构成RAID,可分为RAID0~RAID7,其中最常用的是RAID0,RAID1,RAID3,RAID5,现在我们就对各种RAID技术进行介绍。

1.RAID0

RAID0是最简单的一种形式。RAID0可以把多块硬盘连接在一起形成一个容量更 大的存储设备。最简单的RAID0技术只是提供更多的磁盘空间,当然我们也可以通过设置,使用RAID0来提高磁盘的性能和吞吐量。RAID0没有冗余或 错误修复能力,但是实现成本是最低的。

RAID0最简单的实现方式就是把几块硬盘串联在一起创建一个大的卷集。磁盘之间的连接既可以使用硬件的形式通过智能磁盘控制器实现,也可以使用操作系统中的磁盘驱动程序以软件的方式实现。

RAID0只有一个好处,就是可以增加磁盘的容量。至于速度,则与其中任何一块磁盘 的速度相同,这是因为同一时间内只能对一块磁盘进行I/O操作。如果其中的任何一块磁盘出现故障,整个系统将会受到破坏,无法继续使用。从这种意义上说, 使用纯RAID0方式的可靠性仅相当于单独使用一块硬盘的1/N(如果RAID0使用了N块硬盘)。

虽然我们无法改变RAID0的可靠性问题,但是我们可以通过创建带区集,在同一时间内向多块磁盘写入数据,以提高系统的性能。

在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一块磁盘上的带 区空间就可以满足大部分的I/O操作,使数据的读写仍然只局限在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果带区过小,任何I /O指令都可能引发大量的读写操作,占用过多的控制器总线带宽。因此,在创建带区集时,我们应当根据实际应用的需要,慎重的选择带区的大小。

2.RAID1

虽然RAID0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。所以,RAID0一般只是在那些对数据安全性要求不高的情况下才被人们使用。

RAID1和RAID0截然不同,其技术重点全部放在如何能够在不影响性能的情况下最大限度的保证系统的可靠性和可修复性上。RAID1是所有RAID等级中实现成本最高的一种,尽管如此,人们还是选择RAID1来保存那些关键性的重要数据。

RAID1又被称为磁盘镜像,每一个磁盘都具有一个对应的镜像盘。对任何一个磁盘的数据写入都会被复制在镜像盘中;系统可以从一组镜像盘中的任何一个磁盘读取数据。显然,磁盘镜像肯定会提高系统成本。因为所能使用的空间只是所有磁盘容量总和的一半。

RAID1中任何一块硬盘的故障都不会影响到系统的正常运行,而且只要能够保证任何一对镜像盘中至少有一块磁盘可以使用,RAID1甚至可以在一半数量的硬盘出现问题时不间断的工作。当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据。

通常,我们把出现硬盘故障的RAID系统称为在降级模式下运行。虽然这时保存的数据 仍然可以继续使用,但是RAID系统将不再可靠。如果剩余的镜像盘也出现问题,那么整个系统就会崩溃。因此,应当及时更换损坏的硬盘,避免出现新的问题。 更换新盘之后,原有好盘中的数据必须被复制到新盘中。这一操作被称为同步镜像。同步镜像一般都需要很长时间,尤其是当损害的硬盘的容量很大时更是如此。在 同步镜像的进行过程中,外界对数据的访问不会受到影响,但是由于复制数据需要占用一部分的带宽,所以可能会使整个系统的性能有所下降。

因为RAID1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当大, 尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘控制器就显得很有必要。使用多个磁盘控制器不仅可以改善性能,还可以进一步的提高 数据的安全性和可用性。即使一个磁盘控制器出现问题,系统仍然可以使用另外的磁盘控制器继续工作。这样,就可以把一些由于意外操作所带来的损害降低到最低 程度。

单独使用RAID1也会出现类似单独使用RAID0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。

一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。所谓热插拔功能,就是 允许用户在不关闭系统,不切断电源的情况下取出和更换损害的硬盘。如果没有热插拔功能,即使磁盘损坏不会造成数据的丢失,用户仍然需要暂时关闭系统,以便 能够对硬盘进行更换。现在,使用热插拔技术只要简单的打开连接开关或者转动手柄就可以直接取出硬盘,而系统仍然可以不间断的正常运行。

3.RAID2

RAID2是为大型机和超级计算机开发的。它可在工作不中断的情况下纠正数据,但是,RAID2倾向于较高的数据校验和纠错率。RAID2不常使用。

4.RAID3

RAID3采用的是一种较为简单的校验实现方式,使用一个专门的磁盘存放所有的校验数据,而在剩余的磁盘中创建带区集分散数据的读写操作。随着所使用磁盘数量的增多,成本开销会越来越小。

在不同情况下,RAID3读写操作的复杂程度不同。最简单的情况就是从一个完好的RAID3系统中读取数据。这时,只需要在数据存储盘中找到相应的数据块进行读取操作即可,不会增加任何额外的系统开销。

当向RAID3写入数据时,情况会变得复杂一些。即使只是向一个磁盘写入一个数据块,也必须计算与该数据块同处一个带区的所有数据块的校验值,并将新值重新写入到校验块中。

当然也可以通过适当设置带区的大小使RAID系统得到简化。如果某个写入操作的长度恰好等于一个完整带区的大小(全带区写入),那么我们就不必再读取带区中的关联数据块计算校验值。我们只需要计算整个带区的校验值,然后直接把数据和校验信息写入数据盘和校验盘即可。

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

当更换了损坏的磁盘之后,系统必须一个数据块一个数据块的重建坏盘中的数据。整个过程包括读取带区,计算丢失的数据块和向新盘写入新的数据块,都是在后台自动进行。重建活动最好是在RAID系统空闲的时候进行,否则整个系统的性能会受到严重的影响。

除有关数据写入和降级模式的问题之外,在使用RAID3的过程中还有其他一些性能上的问题。RAID3所存在的最大一个不足同时也是导致RAID3很少被人们采用的原因就是校验盘很容易成为整个系统的瓶颈。

RAID3会把数据的写入操作分散到多个磁盘上进行,然而不管是向哪一个数据盘写入 数据,都需要同时重写校验盘中的相关信息。因此,对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致 整个RAID系统性能的下降。鉴于这种原因,RAID3更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如数据库和WEB服务器等。

5.RAID4

RAID4包括较大的数据条,这样,就可以从任何驱动器读取记录。由于这种类型缺乏对多种同时写操作的支持,因而,几乎不使用。

6.RAID5

RAID3所存在的校验盘的性能问题使几乎所有的RAID系统都转向了RAID 5。在运行机制上,RAID 5和RAID 3完全相同,也是由同一带区内的几个数据块共享一个校验块。

RAID5和RAID3的最大区别在于RAID5不是把所有的校验块集中保存在一个专门的校验盘中,而是分散到所有的数据盘中。RAID5使用了一种特殊的算法,可以计算出任何一个带区校验块的存放位置。

由于校验块已经被分散保存在不同的磁盘中,这样就可以确保任何对校验块进行的读写操作都会在所有的RAID磁盘中进行均衡,从而消除了产生瓶颈的可能。

7.RAID6

RAID6几乎没有进行商用。它使用一种分配在不同的驱动器上的第二种奇偶方案,扩展了RAID5。它能承受多个驱动器同时出现故障,但是,性能--尤其是写操作却很差,而且,系统需要一个极为复杂的控制器。

8.RAID7

RAID7有一个实时嵌入操作系统用作控制器,一个高速总线用于缓存。它提供快速的I/O,但是价格昂贵。

RAID7不仅仅是一种技术,还是一种存储计算机(Storage Computer)。因为它与RAID 0、1、5标准有明显区别,RAID 7自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7不仅具有更高的性能和卓越的存储管理能力,而且集普通RAID标准的所有优点于一身,因而RAID7系统整体性能极佳。

RAID7存储计算机操作系统(Storage Computer Operating System)是一套实时事件驱动操作系统,主要用来进行系统初始化和安排RAID7磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。通 过自身系统中的阵列电脑板来设定和控制读写速度,存储计算机操作系统可使主机I/O传递性能达到最佳。如果一个磁盘出现故障,还可自动执行恢复操作,并可 管理备份磁盘的重建过程。 

分享到:
评论

相关推荐

    独立磁盘冗余阵列RAID基础知识

    独立磁盘冗余阵列RAID基础知识.doc

    行业分类-设备装置-一种基于独立磁盘冗余阵列RAID的写控制方法及系统.zip

    行业分类-设备装置-一种基于独立磁盘冗余阵列RAID的写控制方法及系统

    廉价磁盘冗余阵列

    RAID磁盘冗余阵列的一些介绍。

    独立冗余磁盘阵列

    RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。

    冗余磁盘系统创建说明(磁盘阵列)

    冗余磁盘系统创建说明(磁盘阵列) RAID0、1、5

    硬盘磁盘阵列RAID的完整安装过程(桌面版)

    后来RAID中的字母I被改作了Independent,RAID就成了“独立冗余磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。可以把RAID理解成一种使用磁盘驱动器的方法,它将一组磁盘驱动器用某种逻辑方式联系起来,...

    RAID简称磁盘阵列Disk Array

    RAID是英文Redundant Array of Independent Disks的缩写,翻译成中文意思是“独立磁盘冗余阵列”,有时也简称磁盘阵列(Disk Array)。 简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来...

    服务器磁盘阵列系统(RAID)技术详解

    其实,从RAID的英文原意中,我们已经能够多少知道RAID就是一种由多块廉价磁盘构成的冗余阵列。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现。RAID技术分为几种不同的等级,分别可以提供...

    如何利用mdadm在Linux中配置RAID

    RAID,也就是我们常说的独立磁盘冗余阵列或者廉价磁盘冗余阵列,则是一种全面的增量备份解决方案。RAID具有多种模式和附加功能,基本的RAID就已经可以实时的保存多个文件副本了。本文将为大家讲述如何利用mdadm工具...

    如何在无盘下做磁盘阵列

    RAID是Redundant Array of Inexpensive Disk的缩写,即“独立磁盘冗余阵列”的缩略语,1987年由Patterson,Gibson和Katz在加州大学伯克利分院的一篇文章中定义。RAID阵列技术允许将一系列磁盘分组,以实现提高可用性...

    18-1-RHEL7-Linux+RAID+0磁盘阵列原理与搭建

    18-1-RHEL7-Linux+RAID+0磁盘阵列原理与搭建,RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列

    磁盘阵列(RAID)图解教程

    磁盘阵列可以在安装系统之前或之后产生,系统会视之为一个(大型)硬盘,而它具有容错及冗余的功能。磁盘阵列不单只可以加入一个现成的系统,它更可以支持容量扩展,方法也很简单,只需要加入一个新的硬盘并执行一些...

    RAID 0-5介绍

    磁盘阵列RAID技术详解 RAID是英文Redundant Array of Inexpensive Disks的缩写,中文简称为磁盘阵列。其实,从RAID的英文原意中,我们已经能够多少知道RAID就是一种由多块廉价磁盘构成的冗余阵列。虽然RAID包含多...

    RAID(磁盘阵列)技术规范详解

    RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。本文详细介绍RAID全部的技术规范。

    IBMX3650M4RAID配置.pdf

    RAID(Redundant Array of Independent Disks):独立磁盘冗余阵列,是一种把多块独 标准发货的IBM 服务器配置8块硬盘,RAID级别规划和分区规划如下: RAID 10 + Hotspare(热备) 第一硬盘、第二硬盘、第三...

    磁盘阵列RAID讲解

    RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在...

    全面的各类RAID详解

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),全称独立磁盘冗余阵列。 磁盘阵列是由很多廉价的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项...

    服务器RAID磁盘阵列的恢复.pptx

    磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID)有"价格便宜、具有冗余能力的磁盘阵列"之意,多个单独的硬盘组成RAID阵列,其优点是不仅具备扩充磁盘容量的作用,还加快了数据存储与访问的速度,以及利用...

    基于RAID技术的固态存储阵列系统的研究与设计.pdf

    靠性的要求。 针对当前磁盘存储系统在军工等关键应用领域中所遇到的问题和面临的挑 ...该架构基于独立磁盘冗余阵列(RAID) 技术,以具有片上RAID功能的IOP348处理器为核心,以SATA固态硬盘为基本 存储单元。

    服务器应该使用哪种类型的RAID阵列.doc

    独立磁盘冗余阵列(RAID)是将多个机械硬盘(HDD)或固态硬盘(SSD)组合为一个逻辑卷的过程,从而使其阵列避免或减少硬盘故障带来的损失。RAID阵列有很多种类型,以下将讨论企业应该选择哪一种RAID阵列。

Global site tag (gtag.js) - Google Analytics