RAID技术工作原理及可靠性分析.doc_第1页
RAID技术工作原理及可靠性分析.doc_第2页
RAID技术工作原理及可靠性分析.doc_第3页
RAID技术工作原理及可靠性分析.doc_第4页
RAID技术工作原理及可靠性分析.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RAID技术工作原理及可靠性分析摘 要:介绍了磁盘阵列的基本概念和常用的磁盘阵列种类,分析了RAID0、RAID3和RAID10三种磁盘阵列的可靠性值,同时与实验数据进行了比较。结果表明,磁盘阵列的可靠性值基于标准模型在一定程度上可以进行量化,能进行科学的计算,得出RAID10比相应其他的RAID的容量更大,可靠性更佳。该文的可靠性分析对磁盘阵列的进一步研究和生产能起到现实的指导作用。关键字:磁盘阵列;可靠性;镜像; 磁盘阵列控制器;1 引 言RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。2 磁盘阵列的基本概念和常用的磁盘阵列种类2.1 RIAD技术简介RAID包含多块硬盘,但是在操作系统下是作为一个独立的大型存储设备出现。利用RAID技术于存储系统的好处主要有以下三种:通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能;通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;通过镜像或校验操作提供容错能力;最初开发RAID的主要目的是节省成本,当时几块小容量硬盘的价格总和要低于大容量的硬盘。目前来看RAID在节省成本方面的作用并不明显,但是 RAID可以充分发挥出多块硬盘的优势,实现远远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外,RAID还可以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAID0,RAID1,RAID1+0,RAID3,RAID5等。目前经常使用的是RAID5和RAID(1+0)。磁盘阵列(Disk Array)是由一个硬盘控制器来控制多个硬盘的相互连接,使多个硬盘的读写同步,减少错误,增加效率和可靠度的技术。磁盘阵列卡则是实现这一技术的硬件产品,磁盘阵列卡拥有一个专门的处理器,还拥有专门的存贮器,用于高速缓冲数据。使用磁盘阵列卡服务器对磁盘的操作就直接通过阵列卡来进行处理,因此不需要大量的CPU及系统内存资源,不会降低磁盘子系统的性能。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。RAID技术的两大特点:一是速度、二是安全,由于这两项优点,RAID技术早期被应用于高级服务器中的SCSI接口的硬盘系统中,随着近年计算机技术的发展,PC机的CPU的速度已进入GHz 时代。IDE接口的硬盘也不甘落后,相继推出了ATA66和ATA100硬盘。这就使得RAID技术被应用于中低档甚至个人PC机上成为可能。RAID通常是由在硬盘阵列塔中的RAID控制器或电脑中的RAID卡来实现的。2.2 RAID分类磁盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot Swap)的特性,不过这类产品的价格都很贵。内接式磁盘阵列卡,因为价格便宜,但需要较高的安装技术,适合技术人员使用操作。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。阵列卡专用的处理单元来进行操作。利用软件仿真的方式,是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降低幅度还比较大,达30%左右。因此会拖累机器的速度,不适合大数据流量的服务器。2.3 RAID原理磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。和当时PC用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。2.4 RAID优缺点优点:提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。缺点:RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。2.5 RAID级别 2.5.1 RAID 0 将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,危险程度与JBOD相当。 理论上越多的磁盘效能就等于单一磁盘效能磁盘数,但实际上受限于汇流排 I/O瓶颈及其它因素的影响,RAID效能会随边际递减,也就是说,假设一个磁盘的效能是50MB每秒,两个磁盘的RAID 0效能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘RAID 0最能明显感受到效能的提升。 但如果是以软体方式来实作RAID,则磁盘的空间则不见得受限于此(例如Linux Software RAID),透过软体实作可以经由不同的组合而善用所有的磁盘空间。 2.5.2 RAID 1 两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。 RAID 1就是镜像,其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。 因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。 如果用两个不同大小的磁盘建RAID 1,可用空间为较小的那个磁盘,较大的磁盘多出来的空间也可以分割成一个区来使用,不会造成浪费。 2.5.3 RAID 2 这是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台磁盘机方能运作。2.5.3 RAID 3 采用Bitinterleaving(数据交错储存)技术,它需要通过编码再将数据位元分 割后分别存在硬盘中,而将同位元检查后单独存在一个硬盘中,但由于数据内的位元分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进 行工作,所以这种规格比较适于读取大量数据时使用。2.5.4 RAID 4 它与RAID 3不同的是它在分割时是以区块为单位分别存在硬盘中,但每次的数据存取都必须从同位元检查的那个硬盘中取出对应的同位元数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高。2.5.5 RAID 5 RAID Level 5是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。RAID 5至少需要三颗硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用回写快取可以让效能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。 2.5.6 RAID 6 与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。 但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。 同一阵列中最多容许两个磁盘损坏。更换新磁盘后,资料将会重新算出并写入新的磁盘中。依照设计理论,RAID 6必须具备四个以上的磁盘才能生效。 可使用的容量为硬盘总数减去2的差,乘以最小容量,公式为Size=(N-2)*min(S1,S2,S3.Sn),同理,数据保护区域容量则为最小容量乘以2。 RAID 6在硬体磁盘阵列卡的功能中,也是最常见的磁盘阵列等级。2.5.7 混合RAID JBOD JBOD( Just a Bunch Of Disks)在分类上,JBOD并不是RAID的等级。 由于并没有规范,市场上有两类主流的做法 1.使用单独的连结端口如SATA、USB或1394同时控制多个各别独立的硬盘,使用这种模式通常是较高阶的设备,还具备有RAID的功能,不需要依靠JBOD达到合并逻辑磁区的目的。 2.只是将多个硬盘空间合并成一个大的逻辑硬盘,没有错误备援机制。资料的存放机制是由第一颗硬盘开始依序往后存放,即作业系统看到的是一个大硬盘(由许多小硬盘组成的)。但如果硬盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作救援(因为大部分档案系统将磁盘分割表(partition table)存在磁盘前端,即第一颗),失去磁盘分割表即失去一切数据,若遭遇磁盘阵列资料或硬盘出错的状况,危险程度较RAID 0更剧。它的好处是不会像RAID,每次存取都要读写全部硬盘。 2.5.8 RAID 7 RAID 7并非公开的RAID标准,而是Storage Computer Corporation的专利硬体产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。 另外,在实作中使用大量的快取记忆体以及用以实现非同步阵列管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以效能甚至超越了许多其他RAID标准的实做产品。但也因为如此,在价格方面非常的高昂。2.5.9 RAID 10/01 RAID 10是先镜射再分割资料,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。 RAID 01则是跟RAID 10的程序相反,是先分割再将资料镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。 当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。如果以六个硬盘建RAID 01,镜射再用三个建RAID 0,那么坏一个硬盘便会有三个硬盘离线。因此,RAID 10远较RAID 01常用,零售主机板绝大部份支援RAID 0/1/5/10,但不支援RAID 01。2.5.10 RAID 50 RAID 50 是RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe存取。由于RAID 50是以RAID 5为基础,而RAID 5至少需要3台硬盘,因此要以多组RAID 5构成RAID 50,至少需要6台硬盘。以RAID 50最小的6台硬盘组态为例,先把6台硬盘分为2组,每组3台构成RAID 5,如此就得到两组RAID 5,然后再把两组RAID 5构成RAID 0。 RAID 50在底层的任一组或多组RAID 5中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID 5中出现2台或两台以上硬盘损毁,整组RAID 50就会失效。 RAID 50由于在上层把多组RAID 5构成Stripe,效能比起单纯的RAID 5高,容量利用率比RAID5要低。 比如同样9块硬盘,RAID 50则3个RAID 5组成RAID 0,每个RAID 5会浪费一块硬盘,利用率为(1-3/9),RAID 5则为(1-1/9)。2.5.11 RAID 53 它拥有一个镜射条带阵列,硬盘里其中一个条带就是一个是由3组以上的RAID 5组成RAID 3硬盘阵列。2.5.12 RAID 60 RAID 60 是RAID 6与RAID 0的组合:先作RAID 6,再作RAID 0。换句话说,就是对两组以上的RAID 6作Stripe存取。RAID 6至少需具备4台硬盘,所以RAID 60的最小需求是8台硬盘。 由于底层是以RAID 6组成,所以RAID 60可以容许任一组RAID 6中损毁最多2台硬盘,而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3台硬盘,整组RAID 60就会失效,当然这种情况的机率相当低。 比起单纯的RAID 6,RAID 60的上层透过结合多组RAID 6构成Stripe存取,因此效能较高。不过使用门槛高,而且容量利用率低是较大的问题。3 磁盘阵列可靠度模型和可靠性值3.1 磁盘阵列可靠度模型一个磁盘阵列可以有包含多个不同的RAID级和磁盘容量,为简化模型,本文仅讨论基于8个相同RAID级硬盘驱动器组成的磁盘阵列,所有计算均假设在百分之百运转情况下3年内可靠性可以达到0.90的40 GB硬盘驱动器。3.2 RAID 0的可靠性值磁盘阵列RAID 0 的结构图如图1所示, 图中的磁盘阵列RAID 0由8个磁盘组成, 因此磁盘阵列的可靠性值就是每一个单独的硬盘驱动器的可靠性的乘积。由图1可知,1个磁盘阵列RAID 0 的可靠性值 一个单独的硬盘驱动器的可靠性值 R HDD 是 0.9 ,则 8 个磁盘组成的 RAID0 磁盘阵列的可靠性值计算表明,在 3 年内没有任何数据损失的可能性是 43% ,而发生数据损失的可能性是:100%-43%=57%3.3 RAID 3的可靠性值RAID 3 属于并行访问磁盘阵列, 其结构如图 2 所示。在 RAID 3 中, 使用了专门的磁盘存放所有的校验值,并把数据分散到剩余的磁盘上,因而 RAID 3 需要至少 3 块盘阵来运行。RAID 3 是使用专门校验盘的并行访问,其性能优势依赖于缓存技术和更高的磁盘转速。整个 RAID 3 系统只需要一个校验盘,就可以使硬盘的利用率提高。RAID 3 可以承受在由 n 个硬盘驱动器组成的磁盘阵列中的一个硬盘发生故障,例如:如果奇偶校验硬盘发生故障,其余用作存储数据用的硬盘不会被影响,但是冗余信息将丢失,如果其中一个数据硬盘发生故障, RAID 控制器使用剩余的数据硬盘,并且奇偶校验硬盘重新计算丢失的数据,系统性能将有稍微的降低直到发生故障的硬盘驱动器被恢复,但是不会有数据丢失。如果在发生故障的硬盘恢复以前另一个硬盘发生故障,那么 RAID 组件内的所有的数据将会丢失。图 3 中,配置了 n 块硬盘驱动器的 RAID 3 的可靠性值因此,当配置了3块盘阵( 共有8个相同RAID级硬盘驱动器,1个作为奇偶校验硬盘,7 个作为数据盘)时,可靠性值 计算表明,3年内没有任何数据损失的可能性是 81% 。因此,发生数据损失的可能性是: 100%-81%=19%3.4 RAID 10的可靠性值RAID 10 的结构如图 3 所示,图中 RAID 10 是将 RAID 1 的镜像功能和 RAID 0 的数据分割功能混合了起来,因此 RAID 10 需要至少 4 块硬盘驱动器 (2 块互为镜像盘, 2 块作为数据盘 ) 来运行。 其中数据是在被镜像的驱动器组之间分割,当一个硬盘驱动器在重建的时候,RAID 10 系统将比奇偶校验 RAID 系统的性能更好,这是因为丢失的数据不是从奇偶校验信息来重新获得,而是从其余的驱动器上拷贝得到的。在 RAID 10 磁盘阵列中,在镜像组里有一个硬盘驱动器发生故障不会导致任何数据丢失,只要每一个镜像组里有一个活动的驱动器,所有的数据就仍然是可用的,如果一个镜像组里的2个硬盘驱动器都发生了故障,那么所有的数据都会丢失。图 3 中, RAID 10 的一组阵列的可靠性值当 RAID 10 分成 4 组时,因此,1个RAID 10 磁盘组的分组如下:每次 1 组:+P(AB)+P(CD)+P(AD)+P(CB)每次 2 组:P(ABCD)P(ABD)P(ABC)P(BCD)P(ACD)P(ABCD)每次 3 组:+P(ABCD)+P(ABCD)+P(ABCD)+P(ABCD)每次4组: P(ABCD)RAID10的可靠性值是每组可靠性值之和,即:将相同项相抵消,得到 RAID 10 的可靠性值1 个盘的可靠性值 0.9 ,2个串联盘 ( 如 P(AB) 的可靠性值为:计算表明,1个 RAID 10 的磁盘组

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论