文/贾海鹏 申莹 宁华
RAID磁盘阵列异常处理
文/贾海鹏1申莹2宁华1
RAID磁盘阵列技术作为一种高效、安全的存储管理技术被广泛应用。本文对RAID的技术优势、级别分类及级别之间的性能差异进行深度分析,并根据多年的RAID管理经验,给出各种RAID出现异常后的处理方案,方案简单有效。
随着网络技术的发展,计算机的应用已渗透到各个领域,各行各业对数据存储的可靠性、稳定性及读写速率的要求也越来越高。数据的安全显得尤为重要,数据容错机制也备受关注。
作为网络存储主流技术的磁盘阵列,它通过数据分布存储、并行访问以及信息冗余等技术,极大地扩大存储容量,增强I/O请求处理能力、实现数据容错,提高数据的可靠性。
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种使用多磁盘驱动器来存储信息的信息存储系统,它可以使用多种不同的存储技术来实现不同级别的冗余、错误恢复和数据保护功能。
一个磁盘阵列就是多个磁盘驱动器的集合。磁盘阵列有物理驱动器阵列与逻辑驱动器阵列之分。物理驱动器阵列可以被分开或组合成一个或多个逻辑驱动器阵列,逻辑驱动器阵列可以是一个硬盘,也可以是硬盘中的一个分区,逻辑驱动器阵列由可以在操作系统中看到的逻辑驱动器组成。
RAID控制器就是在物理和逻辑驱动器阵列中管理数据存取的功能部件。它的功能可以通过硬件实现,也可以通过软件来完成。系统通过管理阵列中数据的存取,集中力量进行数据的运算处理,提高整个系统的性能。硬件RAID控制器一般用于处理大量数据的RAID模式。软件RAID需要占用一定的CPU处理时间,当处理大量数据时,应该使用硬件RAID控制器。
通过RAID可以在一个或多个磁盘出现故障的情况下防止数据丢失,而对磁盘阵列的操作与单个硬盘一样,由于把小容量的磁盘延伸虚拟成大容量的单一磁盘,用户不必规划数据在各磁盘的分布,它提高了磁盘空间的使用率,并使磁盘容量几乎可作无限的延伸。由于存取数据时各个磁盘一起作存取的动作,所以存取更为快捷,大幅加快数据存取的时间。用RAID技术进行数据信息的存储是一个符合服务器大容量硬盘、大量数据存储、保护数据安全性、提高运行速度等综合要求的信息数据存储方案。
表1 RAID性能差异比较
廉价性
RAID技术设计的基本思想就是把多个相对便宜的硬盘组合起来,虚拟成为一个硬盘阵列组,使性能达到甚至超过一个同样容量的专用硬盘,但是价格却低很多。
扩展存储性
多个硬盘组成更大的空间提供给服务器使用,并可高效恢复磁盘,保证数据的完整性。
提高吞吐量
多个磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率,大幅提高存储系统的数据吞吐量。
实现安全性
普通磁盘驱动器无法提供容错功能,而RAID和容错是建立在每个磁盘驱动器的硬件容错功能上的,所以它提供更高的安全性。
现有的RAID已经比较成熟,成为一种工业标准,通常将组成磁盘阵列的不同方式称为RAID级别。
随着RAID技术的不断发展,现在已拥有以RAID 0到RAID 7八种基本级别。另外,还有一些基本RAID级别的混合模式,如RAID 10、RAID 50、RAID 60等。
最为流行的是RAID 0、RAID 1、RAID 5、RAID 6四种,以及他们之间的混合模式,不同的级别意义和适用范围有所不同。下面我们将分别介绍这四种级别,并以表格形式比较各种RAID级别的性能差异。
RAID 0
它的数据并不是保存在一块硬盘上,而是分成数据块保存在不同的驱动器上,在N个磁盘上并行读写,读写速度理论上将会是单个相同硬盘的N倍,因此数据吞吐量比较大,负载也较为平衡。但由于没有数据冗余,它只是单纯地提高性能。如果RAID 0阵列中的一个磁盘失效将直接影响到所有数据,所以它不适合应用于数据安全性高的场合。
RAID 1
通常被称为RAID镜像,是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据,即所有数据都进行百分之百的备份。当原始数据繁忙时,可直接从镜像磁盘上读写,而不需要重组失效数据。
对于使用RAID 1结构的设备来说,RAID控制器必须能够同时对2个盘进行读操作和对两个镜像盘进行写操作。因为镜像结构在一组盘出现问题时,可以使用镜像,提高系统的容错能力。每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同,因为RAID 1的校验十分完备,对系统的处理能力有很大的影响,适用于对安全性要求极高但容量要求不高的系统。
RAID 5
一种分布式奇偶校验的独立磁盘结构, 是目前应用最广泛的RAID技术;也是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它把数据和相对应的奇偶校验信息存储到组成RAID 5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储在不同磁盘上。它使用一种特殊算法,可以计算出任何一个区域校验块的存储位置。这样就可以确保对校验块的任何读写操作都会在所有RAID磁盘中均衡进行,从而消除产生瓶颈的可能。
由N块硬盘构建的RAID 5阵列可以有N-1块硬盘的容量,存储空间利用率非常高。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。它的读效率很高,但是每一次写操作,将产生4个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息,块式的集体访问效率不错。当阵列中的1块硬盘发生故障,系统可以使用保存在其它硬盘上的奇偶校验信息恢复故障硬盘的数据,继续进行正常工作,但整个系统的性能将大大降低。
RAID 6
RAID 6是在RAID 5基础上,为了进一步加强数据保护而设计的一种RAID方式,实际上是一种扩展RAID 5级别。与RAID 5相比,它增加了第二个独立的奇偶校验信息块,除了每个硬盘上都有同级数据XOR校验区外,还有一个针对每个数据块的XOR校验区。两个独立的奇偶校验系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。
RAID 6的数据冗余性能非常好。但是,由于增加了一个校验,所以写入的效率较RAID 5还差,并且损失了两块有效的存储空间。表1对RAID 0、RAID 1、RAID 5、RAID 6性能进行比较。
RAID磁盘阵列出现异常的原因有很多,突然断电、重构RAID、磁盘顺序混乱、误删除、误格式化、误分区、病毒损坏、硬盘出现坏道或损坏等情况都可能导致RAID信息的异常。
网络管理员可以在使用专业数据恢复软件之前做一些常规的判断与处理。先行关闭计算机的电源,检查硬盘电源的连接,以及数据线是否与硬盘和RAID控制卡连接正常再重新开机。如果仍不能解决,可能是硬盘的故障,针对不同级别的RAID进行不同的处理。
RAID 0的异常处理。
不能简单地使用一块同规格的硬盘进行替换,因为RAID 0的数据是分布到每一块磁盘上,如果任何一块盘出现问题,数据就不会完整,从而导致RAID失效。所以硬盘必须按顺序做好标号后从RAID控制器中取出来,作为单盘进行重组。再根据标号按顺序依次从各个盘数据组成一个镜像文件,得到完整数据。
RAID 1异常处理
RAID l中的两块硬盘互为镜像。所有数据都是完全一样的,所以直接就可以用一块同规格的硬盘替换坏硬盘。
RAID 5、RAID 6异常处理
图1 异常处理的流程
RAID 5机制支持一块硬盘offline的情况下保证数据的正常访问,而RAID 6能够同时容忍两块硬盘offline,数据仍能正常访问,只不过R A I D的性能将大大减弱,成为降级模式。在RAID 5/RAID 6机制容忍硬盘损坏的范围内,及时发现并用同一规格的硬盘把坏盘进行替换,RAID将会自动重构,信息数据不受影响。如果硬盘损坏数量超出容忍范围,阵列便会失效,我们可以通过RAID控制台将失效的最后一块硬盘force online(强制上线), 成功后,依次将损坏硬盘换掉;如果不成功就必须对数据进行重组。重组过程与RAID 0过程类似。RAID异常处理的流程见图1。
(作者单位1为防空兵学院教育技术中心,2为防空兵学院干部处)