自从计算机问世以来,存储技术就伴随着计算机的发展而飞速发展,但从重要性和影响力方面来说,没有哪项存储技术的发明能够与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.1 RAID基础知识
RAID最初是1987年在加利福尼亚大学进行的一个科研项目,后来由伯克利分校的D.A. Patterson教授在1988年正式提出。
RAID(Redundant Array of Inexpensive Disks),直译为“廉价冗余磁盘阵列”,最初是为了组合多块小容量的廉价磁盘来代替大容量的昂贵磁盘,同时希望在磁盘失效时不会对数据造成影响而开发出的一种磁盘存储技术。
后来随着硬盘研发技术的不断提升,硬盘的容量越来越大,成本却在不断下降,所以RAID中Inexpensive(廉价)一词已经失去意义,于是将这个词用Independent(独立)来替代,RAID就成了“独立冗余磁盘阵列”,也简称为“磁盘阵列”,但这只是名称的变化,实质性的内容并没有改变。
1.1.2 RAID能解决什么问题
通俗地说,RAID就是通过将多个磁盘按照一定的形式和方案组织起来,通过这样的形式能够获取比单个硬盘更高的速度、更好的稳定性、更大的存储能力的存储解决方案,用户不必关心磁盘阵列究竟由多少块硬盘组成,使用中整个阵列就如同一块硬盘一样。所以,RAID技术能够为计算机系统提供以下三个方面的优异性能:
1.提供更大的存储空间
目前容量为2TB的硬盘已经在市场上销售,2TB的存储空间对于个人用户来说已经很大了,但对于企业用户来说,还远远不够,那么使用RAID技术,就可以把多块硬盘组成一个更大的存储空间供用户使用。比如,利用RAID-0技术把5块2TB的硬盘组织起来,能够提供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-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以
外,其他形式的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-1 4通道的IDE-RAID卡 图1-2 4通道的SATA-RAID卡
随着SAS硬盘的普及,其优越的性能使SAS硬盘逐渐替代了专业的SCSI硬盘,成为服务器的主流硬盘,图1-3是一个4通道的SAS-RAID卡,它也可以向下兼容SATA硬盘。
有了RAID卡,把RAID卡插到计算机主板上,再连接几块硬盘,就可以配置RAID了,下面演示一下这个过程。
首先启动计算机并进入RAID配置界面,如图1-4所示。
选择Configure下的New Configuration,开
图1-3 4通道的SAS-RAID卡
始一个新的配置。如果原先已经配置过RAID,新的配置将会破坏原有配置,所以系统会询问是否继续,如图1-5所示。
图1-4 RAID配置界面
图1-5 询问是否继续
选择Yes继续进行,然后进入通道的选择,该RAID卡支持双通道,选“通道-0”,并把该通道的四块硬盘加入进来,如图1-6所示。
图1-6 将四块硬盘加入通道-0
选中通道和硬盘后,按F10键进行配置,将这四块盘配置为RAID-5的类型,如图1-7所示。
图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功能,例如Windows 2000/XP/2003等系统中都内置了RAID 功能。
为了使用软件RAID功能,首先必须将基本磁盘转换为动态磁盘(动态磁盘的详细讲解请参见第3章),下面以三块硬盘为例,讲解创建软RAID-5的过程。
(1)连接硬盘。
创建RAID-5卷至少需要三块硬盘,先在计算机上连接三块硬盘,连接好以后启动系统进入“磁盘管理”,可以看到三块新接的4.3GB的硬盘,如图1-9所示。
图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 将三块盘添加到“已选的”列表框中
然后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.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创建过程中,配置程序把每块物理盘分割为一个一个的单元,每个单元的大小为2的N次方扇区,N取整数,是一个可变量,这个单元就是RAID的条带(Stripe),它是RAID处理数据的基本单位。在RAID配置时可以让配置程序默认条带大小,也可以手动选择条带大小。
条带也被称为“带区”或者“块”,本书有时会用“块”这个说法代替“条带”,“块
大小”也就是指每个条带包含的扇区数。
每块物理盘的条带都有一个编号,为了对应关系的明确,把条带编号也定义为从0开始,每块物理盘的第一个条带都称为0号条带,或者0号块,然后顺序往下编排。
8.盘数
构成RAID的物理盘的个数称为“盘数”,也称为“条带数”,在RAID配置程序中经常使用条带数表示RAID中的成员盘个数,如图1-15所示。
图1-15 “条带数”和“条带大小”
图1-15中Stripes就是指条带数,当前值为4,说明该RAID由4块物理盘组成。后面的StrpSz就是Stripe Size,指条带大小,当前值为64KB,说明每个条带包含128个扇区。
9.条带组
在一个RAID中,每块物理盘被划分成一个个的条带,每个条带也都有一个编号,并且整个RAID中所有成员盘的条带大小都一样,那么所有RAID成员盘中编号相同的一组条带就称为“条带组”,如图1-16所示。
图1-16 条带组
图1-16是一个RAID-0的结构,其中条带A、B、C、D都是每块成员盘中的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故障的原因主要有以下几种:
1.RAID控制器出现物理故障
RAID控制器是一块硬件卡,如果这块卡出现物理故障,将不能被计算机识别,也就无法完成对RAID-0中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。
2.RAID信息出错
对于硬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逻辑盘丢失或不能访问。
3.RAID-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,其中的数据条带为A、E、I、M,硬盘1中的数据条带为B、F、J、N,都是部分数据,只有把四块物理盘中的数据按照A、B、C、D、E、F、G、H…的条带顺序拼接好,才是原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逻辑盘中的数据。
1.3 RAID-1技术详解
RAID-1通过磁盘数据镜像实现数据的冗余,在两块磁盘上产生互为备份的数据,当其中一块成员盘出现故障时,系统还可以从另外一块成员盘中读取数据,因此RAID-1可以提供更好的冗余性。
1.3.1 RAID-1数据组织原理
RAID-1又被称为磁盘镜像,需要两个物理盘共同构建,使用磁盘镜像(Disk Mirroring)技术,方法是在工作磁盘(Working Disk)之外再加一额外的备份磁盘(Backup Disk),两个磁盘所储存的数据完全一样,数据写入工作磁盘的同时亦写入备份磁盘,也就是将一
块物理盘的内容完全复制到另一块物理盘上,所以两块物理盘所构成的RAID-1阵列,其容量仅等于一块硬盘的容量,其数据分布情况如图1-19所示。
图1-19 RAID-1数据分布图
RAID-1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个物理盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。
虽然RAID-0可以提供更多的空间和更好的读写性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。所以,RAID-0一般只是在那些对数据安全性要求不高的情况下才被人们使用。而RAID-1和RAID-0截然不同,其技术重点全部放在如何能够在不影响性能的情况下最大限度的保证系统的可靠性和可修复性上。
RAID-1是所有RAID等级中实现成本最高的一种,尽管如此,人们还是选择RAID-1来保存那些关键性的重要数据。
1.3.2 RAID-1故障原因分析
这里说的RAID-1故障,是指RAID-1逻辑盘丢失或不可访问。导致RAID-1故障的原因主要有以下几种:
1.RAID控制器出现物理故障
RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对RAID-1中各
个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存 在了。
2.RAID信息出错
对于硬RAID-1来说,RAID控制器将物理盘配置为RAID-1后,会记录有关该RAID-1的相关信息,包括组成该RAID-1的物理盘数目、物理盘的容量大小、哪块物理盘为工作磁盘、哪块物理盘为镜像磁盘、RAID-1在每块物理盘中的起始地址等,所有这些信息被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存
到RAID-1的成员盘中。
对于软RAID-1来说,同样具有上面提到的RAID信息,这些信息一般都存放在RAID-1的成员盘中。
RAID信息出错就是指该RAID-1的配置信息出现错误,导致RAID程序不能正确地组织管理RAID-1中的成员盘,从而导致RAID-1逻辑盘丢失或不能访问。
3.RAID-1成员盘出现物理故障
RAID-1可以允许其中一块成员盘离线,如果RAID-1中的某一块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,该成员盘就不能正常使用,但剩下的一块成员盘中的数据完好无损,RAID-1还不会崩溃。
如果系统管理员没有及时替换出现故障的成员盘,当另一块成员盘再出现故障离线后,RAID-1将彻底崩溃。
4.人为误操作
如果误将RAID-1中的两块成员盘都拔出,或不小心删除了RAID-1的配置信息等,都会造成RAID-1崩溃。
1.3.3 RAID-1数据恢复思路
RAID-1是所有RAID中最简单的一种,以图1-20中的RAID-1结构为例,从图中可以看出,RAID-1中两块硬盘互为镜像,所有数据都是完全一样的,如果是RAID控制器故障或RAID信息出错导致RAID-1的数据无法访问,只要将两块物理盘中的一块从服务器上拆下来,作为单独的硬
盘接在一台计算机上,就很容易将数据恢复出来。 如果RAID-1中一块硬盘出现故障,不会影响服务器的运行,只要把故障硬盘更换为一块好的硬盘就可以了。如果没有及时更换,导致第二块硬盘也出现故障,这时RAID-1就会失效,因为先出现故障的硬盘中的数据已经不完整,所以不能以第一图1-20 RAID-1结构图 块硬盘为基准进行数据恢复,而应该用后出现故障
的硬盘进行数据恢复,一般情况下都能够完全恢复出所有的数据。
1.4 RAID-10技术详解
RAID-10这种结构是两个镜像结构加一个带区结构,也是为了使RAID-0和RAID-1的优势互补,达到既安全又高速的目的。
1.4.1 RAID-10数据组织原理
RAID 1+0也被称为RAID-10标准,实际是将RAID-1和RAID-0结合的产物,其数据分布情况如图1-21所示。
图1-21 RAID-10数据分布图
RAID-10至少需要四块硬盘才能构建,它的优点是同时拥有RAID-0的超凡速度和RAID-1的高数据可靠性,但是磁盘的利用率比较低。
RAID-10主要用于容量不大,但要求速度和差错控制的数据库中。
1.4.2 RAID-10故障原因分析
这里说的RAID-10故障,是指RAID-10逻辑盘丢失或不可访问。导致RAID-10故障的原因主要有以下几种:
1.RAID控制器出现物理故障
RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对RAID-10中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。
2.RAID信息出错
RAID控制器将物理盘配置为RAID-10后,会生成一些参数,包括该RAID-10的盘序、条带大小、RAID-10在每块物理盘中的起始地址等,还会记录有关该RAID-10的相关信息,包括组成该RAID-10的物理盘数目、物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到
RAID-10的成员盘中。
RAID信息出错就是指该RAID-10的配置信息和参数出现错误,导致RAID程序不能正确地组织管理RAID-10中的成员盘,从而导致RAID-10逻辑盘丢失或不能访问。
3.RAID-10成员盘出现物理故障
RAID-10其实是由多组RAID-1构成RAID-0,它可以允许每组RAID-1中的一块成员盘离线,如果某组RAID-1中的某一块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,该成员盘就不能正常使用,但该组RAID-1剩下的一块成员盘中的数据完好无损,RAID-10还不会崩溃。
如果系统管理员没有及时替换出现故障的成员盘,当同一组RAID-1中另一块成员盘再出现故障离线后,也就是一组RAID-1中的两块成员盘都出现故障,RAID-10将彻底 崩溃。
4.人为误操作
如果误将RAID-10中同一组RAID-1的两块成员盘都拔出,或者给RAID-10除尘时将成员盘拔出后忘了原来的顺序,以及不小心删除了RAID-10的配置信息等,都会造成RAID-10崩溃。
1.4.3 RAID-10数据恢复思路
RAID-10是由多组RAID-1构成RAID-0,以图1-22中的RAID-10结构为例,从图中可以看出,该RAID-10由两组RAID-1构成RAID-0,其中硬盘0与硬盘1是一组RAID-1,硬盘2与硬盘3是另一组RAID-1,这两组RAID-1又组成了RAID-0,整体就成为RAID-10。
图1-22 RAID-10结构图
如果是RAID控制器故障或RAID信息出错导致RAID-10的数据无法访问,只需从两组RAID-1中各拿出一块物理盘,用这两块物理盘按照前文讲解过的RAID-0恢复的思路进行恢复,就很容易将数据恢复出来。
如果RAID-10中某一组RAID-1的一块物理盘出现故障,理论上不会影响服务器的运行,只要把故障硬盘更换为一块好的硬盘就可以保证RAID-10的完整性。如果没有及时更
换,导致该组RAID-1的第二块物理盘也出现故障,这时该组RAID-1就会失效,RAID-10也就崩溃了。因为先出现故障的硬盘中的数据已经不完整,所以不能以这一块硬盘为基准进行数据恢复,而应该用后出现故障的硬盘加上另一组RAID-1中的一块物理盘进行数据恢复,一般情况下都能够完全恢复出所有的数据。
1.5 RAID-1E技术详解
RAID-1E是IBM公司推出的一种私有级别的RAID形式,它的数据组织结构在RAID-1的基础上做了改进,这一节将具体分析RAID-1E的存储及恢复技术。
1.5.1 RAID-1E数据组织原理
RAID-1E是RAID-1的增强版本,但它并不是通常所说的RAID 0+1的组合。RAID-1E的工作原理与RAID-1基本上是一样的,只是RAID-1E的数据恢复能力更强,但由于RAID-1E写一个条带的数据至少要两次,因此,RAID控制器的负载会增大很多,从而造成磁盘读写能力的下降。
RAID-1E至少需要3块物理盘才能实现,其数据分布情况如图1-23所示。
图1-23 RAID-1E数据分布图
从图1-23可以看出,RAID-1E的各个物理盘中,以两个条带组为一个单元,在一个单元中,上一个条带组内是连续排列的数据,下一个条带组则是上一个条带组的错位镜像,即将上一个条带组中每个成员盘内的数据向右移动一块盘的位置,写入下一个条带组的各个成员盘中,最后一个成员盘的数据则写入第一个成员盘中。
RAID-1E在一块成员盘离线的情况下不会影响数据的完整性,如果RAID-1E由四块或者四块以上成员盘构成,则能够支持在两块成员盘离线的情况下不会影响数据的完整性,只是有两个前提:一是离线的两块成员盘不能是相邻的两块盘;二是第一块成员盘和最后一块成员盘不能同时离线。
1.5.2 RAID-1E故障原因分析
这里说的RAID-1E故障,是指RAID-1E逻辑盘丢失或不可访问。导致RAID-1E故障的原因主要有以下几种:
1.RAID控制器出现物理故障
RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对RAID-1E中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。
2.RAID信息出错
RAID控制器将物理盘配置为RAID-1E后,会生成一些参数,包括该RAID-1E的盘序、条带大小、RAID-1E在每块物理盘中的起始地址等,还会记录有关该RAID-1E的相关信息,包括组成该RAID-1E的物理盘数目、物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到RAID-1E的成员盘中。
RAID信息出错就是指该RAID-1E的配置信息和参数出现错误,导致RAID程序不能正确地组织管理RAID-1E中的成员盘,从而导致RAID-1E逻辑盘丢失或不能访问。
3.RAID-1E成员盘出现物理故障
由三块成员盘组建的RAID-1E可以允许一块成员盘离线而不影响RAID-1E逻辑盘数据的完整性,如果RAID-1E中的两块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,RAID-1E将会崩溃。
由四块及四块以上成员盘组建的RAID-1E可以允许不相邻的两块成员盘离线而不影响RAID-1E逻辑盘数据的完整性,如果RAID-1E中相邻的两块成员盘出现物理故障,或者不相邻的三块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,RAID-1E将会彻底崩溃。
4.人为误操作
如果误将RAID-1E中两块以上成员盘同时拔出,或者给RAID-1E除尘时将成员盘拔
出后忘了原来的顺序,以及不小心删除了RAID-1E的配置信息等,都会造成RAID-1E 崩溃。
5.RAID控制器的稳定性
RAID-1E的数据分布结构比其他级别的RAID要复杂一些,尤其是当RAID-1E中有成员盘离线时,算法将变得更加复杂,RAID控制器将会工作在一个比较吃力的状态。而RAID控制器的负载太重便会极大地增加数据读写时出现I/O滞留的可能性,从而导致更多成员盘离线,或者导致RAID信息出错。
1.5.3 RAID-1E数据恢复思路
RAID-1E是所有RAID中比较安全的一种级别,冗余性很好,对于RAID-1E出现故障后数据恢复的方法,下面分情况介绍。
这里以三块成员盘的RAID-1E为例,如图1-24所示。
1.不缺失成员盘
如果是RAID控制器故障或RAID信息出错导致
RAID-1E的逻辑盘无法访问,各成员盘没有物理故障,先把物理盘从RAID控制器中取出来,即“去
RAID化”,作为单盘进行分析。
图1-24 RAID-1E结构图 对于RAID-1E有两个因素需要分析,一个是
RAID-1E中每个条带的大小,也就是A、B等这些数据块所占用的扇区数;另一个因素是RAID-1E中物理盘的排列顺序,也就是说哪块物理盘是RAID-1E中的第一块盘,哪块物理盘是RAID-1E中的第二块盘等。
分析出RAID-1E的条带大小和盘序后,将各个物理盘的0号条带、2号条带、4号条带等所有编号为偶数的条带按照盘序衔接到一起,就拼凑成为了完整的RAID-1E逻辑盘。
以图1-24中的RAID-1E为例,假设条带的大小为16个扇区,成员盘的盘序就按照图中的排列顺序,那么只要到硬盘0中取0~15扇区的数据,再到硬盘1中取0~15扇区的数据,再到硬盘2中取0~15扇区的数据,即把每块成员盘的0号条带按照盘序取出,接下来跳过1号条带,进入2号条带,按照盘序读取每块成员盘的32~47扇区的数据,就这样依次按顺序取下去,把所有取出来的数据按照顺序衔接成一个镜像文件,或者是镜像盘,这就成为完整的原RAID-1E逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原RAID-1E逻辑盘中的数据。
2.缺失一块成员盘
假设RAID-1E的三块成员盘中有一块出现无法修复的物理故障,那么只能用剩下的两块成员盘恢复数据,如图1-25所示,加阴影的硬盘2表示故障盘,无法读取,我们用硬盘0和硬盘1进行数据恢复。
对于这种情况的RAID-1E,也需要先分析出条带大小和剩下两块成员盘的盘序,然后将0、2、4
等偶数条带的数据按照盘序读取出来,对于1、3、5
图1-25 RAID-1E中硬盘2为故障盘
等奇数条带只读取0号盘的数据,把所有取出来的数
据按照顺序衔接成一个镜像文件,或者是镜像盘,这就成为完整的原RAID-1E逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原RAID-1E逻辑盘中的数据。
1.6 RAID-2、RAID-3、RAID-4技术详解
RAID-2、RAID-3和RAID-4这三种RAID级别在实际应用中非常少见,所以本书对它们只作一些简单介绍。
1.6.1 RAID-2数据组织原理
RAID-2是将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用“加重平均纠错码”的编码技术来提供错误检查及恢复,这种纠错码也被称为“海明码”。海明码需要多个磁盘存放检查及恢复信息,使得RAID-2技术实施更复杂,因此在商业环境中很少使用。
海明码在磁盘阵列中被间隔写入到磁盘上,而且地址都一样,也就是在各个磁盘中,其数据都在相同的磁道及扇区中。
RAID-2的设计是使用共轴同步的技术,存取数据时整个磁盘阵列一起动作,在各磁盘的相同位置作平行存取,所以有最快的存取时间,其总线是特别的设计,以大带宽并行传输所存取的数据。在大型文件的存取应用中,RAID-2有最好的性能,但如果文件太小,将会影响其性能,因为磁盘的存取是以扇区为单位的,而RAID-2的存取是所有磁盘平行动作,而且是作位的存取,所以小于一个扇区的数据量会使其性能大打折扣。
RAID-2是设计给需要连续存取大量数据的计算机使用的,如作影像处理或CAD/CAM的工作站等,并不适用于一般的多用户环境、网络服务器和PC。
因RAID-2现在几乎没有商业应用,所以本书省略对该结构的故障原因分析和数据恢复思路的讲解。
1.6.2 RAID-3数据组织原理
RAID-3的数据存取方式和RAID-2一样,把数据以位或字节为单位来分割并且存储到各个硬盘上,在安全方面以奇偶校验取代海明码做错误校正及检测,所以只需要一个额外的校检磁盘。奇偶校验值的计算是以各个磁盘的相对应位作异或的逻辑运算,然后将结果写入奇偶校验磁盘,其数据分布情况如图1-26所示。
图1-26中第三块物理盘中的每一个校验块所包含的都是其他两块物理盘中对应数据块的校验信息,P0为数据0、1的异或值,P1为数据2、3的异或值,P2为数据4、5的异或值。
RAID-3具有容错能力,但是系统会受到影响。当一块磁盘失效时,该磁盘上的所有数据块必须使用校验信息重新建立,如果是从好盘中读取数据块,不会有任何变化。但是如果要读取的数据块正好位于已经损坏的磁盘上,则必须同时读取同一条带中的所有其他数据块,并根据校验值重建丢失的数据。
另外,在使用RAID-3的过程中还有其他一些性能上的问题需要引起注意,RAID-3所存在的最大一个不足同时也是导致RAID-3很少被人们采用的原因就是校验盘很容易成为
因篇幅问题不能全部显示,请点此查看更多更全内容