设为首页收藏本站返回DOIT

DOIT社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8067|回复: 14

《RAID数据恢复技术揭秘》:第1章 RAID技术详解-1.1-1.2

[复制链接]
发表于 2010-12-17 13:48:59 | 显示全部楼层 |阅读模式
1
RAID
技术详解

自从计算机问世以来,存储技术就伴随着计算机的发展而飞速发展,但从重要性和影响力方面来说,没有哪项存储技术的发明能够与RAID相提并论,RAID技术理念引发了数据存储的重大变革,也成为现在虚拟化存储技术的奠基石。
RAID技术有各种级别之分,包括RAID-0RAID-1RAID-10RAID-1ERAID-2RAID-3RAID-4RAID-5RAID-5ERAID-5EERAID双循环、RAID-6JBOD等,本章将详细讲解各个级别RAID的数据组织原理、故障原因分析及其数据恢复思路。
1.1
什么是RAID

这一节我们首先对RAID做一个基本介绍,包括RAID的概念、RAID的作用、RAID级别的分类、软RAID和硬RAID的组建方法,同时还会对RAID中常用的一些专业术语进行讲解。
1.1.1
RAID基础知识RAID最初是1987年在加利福尼亚大学进行的一个科研项目,后来由伯克利分校的D.A.Patterson教授在1988年正式提出。
RAIDRedundantArray of Inexpensive Disks的缩写,直译为“廉价冗余磁盘阵列”,最初是为了组合多块小容量的廉价磁盘来代替大容量的昂贵磁盘,同时希望在磁盘失效时不会对数据造成影响而开发出的一种磁盘存储技术。
后来随着硬盘研发技术的不断提升,硬盘的容量越来越大,成本却在不断下降,所以RAID中“Inexpensive(廉价)”一词已经失去意义,于是将这个词用“Independent(独立)”来替代,RAID就成了“独立冗余磁盘阵列”,也简称为“磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。
1.1.2
RAID能解决什么问题通俗地说,RAID就是通过将多个磁盘按照一定的形式和方案组织起来,通过这样的形式能够获取比单个硬盘更高的速度、更好的稳定性、更大的存储能力的存储解决方案,用户不必关心磁盘阵列究竟由多少块硬盘组成,使用中整个阵列就如同一块硬盘一样。所以,RAID技术能够为计算机系统提供以下三个方面的优异性能:
1)提供更大的存储空间
目前容量为2TB的硬盘已经在市场上销售,2TB的存储空间对于个人用户来说已经很大了,但对于企业用户来说,还远远不够,那么使用RAID技术,就可以把多块硬盘组成一个更大的存储空间供用户使用。比如,利用RAID-0技术把52TB的硬盘组织起来,能够提供10TB的存储空间。
2)提供更快的传输速度
从计算机问世以来的这几十年间,CPU的处理速度以几何数量级迅猛增长,著名的摩尔定律告诉我们,CUP的性能每隔18个月就会提高一倍,可见其速度增长之快。然而,硬盘作为计算机中最重要的存储设备,在容量飞速增长的同时,速度却提高缓慢,已经成为计算机速度发展的瓶颈。
如果采用RAID技术,可以让很多硬盘同时传输数据,而这些硬盘在逻辑上又表现为一块硬盘,所以使用RAID可以达到单个硬盘几倍、甚至几十倍的速率。
也就是说,RAID技术可以通过在多个硬盘上同时存储和读取数据的方式来大幅提高存储系统的数据吞吐量。
3)提供更高的安全性
RAID可以通过数据校验提供容错功能,在很多RAID模式中都有较为完备的冗余措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错性,让系统的稳定性更好、安全性更高。
1.1.3
RAID级别简介RAID技术针对不同的应用需求而使用的不同的技术类别,这些类别被称为RAID级别,每一种级别代表一种技术。目前业界公认的标准是RAID-0级、RAID-1级、RAID-2级、RAID-3级、RAID-4级、RAID-5级,这些不同的级别并不代表技术的高低,也就是说,RAID-5并不高于RAID-0RAID-1也不低于RAID-4,至于该选择那一种RAID级别的产品,需要根据用户的操作环境和应用需求而定,与级别的高低没有必然的关系。
在上面提到的RAID-0RAID-56个级别之间,还可以互相组合出新的RAID形式,如RAID-0RAID-1组合成为RAID-10RAID-0RAID-5组合成为RAID-50等。
除了RAID-0RAID-56个级别以及它们之间的组合以外,目前很多服务器和存储厂商还发布了很多非标准RAID,例如,IBM公司研发的RAID-1ERAID-5ERAID-5EE;康柏公司研发的双循环RAID-5,因康柏公司已被惠普公司收购,所以这种RAID级别也被称为惠普双循环。
近几年很多厂商又推出一种新的RAID级别,即RAID-6,因为RAID-6也不是标准RAID,所以厂商各有各的标准,其中包括Intel公司的PQ双校验RAID-6、惠普公司的RAID-ADGNetApp公司的双异或RAID-6(也称为RAID-DP),另外还有X-Code编码RAID-6ZZS编码RAID-6Park编码RAID-6EVENODD编码RAID-6等。
从上面的介绍可以看出,RAID-6确实有太多的标准,但除了PQ双校验RAID-6以外,其它形式的RAID-6都应该看作是“准RAID6”。
另外,有些RAID控制器厂商还支持一种叫做JBOD的结构,严格地说这种结构不能算作RAID,仅仅是把多块硬盘捆绑起来使用。
对于上文提到的各种级别的RAID形式,本书下一节将详细讲述。
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硬盘上。
 楼主| 发表于 2010-12-17 13:59:51 | 显示全部楼层
1-1是一个4通道的IDE-RAID卡,可连接8IDE硬盘。


1-1
4通道的IDE-RAID

1-2是一个4通道的SATA-RAID卡,可连接4SATA硬盘。

   
1-2
4通道的SATA-RAID

随着SAS硬盘的普及,其优越的性能使SAS硬盘逐渐替代了专业的SCSI硬盘,成为服务器的主流硬盘,图1-3是一个4通道的SAS-RAID卡,它也可以向下兼容SATA硬盘。


1-3
4通道的SAS-RAID

有了RAID卡,把RAID卡插到计算机主板上,再连接几块硬盘,就可以配置RAID了,下面演示一下这个过程。

首先启动计算机并进入RAID配置界面,如图1-4所示。

1-4
RAID配置界面

选择“Configure”下的“New Configuration”,开始一个新的配置。如果原先已经配置过RAID,新的配置将会破坏原有配置,所以系统会询问是否继续,如图1-5所示。


1-5
询问是否继续

选择“Yes”继续进行,然后进入通道的选择,该RAID卡支持双通道,我们选“通道-0”,并把该通道的四块硬盘加入进来,如图1-6所示。

1-6
将四块硬盘加入通道-0
选中通道和硬盘后,按F10键进行配置,我们将这四块盘配置为RAID-5的类型,如图1-7所示。

1-7
配置为RAID-5
设置好配置项目后选“Accept”并回车,一个四块盘的RAID-5就配置好了,这时可以按F3键查看一下配置好的逻辑盘,如图1-8所示。

1-8
查看逻辑盘

RAID-5配置好以后,还需要做一下Initialize(初始化),逻辑盘就可以使用了。

另外,除了可以用RAID卡创建RAID,目前还有很多主机板集成RAID功能,也可以创建RAID,其功能相当于RAID卡,但占CPU资源很严重,所以这种不能算纯粹的硬RAID,可以算半软半硬吧。
 楼主| 发表于 2010-12-17 14:08:39 | 显示全部楼层
2.软RAID创建方法

除了使用RAID卡或者主板所带的芯片实现磁盘阵列外,我们还可以在一些操作系统中直接利用软件方式实现RAID功能,例如Windows2000/XP/2003等系统中都内置了RAID功能。

为了使用软件RAID功能,首先必须将基本磁盘转换为动态磁盘(动态磁盘的详细讲解请参看本书第三章),下面以三块硬盘为例,讲解创建软RAID-5的过程。

步骤一:连接硬盘

创建RAID-5卷至少需要三块硬盘,先在计算机上连接三块硬盘,连接好以后启动系统进入“磁盘管理”,可以看到三块新接的4.3GB的硬盘,如图1-9所示。

1-9
三块新的4.3GB硬盘

步骤二:将基本磁盘转换为动态磁盘。

在磁盘1或磁盘2或磁盘3上点击鼠标右键,选择“升级到动态磁盘”,出现对话框后在磁盘1、磁盘2及磁盘3前面打勾并确定,几秒钟后升级就完成了,此时在“磁盘管理”中磁盘1、磁盘2和磁盘3都已经变成动态磁盘了,如图1-101-11所示。


1-10
选定需要转换的磁盘

1-11
三块基本磁盘被转换为动态磁盘

步骤三:创建RAID-5卷。

在磁盘1上点右键并选择“创建卷”,点击“下一步”后选择“RAID-5”,将磁盘1、磁盘2及磁盘3添加到右边的“已选的”一栏中,如图1-12所示。


1-12
将三块盘添加到“已选的”对话框中

然后Windows提示指派驱动器号,可以由Windwos指定也可手动分配,本例中我选择了“L”作为RAID-5卷的驱动器号,如图1-13所示。






1-13
选择
L”为RAID5卷的驱动号

然后需要进行格式化,可以选择FAT32NTFS作为RAID5卷的文件系统,然后选择簇的大小和卷标,簇越大磁盘性能越高但造成的空间浪费也越大,我们选择“默认”由Windows自动设定,在“执行快速格式化”上打勾并确定,经过几秒钟的格式化后,屏幕上半部分就出现了一个驱动器号为“L”,容量为三块磁盘总容量的三分之二,这就是我们要的RAID-5阵列,如图1-14所示。

1-14
创建好的RAID5卷“L

到这里,一个软RAID-5的逻辑盘就创建成功了。
1.1.5
RAID专业术语详解RAID数据恢复中,会经常用到一些概念,为了便于对后面内容的学习,有必要先把这些概念理解清楚。

1)物理盘

物理盘是指创建RAID所用的每块独立的物理硬盘,创建为RAID之后,它们就称为RAID的成员盘。

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号盘”,“硬盘1
也并不一定是
1号盘”。

7)条带

RAID创建过程中,配置程序把每块物理盘分割为一个一个的单元,每个单元的大小为2N次方扇区,N取整数,是一个可变量,这个单元就是RAID的条带(Stripe),它是RAID处理数据的基本单位。在RAID配置时可以让配置程序默认条带大小,也可以手动选择条带大小。

条带也被称为“带区”或者“块”,本书有时会用“块”这个说法代替“条带”,“块大小”也就是指每个条带包含的扇区数。

每块物理盘的条带都有一个编号,为了对应关系的明确,我们把条带编号也定义为从0开始,每块物理盘的第一个条带都称为0号条带,或者0号块,然后顺序往下编排。

8)盘数

构成RAID的物理盘的个数称为“盘数”,也称为“条带数”,在RAID配置程序中经常使用条带数表示RAID中的成员盘个数,如图1-15所示。

1-15
“条带数”和“条带大小”

1-15中“Stripes”就是指条带数,当前值为4,说明该RAID4块物理盘组成。后面的“StrpSz”就是“StripeSize”,指条带大小,当前值为64KB,说明每个条带包含128个扇区。

9)条带组

在一个RAID中,每块物理盘被划分成一个个的条带,每个条带也都有一个编号,并且整个RAID中所有成员盘的条带大小都一样,那么所有RAID成员盘中编号相同的一组条带就称为“条带组”,如图1-16所示。

1-16
条带组

1-16是一个RAID-5的结构,其中条带“ABCP0都是每块成员盘中的0号条带,它们共同构成了
“条带组0,也称为“0号条带组”。

1.2
RAID-0
技术详解


RAID-0是无冗余、无校验的磁盘阵列,实现RAID-0至少需要两个以上硬盘,它将两个以上的硬盘合并成一块,数据同时分散在每块硬盘中,因为带宽加倍,所以读写速度加倍,RAID-0的理论速度是单块硬盘的N倍,但是由于数据并不是保存在一个硬盘上,而是分成数据块保存在不同硬盘上,所以安全性也下降N倍,只要任何一块硬盘损坏就会丢失所有数据。
1.2.1
RAID-0数据组织原理RAID-0是最简单的一种RAID形式,目的是把多块物理盘连接在一起形成一个容量更大的存储设备,RAID-0逻辑盘的容量等于物理盘的容量乘以成员盘的数目。

1-17是一个由两块物理盘组成的RAID-0


  
1-17
两块物理盘组成的RAID-0数据分布图

在图1-17中,两块物理盘由RAID控制器组建成RAID-0逻辑盘,RAID控制器将物理盘划分为一个个的条带,其中数字
0”是物理盘0的第一个条带,数字“2”是物理盘0的第二个条带,以此类推,一直划分到物理盘0的末尾;而数字“1”是物理盘1的第一个条带,数字“3”是物理盘1的第二个条带,以此类推,一直划分到物理盘1的末尾。RAID控制器把每块物理盘以条带为单位并行处理,虚拟出一个新的结构,就是RAID-0逻辑盘。

从图中可以清楚地看到,通过建立RAID-0,原先顺序写入的数据被分散到两块物理盘中同时进行读写,两块物理盘的并行操作使同一时间内磁盘读写的速度提升了2倍。

RAID-0只是单纯地提高读写性能,并没有为数据的可靠性提供保证,而且其中的任何一个物理盘失效都将影响到所有数据,因此,RAID-0不能应用于数据安全性要求高的场合。

1.2.2
RAID-0故障原因分析这里说的RAID-0故障,是指RAID-0逻辑盘丢失或不可访问。导致RAID-0故障的原因主要有以下几种:
1RAID控制器出现物理故障

RAID控制器是一块硬件卡,如果这块卡出现物理故障,将不能被计算机识别,也就无法完成对RAID-0中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。

2RAID信息出错

对于硬RAID-0来说,RAID控制器将物理盘配置为RAID-0后,会生成一些参数,包括该RAID-0的盘序、条带大小、RAID-0在每块物理盘中的起始地址等,还会记录有关该RAID-0的相关信息,包括组成该RAID-0的物理盘数目,物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到RAID-0的成员盘中。

对于软RAID-0来说,同样具有上面提到的RAID信息,这些信息一般都存放在RAID-0的成员盘中。

RAID信息出错就是指该RAID-0的配置参数或者相关信息出现错误,导致RAID程序不能正确地组织RAID-0中的成员盘,从而导致RAID-0逻辑盘丢失或不能访问。

3RAID-0成员盘出现物理故障

RAID-0不允许任何一块成员盘离线,如果RAID-0中的某一块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,该成员盘就不能正常使用,从而导致RAID-0崩溃。

4)人为误操作

如果误将RAID-0中的成员盘拔出、或者给RAID-0除尘时将成员盘拔出后忘了原来的顺序、以及不小心删除了RAID-0的配置信息等,都会造成RAID-0崩溃。
1.2.3
RAID-0数据恢复思路RAID-0是所有RAID中最脆弱的,没有任何冗余性,其中任意一块成员盘出现故障,都会导致所有数据丢失,所以使用RAID-0数据的风险很大。

RAID-0出现故障后,要恢复其中的数据,必须先修复有故障的成员盘,或者将其做出完整的磁盘镜像,也就是说在恢复RAID-0的数据时,全部成员盘不能有任何缺失。

这里以一个四块物理盘组成的RAID-0为例,讲解RAID-0出现故障后数据恢复的思路,该RAID-0的结构如图1-18所示。

1-18
RAID-0结构图

RAID-0原逻辑盘中的数据进行恢复,必须要把所有物理盘重组,因为RAID-0已经不可用,所以先把物理盘从RAID控制器中取出来,即“去RAID化”,作为单盘进行分析。

对于单块物理盘,如图1-18中的“硬盘0”,其中的数据条带为“AEIM”,“硬盘1”中的数据条带为“BFJN”,都是部分数据,只有把四块物理盘中的数据按照“ABCDEFGH……”的条带顺序拼接好,才是原RAID-0逻辑盘中完整的数据。

那么如何按顺序拼接四块物理盘中的数据呢?在这里有两个因素很重要,一个是RAID-0中每个条带的大小,也就是“A”、“B”等这些数据块所占用的扇区数;另一个因素是RAID-0中硬盘的排列顺序,也就是说哪块物理盘是RAID-0中的第一块盘,哪块物理盘是RAID-0中的第二块盘等等。

以图1-18中的RAID-0为例,假设条带的大小为16个扇区,硬盘的顺序就按照图中的排列顺序,那么只要到硬盘0中取0-15扇区的数据,再到硬盘1中取0-15扇区的数据,再到硬盘2中取0-15扇区的数据,再到硬盘3中取0-15扇区的数据,接下来再回到硬盘0中取16-31扇区的数据,就这样依次按顺序取下去,把所有取出来的数据按照顺序衔接成一个镜像文件,或者是镜像盘,这就成为完整的原RAID-0逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原RAID-0逻辑盘中的数据。
发表于 2010-12-21 15:53:20 | 显示全部楼层
很基础,很详细,支持
发表于 2011-8-26 20:47:07 | 显示全部楼层
真好,谢谢楼主
发表于 2012-5-28 12:09:54 | 显示全部楼层
真好,谢谢楼主
发表于 2012-7-4 14:32:43 | 显示全部楼层
写的很仔细,挺受益,谢谢
发表于 2012-7-6 11:51:34 | 显示全部楼层
写的真好!全面  实用!
发表于 2012-7-13 21:56:16 | 显示全部楼层
很详细,受益匪浅!谢谢
发表于 2012-10-29 14:04:20 | 显示全部楼层
不错!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|DOIT ( 京ICP证030972号 北京楚科信息技术有限公司 版权所有. )|网站地图  

GMT+8, 2017-8-18 18:48 , Processed in 0.112058 second(s), 23 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表