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