
RAID数据恢复
RAID是"Redundant Array of Independent Disk"的缩写,中文意思是独立冗余磁碟阵列。冗余磁碟阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬碟通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬碟使用。RAID的採用为存储系统(或者伺服器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。
基本介绍
- 中文名:冗余磁碟阵列数据恢复
- 外文名:Redundant Array of Independent Disk
- 诞生时间:1987年
- 提出机构:由美国加州大学伯克利分校提出
技术特点
RAID数据恢复是维实的技术特色之一。通过引进国外最新RAID专用权威工具,目前能够从底层原理进行分析重组拥有极高的成功率。针对双循环、RAID5 ADG、RAID6等业界疑难问题,唯实已经取得很大的技术突破,并已成功恢复以下作业系统下的RAID磁碟阵列的数据WindowsNT4.0、Windows2000、Windows2003、LINUX各个厂家的各种版本、UNIX各个厂家的各种版本。
伺服器往往是数据集中存储和管理的地方,在存储容量、存储安全和存储速度上都有一定的优势,正是由于这个优势,一个单位往往用伺服器存储极其重要的数据,一旦伺服器的数据丢失给用户带来的损失也非常惨重。
北京中关村数据恢复中心专业从事数据恢复领域的产品开发与技术服务。
北京中关村数据恢复中心自主研发RAID伺服器分析程式RAID3000;同时针各种RAID技术、开盘技术Mac,Linux、Unix、Solaris,SCOUnix,Hp,Unix,SQL资料库,oracle资料库等技术有相当的研究。
基本知识
raid磁碟阵列(Redundant Array of Independent Disks)简单的解释,就是将N个硬碟透过RAID Controller (分Hardware,Software )结合成虚拟单台大容量的硬碟使用,其特色是N个硬碟同时读取速度加快及提供容错 性Fault Tolerant,所以RAID是当成平时主要访问Data的Storage不是Backup Solution。
1988年美国加州大学伯克利分校的D. A. Patterson教授等首次在论文“A Case of Redundant Array of Inexpensive Disks”中提出了RAID概念[1],即廉价冗余磁碟阵列(Redundant Array of Inexpensive Disks)。由于当时大容量磁碟比较昂贵,RAID的基本思想是将多个容量较小、相对廉价的磁碟进行有机组合,从而以较低的成本获得与昂贵大容量磁碟相当的容量、性能、可靠性。随着磁碟成本和价格的不断降低,RAID可以使用大部分的磁碟,“廉价”已经毫无意义。因此,RAID谘询委员会(RAID Advisory Board, RAB)决定用“独立”替代“廉价”,于时RAID变成了独立磁碟冗余阵列(Redundant Array of Independent Disks)。但这仅仅是名称的变化,实质内容没有改变。
RAID这种设计思想很快被业界接纳,RAID技术作为高性能、高可靠的存储技术,已经得到了非常广泛的套用。RAID主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把RAID分为不同的等级,以满足不同数据套用的需求。D. A. Patterson等的论文中定义了RAID1 ~ RAID5原始RAID等级,1988年以来又扩展了RAID0和RAID6。近年来,存储厂商不断推出诸如RAID7、RAID10/01、RAID50、RAID53、RAID100等RAID等级,但这些并无统一的标準。目前业界公认的标準是RAID0 ~ RAID5,除RAID2外的四个等级被定为工业标準,而在实际套用领域中使用最多的RAID等级是RAID0、RAID1、RAID3、RAID5、RAID6和RAID10。
从实现角度看,RAID主要分为软RAID、硬RAID以及软硬混合RAID三种。软RAID所有功能均有作业系统和CPU来完成,没有独立的RAID控制/处理晶片和I/O处理晶片,效率自然最低。硬RAID配备了专门的RAID控制/处理晶片和I/O处理晶片以及阵列缓冲,不占用CPU资源,但成本很高。软硬混合RAID具备RAID控制/处理晶片,但缺乏I/O处理晶片,需要CPU和驱动程式来完成,性能和成本在软RAID和硬RAID之间。 RAID每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际套用中,应当根据用户的数据套用特点,综合考虑可用性、性能和成本来选择合适的RAID等级,以及具体的实现方式。
常见故障
(1)系统不能启动
(2)RAID信息破坏
(3)由于某块硬碟掉线,替换后重建失败,系统崩溃
(4)RAID信息丢失
(5)硬碟(单块或多块)掉线
(6)RAID卡损坏,更换后系统崩溃
(7)分区信息丢失
(8)硬碟坏道(物理、逻辑)
(9)重新配置RAID阵列信息
(10)磁碟顺序出错
(11)动态磁碟资料库丢失或损坏
(12)LINUX、UNIX系统启动不成功,或者分区不能mount,找不到分区
(13)rebuild中途失败
(14)rebuild成功后,分区找不到或者系统不能启动
(15)红灯不停闪,或者黄灯不停闪(有的黄灯闪表示正在读取)
(16)MBR损坏,DBR损坏
(17)磁碟单块,或者多块坏道。
技术规範
规範介绍
冗余磁碟阵列技术最初的研製目的是为了组合小的廉价磁碟来代替大的昂贵磁碟,以降低大批量数据存储的费用,同时也希望採用冗余信息的方式,使得磁碟失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术,并且能适当的提升数据传输速度。
过去RAID一直是高档伺服器才有缘享用,一直作为高档SCSI硬碟配套技术作套用。近来随着技术的发展和产品成本的不断下降,IDE硬碟性能有了很大提升,加之RAID晶片的普及,使得RAID也逐渐在个人电脑上得到套用。
那幺为何叫做冗余磁碟阵列呢?冗余的汉语意思即多余,重複。而磁碟阵列说明不仅仅是一个磁碟,而是一组磁碟。这时你应该明白了,它是利用重複的磁碟来处理数据,使得数据的稳定性得到提高。
工作原理
RAID如何实现数据存储的高稳定性呢?我们不妨来看一下它的工作原理。RAID按照实现原理的不同分为不同的级别,不同的级别之间工作模式是有区别的。整个的RAID结构是一些磁碟结构,通过对磁碟进行组合达到提高效率,减少错误的目的,不要因为这幺多名词而被吓坏了,它们的原理实际上十分简单。为了便于说明,下面示意图中的每个方块代表一个磁碟,竖的叫块或磁碟阵列,横称之为带区。
JBOD模式
JBOD通常又称为Span。它是在逻辑上将几个物理磁碟一个接一个连起来, 组成一个大的逻辑磁碟。JBOD不提供容错,该阵列的容量等于组成Span的所有磁碟的容量的总和。JBOD严格意义上说,不属于RAID的範围。不过现在很多IDE RAID控制晶片都带这种模式,JBOD就是简单的硬碟容量叠加,但系统处理时并没有採用并行的方式,写入数据的时候就是先写的一块硬碟,写满了再写第二块硬碟……
实际套用中最常见的是RAID0 RAID1 RAID5 和RAID10 由于在大多数场合,RAID5包含了RAID2-4的优点,所以RAID2-4基本退出市场
现在,一般认为RAID2-4只用于RAID开发研究
上面是对RAID原理的叙述,而我们Pcfans最关心的是RAID的套用。我们日常使用IDE硬碟,而且很容易买到IDE RAID卡和集成RAID晶片的主机板。所以跟我们最贴近的是IDE RAID。限于套用级别很低,IDE RAID多数只支持RAID 0,RAID 1,RAID 0+1,JBOD模式.
RAID中主要三个关键概念和技术
镜像(Mirroring)、数据条带(Data Stripping)和数据校验(Data parity)[3][4][5]。镜像,将数据複製到多个磁碟,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低,确保数据正确地写到多个磁碟需要更多的时间消耗。数据条带,将数据分片保存在多个不同的磁碟,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁碟上数据进行读写操作,从而获得非常可观的I/O性能提升。数据校验,利用冗余数据进行数据错误检测和修复,冗余数据通常採用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁碟阵列的可靠性、鲁棒性和容错能力。不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。不同等级的RAID採用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和I/O性能。至于设计何种RAID(甚至新的等级或类型)或採用何种模式的RAID,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择。
RAID思想从提出后就广泛被业界所接纳,存储工业界投入了大量的时间和财力来研究和开发相关产品。而且,随着处理器、记忆体、计算机接口等技术的不断发展,RAID不断地发展和革新,在计算机存储领域得到了广泛的套用,从高端系统逐渐延伸到普通的中低端系统。RAID技术如此流行,源于其具有显着的特徵和优势,基本可以满足大部分的数据存储需求。总体说来,RAID主要优势有如下几点:
(1) 大容量
这是RAID的一个显然优势,它扩大了磁碟的容量,由多个磁碟组成的RAID系统具有海量的存储空间。现在单个磁碟的容量就可以到1TB以上,这样RAID的存储容量就可以达到PB级,大多数的存储需求都可以满足。一般来说,RAID可用容量要小于所有成员磁碟的总容量。不同等级的RAID算法需要一定的冗余开销,具体容量开销与採用算法相关。如果已知RAID算法和容量,可以计算出RAID的可用容量。通常,RAID容量利用率在50% ~ 90%之间。
(2) 高性能
RAID的高性能受益于数据条带化技术。单个磁碟的I/O性能受到接口、频宽等计算机技术的限制,性能往往很有限,容易成为系统性能的瓶颈。通过数据条带化,RAID将数据I/O分散到各个成员磁碟上,从而获得比单个磁碟成倍增长的聚合I/O性能。
(3) 可靠性
可用性和可靠性是RAID的另一个重要特徵。从理论上讲,由多个磁碟组成的RAID系统在可靠性方面应该比单个磁碟要差。这里有个隐含假定:单个磁碟故障将导致整个RAID不可用。RAID採用镜像和数据校验等数据冗余技术,打破了这个假定。镜像是最为原始的冗余技术,把某组磁碟驱动器上的数据完全複製到另一组磁碟驱动器上,保证总有数据副本可用。比起镜像50%的冗余开销,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。RAID冗余技术大幅提升数据可用性和可靠性,保证了若干磁碟出错时,不会导致数据的丢失,不影响系统的连续运行。
(4) 可管理性
实际上,RAID是一种虚拟化技术,它对多个物理磁碟驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说,RAID是一个单一的、快速可靠的大容量磁碟驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储套用系统数据。从用户套用角度看,可使存储系统简单易用,管理也很便利。由于RAID内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。RAID可以动态增减磁碟驱动器,可自动进行数据校验和数据重建,这些都可以大大简化管理工作。
标準RAID等级
SNIA、Berkeley等组织机构把RAID0 、RAID1、RAID2、RAID3、 RAID4、RAID5、RAID6七个等级定为标準的RAID等级,这也被业界和学术界所公认。标準等级是最基本的RAID配置集合,单独或综合利用数据条带、镜像和数据校验技术。标準RAID可以组合,即RAID组合等级,满足对性能、安全性、可靠性要求更高的存储套用需求。
软RAID :
软RAID没有专用的控制晶片和I/O晶片,完全由作业系统和CPU来实现所的RAID的功能。现代作业系统基本上都提供软RAID支持,通过在磁碟设备驱动程式上添加一个软体层,提供一个物理驱动器与逻辑驱动器之间的抽象层。目前,作业系统支持的最常见的RAID等级有RAID0、RAID1、RAID10、RAID01和RAID5等。比如,Windows Server支持RAID0、RAID1和RAID5三种等级,Linux支持RAID0、RAID1、RAID4、RAID5、RAID6等,Mac OS X Server、FreeBSD、NetBSD、OpenBSD、Solaris等作业系统也都支持相应的RAID等级。
软RAID的配置管理和数据恢复都比较简单,但是RAID所有任务的处理完全由CPU来完成,如计算校验值,所以执行效率比较低下,这种方式需要消耗大量的运算资源,支持RAID模式较少,很难广泛套用。 软RAID由作业系统来实现,因此系统所在分区不能作为RAID的逻辑成员磁碟,软RAID不能保护系统盘D。对于部分作业系统而言,RAID的配置信息保存在系统信息中,而不是单独以档案形式保存在磁碟上。这样当系统意外崩溃而需要重新安装时,RAID信息就会丢失。另外,磁碟的容错技术并不等于完全支持线上更换、热插拔或热交换,能否支持错误磁碟的热交换与作业系统实现相关,有的作业系统热交换。
硬RAID :
硬RAID拥有自己的RAID控制处理与I/O处理晶片,甚至还有阵列缓冲,对CPU的占用率和整体性能是三类实现中最优的,但实现成本也最高的。硬RAID通常都支持热交换技术,在系统运行下更换故障磁碟。
硬RAID包含RAID卡和主机板上集成的RAID晶片,伺服器平台多採用RAID卡。RAID卡由RAID核心处理晶片(RAID卡上的CPU)、连线埠、快取和电池4部分组成。其中,连线埠是指RAID卡支持的磁碟接口类型,如IDE/ATA、SCSI、SATA、SAS、FC等接口。 5.3软硬混合RAID 软RAID性能欠佳,而且不能保护系统分区,因此很难套用于桌面系统。而硬RAID成本非常昂贵,不同RAID相互独立,不具互操作性。因此,人们採取软体与硬体结合的方式来实现RAID,从而获得在性能和成本上的一个折中,即较高的性价比。
这种RAID虽然採用了处理控制晶片,但是为了节省成本,晶片往往比较廉价且处理能力较弱,RAID的任务处理大部分还是通过固件驱动程式由CPU来完成。 6 RAID套用选择 RAID等级的选择主要有三个因素,即数据可用性、I/O性能和成本。
目前,在实际套用中常见的主流RAID等级是RAID0,RAID1,RAID3,RAID5,RAID6和RAID10,它们之间的技术对比情况如表1所示。如果不要求可用性,选择RAID0以获得高性能。如果可用性和性能是重要的,而成本不是一个主要因素,则根据磁碟数量选择RAID1。如果可用性,成本和性能都同样重要,则根据一般的数据传输和磁碟数量选择RAID3或RAID5。在实际套用中,应当根据用户的数据套用特点和具体情况,综合考虑可用性、性能和成本来选择合适的RAID等级。