计算机存储中各RAID级别优缺点介绍
raid是英文redundant array of independent disks的缩写,中文简称为独立磁盘冗余阵列。raid就是一种由多块硬盘构成的冗余阵列。
一、raid 0
1.1 定义
又称为stripe或striping,它代表了所有raid级别中最高的存储性能。raid 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
raid 0 并不是真正的raid结构,没有数据冗余,没有数据校验的磁盘陈列。实现raid 0至少需要两块以上的硬盘,它将两块以上的硬盘合并成一块,数据连续地分割在每块盘上。 因为带宽加倍,所以读/写速度加倍, 但raid 0在提高性能的同时,并没有提供数据保护功能,只要任何一块硬盘损坏就会丢失所有数据。因此raid 0 不可应用于需要数据高可用性的关键领域。
1.2 工作原理
系统向三个磁盘组成的逻辑硬盘(raid0 磁盘组)发出的i/o数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。通过建立raid 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。[
1.3 优点
性能高。
raid 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,raid 0也是提高硬盘存储性能的绝佳选择。
1.4 缺点
安全性差。
raid 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。raid0运行时只要其中任一块硬盘出现问题就会导致整个数据的故障。一般不建议企业用户单独使用。
二、raid 1
2.1 定义
raid 1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此raid 1可以提高读取性能。raid 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
2.2 工作原理
raid1是将一个两块硬盘所构成raid磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。raid 1磁盘阵列显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。它的性能自然没有raid 0磁盘阵列那样好,但其数据读取确实较单一硬盘来的快,因为数据会从两块硬盘中较快的一块中读出。raid 1磁盘阵列的写入速度通常较慢,因为数据得分别写入两块硬盘中并做比较。raid 1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。raid 1磁盘阵列是十分安全的,不过也是较贵一种raid磁盘阵列解决方案,因为两块硬盘仅能提供一块硬盘的容量。raid 1磁盘阵列主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。
2.3 优点
安全性好。
raid1通过硬盘数据镜像实现数据的冗余,保护数据安全,在两块盘上产生互为备份的数据,当原始数据繁忙时,可直接从镜像备份中读取数据,因此raid1可以提供读取性能。
2.4 缺点
成本高。
raid1是硬盘中单位成本最高的,但提供了很高的数据安全性和可用性,当一个硬盘失效时,系统可以自动切换到镜像硬盘上读/写,并且不需要重组失效的数据。
三、raid 2
3.1 定义
raid 2是raid 0的改良版,以汉明码(hamming code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ecc,error correction code),所以数据整体的容量会比原始数据大一些。
3.2 工作原理
raid 2是为大型机和超级计算机开发的带汉明码校验磁盘阵列。它是将数据条带化地分布于不同的硬盘上,条块单位为位或者字节,并使用“加重平均纠错码”的编码技术来提供错误检查及恢复,这种纠错码也被称为“海明码”。海明码需要多个磁盘存放检查及恢复信息,使得raid2技术实施更复杂,因此在商业环境中很少使用。
海明码在磁盘陈列中被间隔写入到磁盘上,而且地址都一样,也就是在各个磁盘中,其数据都在相同的磁道及扇区中。
raid2的设计是使用共轴同步的技术,存取数据时整个磁盘陈列一起工作,在各个磁盘的相同位置做平行存取,所以有最短的存取时间,其总线是特别的设计,以大带宽并行传输所存取的数据。在大型文件的存取应用中,raid2有最好的性能,但是如果文件太小,将会影响其性能,因为磁盘的存取是以扇区为单位,而raid2的存取是所以磁盘平行动作,而且是进行位的存取,所以小于一个扇区的数据量会使其性能大打折扣。[1]
raid2是设计给需要连续存取大量数据的计算机使用的,如进行影像处理或者cad/cam的工作站等,并不适用于一般的多用户环境、网络服务器和pc。
3.3 优点
在写入时,raid 2在写入数据位同时还要计算出它们的汉明码并写入校验阵列,读取时也要对数据即时地进行校验,最后再发向系统。通过上文的介绍,我们知道汉明码只能纠正一个位的错误,所以raid 2也只能允许一个硬盘出问题,如果两个或以上的硬盘出问题,raid 2的数据就将受到破坏。但由于数据是以位为单位并行传输,所以传输率也相当快。
3.4 缺点
raid 2是早期为了能进行即时的数据校验而研制的一种技术(这在当时的raid 0、1等级中是无法做到的),从它的设计上看也是主要为了即时校验以保证数据安全,针对了当时对数据即时安全性非常敏感的领域,如服务器、金融服务等。但由于花费太大(其实,从上面的分析中可以看出如果数据位宽越大,用于校验阵列的相对投资就会越小,就如上面的4:3与64:7),成本昂贵,目前已基本不再使用,转而以更高级的即时检验raid所代替,如raid 3、5等。
四、raid 3
4.1 定义
raid 3是把数据分成多个“块”,按照一定的容错算法,存放在n+1个硬盘上,实际数据占用的有效空间为n个硬盘的空间总和,而第n+1个硬盘上存储的数据是校验容错信息,当这n+1个硬盘中的其中一个硬盘出现故障时,从其它n个硬盘中的数据也可以恢复原始数据,这样,仅使用这n个硬盘也可以带伤继续工作(如采集和回放素材),当更换一个新硬盘后,系统可以重新恢复完整的校验容错信息。由于在一个硬盘阵列中,多于一个硬盘同时出现故障率的几率很小,所以一般情况下,使用raid3,安全性是可以得到保障的。
4.2 工作原理
raid3的数据存取方式和raid2一样,把数据以位为单位来分割并且存储到各个硬盘上,并且在数据安全方面以奇偶校验取代海明码做错误校正及检测,所以只需要一个额外的校验盘。奇偶校验值的计算是以各个硬盘的相对应位进行异或的逻辑运算,然后将结果写入奇偶校验硬盘。
raid 3是在raid 2基础上发展而来的,主要的变化是用相对简单的异或逻辑运算(xor,exclusive or)校验代替了相对复杂的汉明码校验,从而也大幅降低了成本。
4.3 优点
raid3比较适合大文件类型且安全性要求较高的应用,如视频编辑、硬盘播出机、大型数据库等。
4.4 缺点
对于那些经常需要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个raid系统性能的下降。鉴于这种原因,raid3更加适合应用于那些写入操作较少,读取操作较多的应用环境,如数据库和web服务器等。
五、raid 4
5.1 定义
raid4即带奇偶校验码的独立磁盘结构,raid4和raid3很象。在独立访问阵列中,每个磁盘都是独立运转的,因此不同的i/o请求可以并行地满足。
5.2 工作原理
raid4和raid3很象,数据都是依次存储在多个硬盘之上,奇偶校验码存放在独立的奇偶校验盘上,唯一不同的是,在数据分割上raid3对数据的访问是按位进行的,raid4是以数据块为单位。即raid 4是按数据块为单位存储的,那么数据块应该怎么理解呢?简单的话,一个数据块是一个完整的数据集合,比如一个文件就是一个典型的数据块。当然,对于硬盘的读取,一个数据块并不是一个文件,而是由操作系统所决定的,这就是我们熟悉的簇(cluster)。raid 4这样按块存储可以保证块的完整,不受因分条带存储在其他硬盘上而可能产生的不利影响(比如当其他多个硬盘损坏时,数据就完了)。[1]
不过,在不同硬盘上的同级数据块也都通过xor进行校验,结果保存在单独的校验盘。所谓同级的概念就是指在每个硬盘中同一柱面同一扇区位置的数据算是同级。在写入时,raid就是按这个方法把各硬盘上同级数据的校验统一写入校验盘,等读取时再即时进行校验。因此即使是当前硬盘上的数据块损坏,也可以通过xor校验值和其他硬盘上的同级数据进行恢复。由于raid 4在写入时要等一个硬盘写完后才能写一下个,并且还要写入校验数据所以写入效率比较差,读取时也是一个硬盘一个硬盘的读,但校验迅速,所以相对速度更快。
5.3 优点
raid4 也使用一个校验盘,各硬盘相同位置的分段形成一个校验硬盘分段,放在校验硬盘上。这种方式可在不同的硬盘平行执行不同的读取命令,大幅提高磁盘陈列的读取性能,但写入数据时,因受限于校验硬盘,同一时间只能做一次,启动所有硬盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入。即使如此,小型文件的写入仍然要比raid3快。
5.4 缺点
校验硬盘和raid3一样,也形成其性能的瓶颈。在失败恢复时,它的难度比raid3大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。
六、raid 5
6.1 定义
raid 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 raid 5可以理解为是raid 0和raid 1的折中方案。raid 5可以为系统提供数据安全保障。
6.2 工作原理
raid5和raid4一样,数据以块为单位分布到各个硬盘上。raid 5不对数据进行备份,而是把数据和与其相对应的奇偶校验信息存储到组成raid5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当raid5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
6.3 优点
raid 5具有和raid 0相近似的数据读取速度,raid 5的磁盘空间利用率要比raid 1高,存储成本相对较低。
6.4 缺点
保障程度要比mirror低,写入数据的速度比对单个磁盘进行写入操作稍慢。
七、raid 6
7.1 定义
raid6技术是在raid 5基础上,为了进一步加强数据保护而设计的一种raid方式,实际上是一种扩展raid 5等级。与raid 5的不同之处于除了每个硬盘上都有同级数据xor校验区外,还有一个针对每个数据块的xor校验区。
7.2 工作原理
raid-6 是在raid-5基础上把校验信息由一位增加到两位的raid 级别。
raid-6和raid-5一样对逻辑盘进行条带化然后存储数据和校验位,只是对每一位数据又增加了一位校验位。这样在使用raid-6时会有两块硬盘用来存储校验位,增强了容错功能,同时必然会减少硬盘的实际使用容量。以前的raid级别一般只允许一块硬盘坏掉,而raid-6可以允许坏掉两块硬盘,因此,raid-6 要求至少4块硬盘。
7.3 优点
当使用大数据块时,raid6的随机读取性能很好。当使用小数据块时raid6的持续读取性能比较好。
快速的读取性能,更高的容错能力。
7.4 缺点
raid6的随机写入性能比较差,因为不但要在每硬盘上写入校验数据而且要在专门的校验硬盘上写入数据。
raid6的持续写入性能一般。
raid控制器在设计上更加复杂,成本更高。
八、raid 7
8.1 定义
raid 7全称叫“optimized asynchrony for high i/o rates as well as high data transfer rates(最优化的异步高i/o速率和高数据传输率)”,它与以前我们见到raid级别具有明显的区别。raid 7完全可以理解为一个独立存储计算机,它自身带有操作系统和管理工具,完全可以独立运行。
8.2 工作原理
raid7 不仅仅是一种技术,还是一种存储计算机(storage computer )。raid 7 存储计算机操作系统(storage computer operating system )是一套实时事件驱动操作系统,主要用来进行系统初始化和安排raid 7磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。通过自身系统中的阵列电脑板来设定和控制读写速度,存储计算机操作系统可使主机i/o 传递性能达到最佳。如果一个磁盘出现故障,还可自动执行恢复操作,并可管理备份磁盘的重建过程。
raid 7 突破了以往raid 标准的技术架构,采用了非同步访问,极大地减轻了数据写瓶颈,提高了i/o 速度。所谓非同步访问,即raid 7 的每个i/o 接口都有一条专用的高速通道,作为数据或控制信息的流通路径,因此可独立地控制自身系统中每个磁盘的数据存取。如果raid 7 有n 个磁盘,那么除去一个校验盘(用作冗余计算)外,可同时处理n-1 个主机系统随机发出的读/写指令,从而显著地改善了i/o 应用。raid 7 系统内置实时操作系统还可自动对主机发送过来的读/写指令进行优化处理,以智能化方式将可能被读取的数据预先读入快速缓存中,从而大大减少了磁头的转动次数,提高了i/o 速度。raid 7 可帮助用户有效地管理日益庞大的数据存储系统,并使系统的运行效率提高至少一倍以上,满足了各类用户的不同需求。
8.3 优点
(1)全面写入的性能领先但盘性能25%至90%并且强于其他阵列1.5至6倍。
(2)主机接口通过可升级的连通性来增加传输带宽。
(3)在小规模用户读取操作时,cache的命中率极高,几乎可以将寻址时间变相降低为零。
(4)阵列中的磁盘数量越多,写入效率提高越大,读取时寻址时间越短。
(5)没有额外的带宽用于效验操作。
8.4 缺点
(1)很可能造成一个卖主一个方案的局面。
(2)存储容量中,每mb成本极高。
(3)相对而言,非常短的保修期。
(4)大多数用户可能都用不到。
(5)必须要有ups的配合以保证意外断电时cache中的数据顺利保存。
九、raid 10
9.1 定义
raid 10是一个raid 0与raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了raid0的快速和raid1的安全。我们知道,raid 1在这里就是一个冗余的备份阵列,而raid 0则负责数据的读写阵列。其实,图6只是一种raid 10方式,更多的情况是从主通路分出两路,做striping操作,即把数据分割,而这分出来的每一路则再分两路,做mirroring操作,即互做镜像。
9.2 工作原理
raid 10其实非常简单,首先创建2个独立的raid1,然后将这两个独立的raid1组成一个raid0,当往这个逻辑raid中写数据时,数据被有序的写入两个raid1中。磁盘1和磁盘2组成一个raid1,磁盘3和磁盘4又组成另外一个raid1;这两个raid1组成了一个新的raid0。如写在硬盘1上的数据1、3、5、7,写在硬盘2中则为数据1、3、5、7,硬盘3中的数据为0、2、4、6,硬盘4中的数据则为0、2、4、6,因此数据在这四个硬盘上组合成raid10,且具有raid0和raid1两者的特性。
虽然raid10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一raid1中,就能保证数据安全性。假如磁盘中的某一块盘坏了,整个逻辑磁盘仍能正常工作的。[2]
当我们需要恢复raid 10中损坏的磁盘时,只需要更换新的硬盘,按照raid10的工作原理来进行数据恢复,恢复数据过程中系统仍能正常工作。原先的数据会同步恢复到更换的硬盘中。
9.3 优点
raid10提供100%的数据冗余,支持更大的卷尺寸。raid10提供最好的性能。使用raid10,可以获得更好的可靠性,因为即使两个物理驱动器发生故障,每个阵列中都有一个,数据仍然可以得到保护。
9.4 缺点
raid10需要4 + 2*n 个磁盘驱动器(n >=0), 而且只能使用其中一半或更小的磁盘用量, 例如 4 个 250g 的硬盘使用raid10 阵列, 实际容量是 500g。
价格也相对较高。