RAID是Redundant Array of Independent Disk的缩写,中文意思是独立
冗余磁盘阵列。
冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大
容量的硬盘使用。RAID的采用为存储系统(或者
服务器的内置存储)带来巨大利益,其中提高
传输速率和提供容错功能是最大的优点。
技术特点
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信息丢失
(6)RAID卡损坏,更换后系统崩溃
(7)分区信息丢失
(10)磁盘顺序出错
(12)LINUX、UNIX系统启动不成功,或者分区不能mount,找不到分区
(13)rebuild中途失败
(14)rebuild成功后,分区找不到或者系统不能启动
(15)红灯不停闪,或者黄灯不停闪(有的黄灯闪表示正在读取)
(16)MBR损坏,DBR损坏
技术规范
规范介绍
冗余
磁盘阵列技术最初的研制目的是为了组合小的廉价磁盘来代替大的昂贵磁盘,以降低大批量数据存储的费用,同时也希望采用冗余信息的方式,使得磁盘失效时不会使对数据的访问受损失,从而开发出一定水平的数据保护技术,并且能适当的提升
数据传输速度。
过去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等级。