第1章RAID技术详解自从计算机问世以来,存储技术就伴随着计算机的发展而飞速发展,但从重要性和影响力方面来说,没有哪项存储技术的发明能够与RAID相提并论,RAID技术理念引发了数据存储的重大变革,也成为现在虚拟化存储技术的奠基石。RAID技术有各种级别之分,包括RAID-0、RAID-1、RAID-10、RAID-1E、RAID-2、RAID-3、RAID-4、RAID-5、RAID-5E、RAID-5EE、RAID双循环、RAID-6、JBOD等,本章将详细讲解各个级别RAID的数据组织原理、故障原因分析及其数据恢复思路。1.1什么是RAID这一节首先对RAID做一个基本介绍,包括RAID的概念、RAID的作用、RAID级别的分类、软RAID和硬RAID的组建方法,同时还会对RAID中常用的一些专业术语进行讲解。1.1.1RAID基础知识RAID最初是1987年在加利福尼亚大学进行的一个科研项目,后来由伯克利分校的D.A.Patterson教授在1988年正式提出。RAID(RedundantArrayofInexpensiveDisks),直译为“廉价冗余磁盘阵列”,最初是为了组合多块小容量的廉价磁盘来代替大容量的昂贵磁盘,同时希望在磁盘失效时不会对数据造成影响而开发出的一种磁盘存储技术。后来随着硬盘研发技术的不断提升,硬盘的容量越来越大,成本却在不断下降,所以RAID中Inexpensive(廉价)一词已经失去意义,于是将这个词用Independent(独立)来替代,RAID就成了“独立冗余磁盘阵列”,也简称为“磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。1.1.2RAID能解决什么问题通俗地说,RAID就是通过将多个磁盘按照一定的形式和方案组织起来,通过这样的形式能够获取比单个硬盘更高的速度、更好的稳定性、更大的存储能力的存储解决方案,用户不必关心磁盘阵列究竟由多少块硬盘组成,使用中整个阵列就如同一块硬盘一样。所以,RAID技术能够为计算机系统提供以下三个方面的优异性能:RAID数据恢复技术揭秘21.提供更大的存储空间目前容量为2TB的硬盘已经在市场上销售,2TB的存储空间对于个人用户来说已经很大了,但对于企业用户来说,还远远不够,那么使用RAID技术,就可以把多块硬盘组成一个更大的存储空间供用户使用。比如,利用RAID-0技术把5块2TB的硬盘组织起来,能够提供10TB的存储空间。2.提供更快的传输速度从计算机问世以来的这几十年间,CPU的处理速度以几何数量级迅猛增长,著名的摩尔定律告诉我们,CUP的性能每隔18个月就会提高一倍,可见其速度增长之快。然而,硬盘作为计算机中最重要的存储设备,在容量飞速增长的同时,速度却提高缓慢,已经成为计算机速度发展的瓶颈。如果采用RAID技术,可以让很多硬盘同时传输数据,而这些硬盘在逻辑上又表现为一块硬盘,所以使用RAID可以达到单个硬盘几倍,甚至几十倍的速率。也就是说,RAID技术可以通过在多个硬盘上同时存储和读取数据的方式来大幅提高存储系统的数据吞吐量。3.提供更高的安全性RAID可以通过数据校验提供容错功能,在很多RAID模式中都有较为完备的冗余措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错性,让系统的稳定性更好、安全性更高。1.1.3RAID级别简介RAID技术针对不同的应用需求而使用不同的技术类别,这些类别被称为RAID级别,每一种级别代表一种技术。目前业界公认的标准是RAID-0级、RAID-1级、RAID-2级、RAID-3级、RAID-4级、RAID-5级,这些不同的级别并不代表技术的高低,也就是说,RAID-5并不高于RAID-0,RAID-1也不低于RAID-4,至于该选择哪一种RAID级别的产品,需要根据用户的操作环境和应用需求而定,与级别的高低没有必然的关系。在上面提到的RAID-0~RAID-5这6个级别之间,还可以互相组合出新的RAID形式,如RAID-0与RAID-1组合成为RAID-10;RAID-0与RAID-5组合成为RAID-50等。除了RAID-0~RAID-5这6个级别以及它们之间的组合以外,目前很多服务器和存储厂商还发布了很多非标准RAID,例如,IBM公司研发的RAID-1E、RAID-5E、RAID-5EE;康柏公司研发的双循环RAID-5,因康柏公司已被惠普公司收购,所以这种RAID级别也被称为惠普双循环。近几年很多厂商又推出一种新的RAID级别,即RAID-6,因为RAID-6也不是标准RAID,所以厂商各有各的标准,其中包括Intel公司的P+Q双校验RAID-6、惠普公司的RAID-ADG、NetApp公司的双异或RAID-6(也称为RAID-DP),另外还有X-Code编码RAID-6、ZZS编码RAID-6、Park编码RAID-6、EVENODD编码RAID-6等。从上面的介绍可以看出,RAID-6确实有太多的标准,但除了P+Q双校验RAID-6以第1章RAID技术详解3外,其他形式的RAID-6都应该看作是“准RAID6”。另外,有些RAID控制器厂商还支持一种叫做JBOD的结构,严格地说这种结构不能算作RAID,仅仅是把多块硬盘捆绑起来使用。对于上文提到的各种级别的RAID形式,1.1.4节将详细讲述。1.1.4如何实现RAID前文介绍了RAID的基础知识和级别,那么RAID是如何构建出来的呢?有两种方法可以实现RAID,一种是使用RAID控制器组建RAID,称为硬RAID;另外一种是直接用程序创建RAID,称为软RAID,下面分别介绍。1.硬RAID创建方法硬RAID需要RAID控制器才能实现,RAID控制器也称为RAID卡。在前些年RAID卡的价格是很高昂的,并且只能支持SCSI接口的硬盘,往往只在高档服务器上才能使用。近来随着技术的发展和产品成本的不断下降,IDE硬盘和SATA硬盘的性能都有了很大提升,加之RAID芯片的普及,使得RAID技术也应用到了IDE硬盘和SATA硬盘上。图1-1是一个4通道的IDE-RAID卡,可连接8块IDE硬盘。图1-2是一个4通道的SATA-RAID卡,可连接4块SATA硬盘。图1-14通道的IDE-RAID卡图1-24通道的SATA-RAID卡随着SAS硬盘的普及,其优越的性能使SAS硬盘逐渐替代了专业的SCSI硬盘,成为服务器的主流硬盘,图1-3是一个4通道的SAS-RAID卡,它也可以向下兼容SATA硬盘。有了RAID卡,把RAID卡插到计算机主板上,再连接几块硬盘,就可以配置RAID了,下面演示一下这个过程。首先启动计算机并进入RAID配置界面,如图1-4所示。选择Configure下的NewConfiguration,开RAID数据恢复技术揭秘4始一个新的配置。如果原先已经配置过RAID,新的配置将会破坏原有配置,所以系统会询问是否继续,如图1-5所示。图1-4RAID配置界面图1-5询问是否继续选择Yes继续进行,然后进入通道的选择,该RAID卡支持双通道,选“通道-0”,并把该通道的四块硬盘加入进来,如图1-6所示。图1-6将四块硬盘加入通道-0选中通道和硬盘后,按F10键进行配置,将这四块盘配置为RAID-5的类型,如图1-7所示。第1章RAID技术详解5图1-7配置为RAID-5设置好配置项目后选Accept并按Enter键,一个四块盘的RAID-5就配置好了,这时可以按F3键查看一下配置好的逻辑盘,如图1-8所示。图1-8查看逻辑盘RAID-5配置好以后,还需要做一下Initialize(初始化),逻辑盘就可以使用了。另外,除了可以用RAID卡创建RAID,目前还有很多主机板集成RAID功能,也可以创建RAID,其功能相当于RAID卡,但占CPU资源很严重,所以这种不能算纯粹的硬RAID,可以算半软半硬吧。2.软RAID创建方法除了使用RAID卡或者主板所带的芯片实现磁盘阵列外,还可以在一些操作系统中直接利用软件方式实现RAID功能,例如Windows2000/XP/2003等系统中都内置了RAID功能。为了使用软件RAID功能,首先必须将基本磁盘转换为动态磁盘(动态磁盘的详细讲解请参见第3章),下面以三块硬盘为例,讲解创建软RAID-5的过程。(1)连接硬盘。创建RAID-5卷至少需要三块硬盘,先在计算机上连接三块硬盘,连接好以后启动系统进入“磁盘管理”,可以看到三块新接的4.3GB的硬盘,如图1-9所示。RAID数据恢复技术揭秘6图1-9三块新的4.3GB硬盘(2)将基本磁盘转换为动态磁盘。在磁盘1或磁盘2或磁盘3上单击鼠标右键,选择“升级到动态磁盘”命令,出现对话框后在磁盘1、磁盘2及磁盘3前面打勾并确定,几秒钟后升级就完成了,此时在“磁盘管理”中磁盘1、磁盘2和磁盘3都已经变成动态磁盘了,如图1-10和图1-11所示。图1-10选定需要转换的磁盘图1-11三块基本磁盘被转换为动态磁盘(3)创建RAID-5卷。在磁盘1上右击并选择“创建卷”命令,单击“下一步”按钮后选择RAID-5,将磁盘1、磁盘2及磁盘3添加到右边的“已选的”列表框中,如图1-12所示。图1-12将三块盘添加到“已选的”列表框中第1章RAID技术详解7然后Windows提示指派驱动器号,可以由Windows指定也可手动分配,本例中选择了L作为RAID-5卷的驱动器号,如图1-13所示。图1-13选择L为RAID-5卷的驱动号然后需要进行格式化,可以选择FAT32或NTFS作为RAID5卷的文件系统,然后选择簇的大小和卷标,簇越大磁盘性能越高,但造成的空间浪费也越大,选择“默认”由Windows自动设定,在“执行快速格式化”上打勾并确定,经过几秒钟的格式化后,屏幕上半部分就出现了一个驱动器号为L,容量为三块磁盘总容量的2/3,这就是我们要的RAID-5阵列,如图1-14所示。图1-14创建好的RAID-5卷L到这里,一个软RAID-5的逻辑盘就创建成功了。1.1.5RAID专业术语详解在RAID数据恢复中,会经常用到一些概念,为了便于对后面内容的学习,有必要先把这些概念理解清楚。1.物理盘物理盘是指创建RAID所用的每块独立的物理硬盘,创建为RAID之后,它们就称为RAID数据恢复技术揭秘8RAID的成员盘。2.逻辑盘多块物理盘经RAID卡或者软RAID程序配置为RAID之后,多块物理盘就组成了一块新的硬盘,这个硬盘是由RAID控制器或RAID程序虚拟出来的,称为逻辑盘,也称作虚拟盘或容器。3.逻辑卷RAID中的逻辑卷是由逻辑盘形成的虚拟空间,也称为逻辑分区。4.热备盘热备盘是指RAID中空闲、加电并待机的硬盘,当RAID中某个成员盘发生故障后,RAID控制器能够自动用热备盘代替故障磁盘,并通过算法把原来储存在故障磁盘上的数据重建到热备盘上,保证RAID的完整性。另外,系统管理员可以更换发生故障的硬盘,并把更换后的硬盘指定为新的热备盘。5.去RAID化RAID出现故障后,逻辑盘就无法被系统识别,这个时候物理盘可能部分有故障,也可能完全没有故障,为了恢复RAID中的数据,需要把物理盘从服务器的槽位上取下来进行检测和分析,物理盘离开了服务器的槽位,也就离开了RAID控制器,这些物理盘就被“去RAID化”了。6.盘序多块物理盘在创建RAID时,配置程序会为这些物理盘安排一个先后顺序,RAID创建完成之后,这个顺序就被确定下来,不会再改变,这就是RAID的盘序。有一点请注意,RAID的盘序并不一定跟物理盘插在服务器上的硬盘槽位顺序相符。为了对应关系的明确,在后面内容的讲解中,把RAID的盘序从0开始编排,RAID中盘序排在第一位的物理盘称为“0号盘”,依次往后就是“1号盘”、“2号盘”等。在恢复RAID数据前需要将物理盘“去RAID化”,把这些RAID中的成员盘抽离服务器槽位时,应该按照它们的槽位顺序编上号码,并标明在物理盘上,一般是用硬盘0、硬盘1这种名称进行标示,但请注意,物理盘的这种顺序并不是RAID的“盘序”,因为硬盘0并不一定是“0号盘”