网络存储·数据备份与还原
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 RAID特点与适用

RAID技术经过不断的发展RAID级别,发展为RAID 0~RAID 5 6种明确标准级别。另外,还有RAID 6、7、10、01、30、50等级别。不同RAID级别的存储性能、数据安全性和存储成本也有所不同。

1. RAID 0

RAID Level 0又称为Striping阵列,通过条带化存储来实现其快速存取数据的目标。它将数据分割存储到多个硬盘上,磁盘读写时负载平均分配到多个硬盘,这样速度显著提升。由于数据被分割存储到多块硬盘,所以数据的完整性依赖于硬盘数据均完好无损,一旦其中一块硬盘的数据损坏,那么所有的数据都将丢失。所以,在RAID 0模式下性能好,但可靠性差,两块硬盘组成RAID 0后的容量等于小硬盘容量的两倍。从严格意义上说,RAID 0不是RAID,因为它没有数据冗余和校验的RAID,数据块保存在不同的磁盘上,能提高磁盘的性能和吞吐量。它的空间可以用来保存数据,存储空间利用率也很高,但只适用于类似Video/Audio信号存储、临时文件的转储等对速度要求极其严格的特殊应用。

图2-1所示为系统向RAID 0系统(这里以4个磁盘为例)发出的I/O数据请求被转化为4项操作,其中的每一项操作都对应于一块物理硬盘。通过建立RAID 0数据,请求被分散到4块硬盘中同时执行。从理论上讲,4块硬盘的并行操作使同一时间内磁盘读写速度提升了4倍。但由于总线带宽等多种因素的影响,实际的提升速率会低于理论值,但是,大量数据并行传输与串行传输比较,性能必然大幅提高。

图2-1 RAID 0系统

2. RAID 1

虽然RAID 0可以提供更好的性能,但是整个系统是非常不可靠的。如果出现故障,无法进行任何补救。RAID 1和RAID 0截然不同,其技术重点在于如何能够在不影响性能的情况下,最大限度地保证系统的可靠性和可修复性。RAID 1又称为Mirror阵列,它将同样的数据写入两块硬盘,两块硬盘互为镜像盘。当一块硬盘中的数据受损或磁盘故障时,另一块硬盘可继续工作,并可在需要时重建RAID 0阵列,如图2-2所示。但RAID 1不能提升磁盘性能,两块硬盘组成RAID 1后的容量等于小硬盘的容量,对任何一个磁盘的数据写入都会被复制到镜像盘中;系统可以从一组镜像盘中的任何一个磁盘中读取数据。显然,磁盘镜像肯定会提高系统成本。RAID 1适合对数据可靠性要求严格的场合,比如,金融、保险、交通等重要部门以及网络服务器等。RAID 1是所有RAID等级中实现成本最高的一种,尽管如此,人们还是选择RAID 1来保存关键性的重要数据。

图2-2 RAID 1系统

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

通常,把出现硬盘故障的RAID系统称为在降级模式下运行。虽然这时保存的数据仍然可以继续使用,但是RAID系统将不再可靠。如果剩余的镜像盘也出现问题,那么整个系统就会崩溃。因此,应当及时地更换损坏的硬盘,避免出现新的问题。

更换新盘之后,原有的数据必须被复制到新盘中,这一操作被称为同步镜像。同步镜像一般都需要很长时间,尤其是当损害的硬盘容量很大时更是如此。在同步镜像的进行过程中,外界对数据的访问不会受到影响,但是由于复制数据需要占用一部分的带宽,所以可能会使整个系统的性能有所下降。

使用两个磁盘控制器不仅可以改善性能,还可以进一步地提高数据的安全性和可用性。RAID 1最多允许一半数量的硬盘出现故障,所以按照如图5-19所示的设置方式(原盘和镜像盘分别连接不同的磁盘控制),即使一个磁盘控制器出现问题,系统仍然可以使用另外一个磁盘控制器继续工作。这样,就可以把一些由于意外操作所带来的损害降低到最低程度。

3. RAID 2

RAID 2又称为独立冗余磁盘阵列,阵列中序号为2 N的磁盘(第1、2、4、6、…)作为校验盘,其余的磁盘用于存放数据,磁盘数目越多,校验盘所占比率越少。RAID 2在大数据存储额情况下性能很高,RAID 2的实际应用很少。

4. RAID 3

RAID 3采用一个硬盘作为校验盘,其余磁盘作为数据盘,数据按位或字节的方式交叉存取到各个数据盘中,如图2-3所示。不同磁盘上同一带区的数据作异或校验,并把校验值写入到校验盘中。RAID 3系统在完整的情况下读取时没有任何性能上的影响,读性能与RAID 0一致,却提供了数据容错能力。但在写操作时性能却大为下降,这是因为每一次写操作,即使是改动某个数据盘上的一个数据块,也必须根据所有同一带区的数据来重新计算校验值写入到校验盘中。一个写操作包含写入数据块,读取同一带区的数据块、计算校验值、写入校验值等操作。

图2-3 RAID 3系统

当RAID 3中有数据盘出现损坏,不会影响用户读取数据。如果读取的数据块正好在损坏的磁盘上,则系统需要读取所有同一带区的数据块,然后根据校验值重新构建数据,系统性能就会受到影响。图2-3所示为RAID 3系统。

需要注意的是,RAID 3的校验磁盘在系统接受大量的写操作时,容易形成性能瓶颈,因而适用于有大量读操作,如Web系统以及信息查询等应用或持续大块数据流(例如非线性编辑)的应用。

5. RAID 4

RAID 4与RAID 3基本相同,区别在于条带化的方式不一样,RAID 4按照块的方式存放数据,所以在写操作时只涉及两块磁盘,即数据盘和校验盘,提高了系统的I/O性能。但对于随机的、分散的写操作,单一的校验盘往往成为性能瓶颈。

6. RAID 5

RAID 5是由至少3块磁盘实现的冗余磁盘阵列。RAID 5将数据分布在不同的磁盘上,并在所有磁盘上交叉地存取数据及奇偶校验信息,如图2-4所示。如果阵列中的一个磁盘失效,可以按奇偶校验码重建数据,不会导致数据的丢失,并且不影响数据的使用。

图2-4 RAID 5系统

RAID 5具有以下优点:

● 数据存储安全。当RAID 5阵列中的磁盘损坏时,只需将坏硬盘换掉,RAID控制系统即可根据校验位,在新硬盘中重建坏硬盘上的数据,并且不会造成数据的丢失。同时,在数据重建过程中,不会影响用户的使用和造成数据或系统中断。

● 读取速率较高。RAID 5不单独指定奇偶盘,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合小数据块和随机读写的数据。

● 磁盘利用率较高。在RADI 5阵列中,只有相当于一个磁盘的容量用来存储冗余数据。因此,阵列中的磁盘数量越多,磁盘的利用率就越高,如图2-5所示。

图2-5 RAID 5磁盘阵列容量

但RAID 5写入速率较低。RAID 5有“写损失”,尤其是写许多的小文件和随机数据时更明显。每一次写操作将产生4个实际的读/写操作,其中,两次读旧的数据及奇偶信息,两次写新的数据和奇偶信息。例如,要改变数据块1,控制器在计算校验块1~4之前,必须先读出数据块2~4,当计算出新的校验块1~4后,必须同时写入数据块1和校验块1~4。

在成本、可靠性和性能都同等重要时,可以采用RADI 5。事实上,RADI 5被广泛应用于各种类型的服务器,如文件服务器、应用程序服务器、数据库服务器、Web服务器和E-mail服务器等。表2-1所示为不同等级RAID的特性比较。

表2-1 不同RAID特性一览表

7. RAID 6

RAID 6提供两级冗余,即阵列中的两个驱动器失败时,阵列仍然能够继续工作。RAID 6的实现代价最高,因为RAID 6不仅要支持数据的恢复,还要支持校验的恢复,从而使RAID 6控制器比其他RAID级别更复杂和昂贵。

(1)RAID 6的校验数据

当对每个数据块执行写操作时,RAID 6做两个独立的校验计算,因此,RAID 6能够支持两个磁盘的失败。为了实现这个思想,目前基本上有如下两个方法:

● 使用多种算法,如XOR和某种其他的函数。

● 在不同的数据分条或者磁盘上,使用排列的数据。

(2)RAID 6的一维冗余

RAID 6的第一种方法是用两种不同的方法计算校验数据,其实现方法是用两个校验磁盘支持数据磁盘,第一个校验磁盘支持一种校验算法,而第二个磁盘支持另一种校验算法,使用两种算法称为P+Q校验。一维冗余是指使用另一个校验磁盘,但所包含的分块数据是相同的。例如,P校验值可能由XOR函数产生,这样,Q校验函数需要是其他的某种操作,一个很有力的侯选者是Reed Solomon误差修正编码的变体,这个误差修正编码一般用于磁盘和磁带驱动器。假如两个磁盘失败,那么,通过求解带有两个变量的方程,可以恢复两个磁盘上的数据,这是一个代数方法,可以由硬件辅助处理器加速求解。

8. RAID 0+1

RAID 0+1结合RAID 0及RAID 1的优点,采用两组RAID 0的磁盘阵列互为镜像,也就是,它们之间又成为了一个RAID 1的阵列。在每次写入数据时,磁盘阵列控制器会将数据同时写入两组“大容量阵列磁盘组”(RAID 0)中。数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。

(1)磁盘组

至少4个磁盘才能做成RAID 0+1。如果是磁盘A、B、C、D部署RAID 0+1方案,可以使用磁盘A、C部署为RAID 0,磁盘B、D建立部署为RAID 0,然后将两个RAID 0部署为RAID 1。如图2-6所示。

图2-6 RAID 0+1架构

RAID 0+1提供最佳的速度及可靠度。不过需要两倍的磁盘驱动器数目作为一个RAID 0,每一端的半数作为镜像用。在执行RAID 0+1时,至少需要4个磁盘驱动器,所以说RAID 0+1通过高成本换取的是 “高安全性”和“高性能”。RAID 0+1是存储性能和数据安全兼顾的方案,在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

最大容量:磁盘数×磁盘容量/2。例如,如果有6个磁盘使用RAID 0+1模式,可以将3个磁盘分为一组,创建RAID 0,这样总体存储性能就是每个磁盘的3倍(磁盘数×磁盘存储能力)。将另外3个磁盘作为它们的内容镜像。

(2)RAID 0+1的优缺点

RAID 0+1的优点:RAID 0+1阵列从理论上来说,能够经受住RAID 0阵列中任何一块磁盘的故障,因为该磁盘上所有的数据都被备份在RAID 1阵列中。在大部分情况下,如果两块磁盘出现故障就会影响整个阵列,因为很多Raid控制器会在Raid阵列中的某一块磁盘出现故障之后让RAID 0镜像离线(RAID 0阵列不提供任何冗余),因此只有剩下的RAID 0阵列在工作,这样系统将不存在冗余功能。简而言之,如果每个RAID 0阵列中都有一块磁盘出现故障,那么整个磁盘阵列将不工作。RAID 0+1提供了非常好的顺序或任意读写的性能。

RAID 0+1的缺点:只能使用磁盘阵列总体存储容量的50%。容错性不如RAID 1+0。对于绝大部分控制器来说,这种模式能够应对一个磁盘出现故障的情况。扩展方面受到限制且费用很高。

(3)RAID 0+1适用环境

RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,例如银行、金融、档案管理等环境中。

9. RAID 1+0

RAID 1+0由两组RAID 1的磁盘作RAID 0的镜像完成容错功能。RAID 1+0的磁盘空间利用率和RAID 0+1相同。其他参数可以参考RAID 0+1 r部分内容,RAID 1+0部署结构(以4个磁盘为例进行说明)如图2-7所示。

图2-7 RAID 1+0架构

RAID 0+1与RAID 1+0虽然都利用了RAID 0和RAID 1的优点,但两种架构之间存在区别,因此在数据安全性上也有所不同。

● Raid结构:从结构上来看,如果两种RAID都是由4块物理磁盘组成,分别定义为A盘、B盘、C盘、D盘。那么,RAID 0+1是先有两组RAID 0,第一组RAID 0(命名为AB)由A和B组成,第二组RAID 0(命名为CD)由C和D组成,然后再由AB和CD组成RAID 1,即两组RAID 0间是互为镜像的关系;而RAID 1+0是先有两组RAID 1,第一组RAID 1(命名为AB)由A和B组成,第二组RAID 0(命名为CD)由C和D组成,然后再由AB和CD组成RAID 0,两组RAID 1之间是不带校验的条带关系。

● 数据安全性:若有磁盘出现物理问题时,两种RAID的可靠性存在着相当大的差别。在RAID 0+1中,若有一块磁盘(假设为A盘)出现物理问题时,A盘所在的AB组RAID 0也不再工作,只剩下CD一组RAID 0提供服务,此时的安全性可想而知;而在RAID 1+0中,若同样有一块磁盘(假设为A盘)出现物理问题,除A盘以外,其他磁盘一样正常提供服务,虽然可靠性有所降低,但终归要强于第一种情况下的RAID 0。当然,当组成RAID的磁盘个数增加时,这种可靠性的差距会更大。

● 性能:相比而言RAID 1+0比RAID 0+1具有更高的可用性,而性能上几乎没有差异。

● 磁盘组成:RAID 0+1与RAID 1+0相比,唯一好处是组成两个RAID 0的磁盘个数和容量可以不一致,而RAID 1+0则要求所有的磁盘容量完全一致。

10. RAID 5+0

RAID 5+0也被称为分布奇偶位阵列条带,与RAID 0相同,跨磁盘抽取数据;又与RAID 5相同,使用分布式奇偶位。RAID 5+0提供数据可靠性,具备优秀的整体性能,并支持更大的卷尺寸。与RAID 1+0和RAID 3+0一样,即使两个物理磁盘发生故障(每个阵列中一个),也不会有数据丢失。

RAID 5+0最少需要6个磁盘,而且只能通过磁盘阵列控制器实现,适合需要高可靠性存储、高读取速度、高数据传输性能的应用。这些应用包括事务处理和有许多用户存取小文件的办公应用程序。