本站所有下载压缩包解压密码均为:kmdn.com
本站所有下载压缩包解压密码均为:kmdn.com
轮播图片广告位招租
轮播图片广告位招租
30每月,300包年
30每月,300包年
RAID技术详解(精品)
2020-09-14 23:04:46
第 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.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的处理速度以几何数量级迅猛增长,著名的摩尔定律告诉我们,CPU的性能每隔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;康柏公司研发的双循环RAID5,因康柏公司己被惠普公司收购,所以这种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 如何实现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-1 4通道的IDE-RAID卡, 图1-2 是一个4通道的SATA-RAID卡,可连接4块SATA硬盘。,, 图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 ContioUration”,开始一个新的配置。如果原先己经配置过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,可以算半软半硬吧。, , 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-10和1-11所示。,, 图1-10 选定需要转换的磁盘,, 图1-11 三块基本磁盘被转换为动态磁盘, 步骤三:创建RAID-5卷。, 在磁盘上点右键并选择“创建卷”,点击“下一步”后选择“RAID-5”,将磁盘1、磁盘2及磁盘3添加到右边的“己选的”一栏中,如图1-12所示。,, 图1-12 将三块盘添加到“己选的”对话框中, 然后Windows提示指派驱动器号,可以由Windwos指定也可手动分配,本例中我选择了“L”作为RAID-5卷的驱动器号,如图1-13所示。,, 图1-13 选择“L”为RAID5卷的驱动号, 然后需要进行格式化,可以选择FAT32或NTFS作为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创建过程中,配置程序把每块物理盘分割为一个一个的单元,每个单元的大小为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"就是“StripeSize”,指条带大小,当前值为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的数据无法访问,只要将两块物理盘中的一块从服务器上拆下来,作为单独的硬盘接在一台计算机上,就很容易将数据恢复出来。,, 图1-20 RAID-1结构图, 如果RAID-1中一块硬盘出现故障,不会影响服务器的运行,只要把故障硬盘更换为一块好的硬盘就可以了。如果没有及时更换,导致第二块硬盘也出现故障,这时RAID-1就会失效,因为先出现故障的硬盘中的数据已经不完整,所以不能以第一块硬盘为基准进行数据恢复,而应该用后出现故障的硬盘进行数据恢复,一般情况下都能够完全恢复出所有的数据。, , ,1.4 RAID-10技术详解, RAID-10这种结构是两个镜像结构加一个带区结构,也是为了把RAID-0和RAID-1的优缺点相互补充,达到既安全又高速的目的。, ,1.4.1 RAID-10数据组织原理, RAID1+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将彻底崩溃。, 如果误将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由两组RATD-1构成RATD-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的增强版本,但它并不是通常所说的RAID0+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-24 RAID-1E结构图, 情况一:不缺失成员盘, 如果是RAID控制器故障或RAID信息出错导致RAID-1E的逻辑盘无法访问,各成员盘没有物理故障,先把物理盘从RAID控制器中取出来,即“去RAID化”,作为单盘进行分析。, 对于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逻辑盘中的数据。, 情况二:缺失一块成员盘, 假设RAID-1E的三块成员盘中有一块出现无法修复的物理故障,那么只能用剩下的两块成员盘恢复数据,如图1-25所示,加阴影的“硬盘2”表示故障盘,无法读取,我们用硬盘0和硬盘1进行数据恢复。,, 图1-25 RAID-1E中“硬盘2”为故障盘, 对于这种情况的RAID-1E,也需要先分析出条带大小和剩下两块成员盘的盘序,然后将0、2、4等偶数条带的数据按照盘序读取出来,对于1、3、5等奇数条带只读取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 RAID-3数据分布图, 图1-26中第三块物理盘中的每一个校验块所包含的都是其他两块物理盘中对应数据块的校验信息,“P0”为数据“0、1”的异成值,“P1”为数据“2、3”的异或值,“P2”为数据“4、5”的异或值。, RAID-3具有容错能力,但是系统会受到影响。当一块磁盘失效时,该磁盘上的所有数据块必须使用校验信息重新建立,如果是从好盘中读取数据块,不会有任何变化。但是如果要读取的数据块正好位于已经损坏的磁盘上,则必须同时读取同一条带中的所有其他数据块,并根据校验值重建丢失的数据。, 另外,在使用RAID-3的过程中还有其他一些性能上的问题需要引起注意,RAID-3所存在的最大一个不足同时也是导致RAID-3很少被人们采用的原因就是校验盘很容易成为整个系统的瓶颈。我们己经知道RAID-3会把数据的写入操作分散到多个磁盘上进行,然而不管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此对于那些经常提要执行大量写入操作的应用来说,校验盘的负载将会很大,无法满足程序的运行速度,从而导致整个RAID系统性能的下降。鉴于这种原因,RAID-3更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如数据库和WEB服务器等。, 因RAID-3现在几乎没有商业应用,所以本书省略对该结构的故障原因分析和数据恢复思路的讲解。, ,1.6.3 RAID-4数据组织原理, RAID-4和RAID-3很相似,数据都是依次存储在多个硬盘之上,奇偶校验码存放在独立的奇偶校验盘上,唯一不同的是,在数据分割上RAID-3是以位或字节为单位,而RAID-4是以条带为单位。, RAID-4也使用一个校验磁盘,各磁盘相同位置的分段形成一个校验磁盘分段,放在校验磁盘上。这种方式可在不同的磁盘平行执行不同的读取命令,大幅提高磁盘阵列的读取性能;但写入数据时,因受限于校验磁盘,同一时间只能作一次,启动所有磁盘读取数据形成同校验条带的所有数据条带,与要写入的数据做好校验计算再写入。即使如此,小型文件的写入仍然比RAID-3要快,因其校验计算较简单而非位的计算,但校验磁盘和RAID-3一样,也形成其性能的瓶颈。, 因RAID-4现在几乎没有商业应用,所以本书省略对该结构的故障原因分析和数据恢复思路的讲解。, , ,1.7 RAID-5技术详解, RAID-5是使用最为广泛的一种RAID级别,其结构也比较复杂,根据其数据组织方式的不同,RAID-5可以分为左异步、左同步、右异步、右同步等结构,本节将详细讲述。, ,1.7.1 RAID-5数据组织原理, RAID-5跟RAID-4一样,数据以条带为单位分布到各个硬盘上,RAID-5和RAID-4的最大区别在于RAID-5不是把所有的校验块集中保存在一个专门的校验盘中,而是分散到所有的数据盘中,其数据分布情况如图1-27所示。,, 图1-27 RAID-5数据分布图, 从图1-27可以看到RAID-5的校验码存在于所有磁盘上,其中“P0”为数据条带“0、1”的校验值,“P1”为数据“2、3”的校验值,“P2”为数据"4、5’的校验值。, RAID-5的冗余性不错,当一块成员盘离线后,数据依然能够保持完整性。, 在读写性能方面,因为每一个写操作都需要计算校验并写入校验,所以写性能稍差一些,但读取性能很好。, 另外由于RAID-5的每个条带组中都有一个条带用来写校验,所以所有校验条带加在一起刚好占用一块物理盘的空间,也就是说RAID-5逻辑盘的容量等于所有物理盘容量的总和减去一块物理盘的容量。, RAID-5的应用很广泛,是所有RAID级别中应用最多的,我们来具体讲解一下校验值的算法。RAID-5的校验值采用的是异或算法,异或运算是二进制数值间的一种算法,其运算符号为“XOR”,或者用“⊕”表示。运算组合有以下四种:, 0 ⊕ 0=0, 0 ⊕ 1=1, 1 ⊕ 0=1, 1 ⊕ 1=0, 图1-27中的“P0”就是数据条带“0”⊕数据条带“1”的结果;“P1”就是数据条带“2”⊕数据条带“3”的结果;“P2”就是数据条带“4”⊕数据条带“5”的结果。因为一个异或运算式中的任一数值都能由其他数值通过异或运算得到,所以当缺失一个数值时,用剩下的数值经过异或运算就能得到缺失的数值了,这就是RAID-5能够缺失一块盘的道理。, 多个数字同时进行异或运算时,有两个特点:, (1)运算结果与运算顺序无关, 例如:(a ⊕ b) ⊕ c=a ⊕ (b ⊕ c)。, (2)各个参与运算的数字与结果循环对称, 例如a ⊕ b ⊕ c=d,那么可以得到:, a=b ⊕ c ⊕ d, b=a ⊕ c ⊕ d, c=a ⊕ b ⊕ d, RAID-5之所以能够容错,就是利用了异或运算的这些特点,比如将上面例子中的a、b、c、d看作是RAID-5四块成员盘上的条带,其中三个是数据条带,剩下一个是校验条带,如果有一块成员盘离线,不管哪个条带丢失了,都可以用剩下的三个条带经过异或计算出来。, RAID-5的校验条带被分散保存在不同的成员盘中,这样就可以确保任何对校验条带进行的读写操作都会在所有的成员盘中进行均衡,从而避免了RAID-4的瓶颈。, ,1.7.2 RAID-5的常规左异步结构, 不同品牌的服务器或者同一品牌服务器的不同型号,其RAID控制器组建的RAID-5在结构上会有所不同,按照其数据条带和校验条带在RAID-5成员盘中的分布方式,可以把RAID-5的结构分为八种,它们是:常规左异步、非常规左异步、常规右异步、非常规右异步、常规左同步、非常规左同步、常规右同步、非常规右同步。, 常规左异步结构的RAID-5如图1-28所示。,, 图1-28 RAID-5的常规左异步结构图, 从图1-28中可以看出常规左异步的RAID-5存储结构有如下特点:, (1)校验块从最后一块物理开始写起,然后依次往前面的物理盘中写入,当写到第一块物理盘后再回到最后一块物理盘,依次循环。, (2)数据块总是从第一块物理盘开始写,然后依次往后面的物理盘中写入,即各条带组内的数据块均由低号物理盘向高号物理盘依次写入。, 另外,这种结构也可以称为“3-2-1连续”, ,1.7.3 RAID-5的非常规左异步结构, RAID-5的非常规左异步结构与常规左异步结构的区别主要在第一个条带组中校验块的位置不同,常规左异步结构第一个条带组中校验块的位置一定在最后一块物理盘上,而非常规左异步结构的第一个条带组中校验块的位置则不在最后一块物理盘上,而是位于其他物理盘上,位于第一块物理盘上的情况比较多一些,如因1-29所示。,, 图1-29 RAID-5的非常规左异步结构图, 从图1-29中可以看出非常规左异步的RAID-5存储结构有如下特点:, (1)第一个条带组中校验块的位置在第一块物理盘上。, (2)从第二个条带组开始,校验块从最后一块盘物理开始写起,然后依次往前面的物理盘中写入,当写到第一块物理盘后再回到最后一块物理盘,依次循环。, (3)第一个条带组中数据块从第二块物理盘开始写,然后依次写入后面的物理盘。, (4)从第二个条带组开始,数据块总是从第一块物理盘开始写,然后依次往后面的物理盘中写入,即各条带组内的数据块均由低号物理盘向高号物理盘依次写入。, ,1.7.4 RAID-5的常规左同步结构, 常规左同步结构的RAID-5如图1-30所示。,, 图1-30 RAID-5的常规左同步结构图, 从图1-30中可以看出常规左同步的RAID-5存储结构有如下特点:, (1)校验块从最后一块物理盘开始写起,然后依次往前面的盘中写入,当写到第一块物理盘后再回到最后一块物理盘,依次循环。, (2)每个条带组内的第一个数据块首先写入校验块所在物理盘的下一物理盘中(注意看图1-30中数据块“2”和“3”以及数据块“8”和“9”的写入顺序),其余数据块再依次写入。, 另外,这种结构也可以称为“3-2-1标准”, ,1.7.5 RAID-5的非常规左同步结构, RAID-5的非常规左同步结构与常规左同步结构的区别主要在第一个条带组中校验块的位置不同,常规左同步结构第一个条带组中校验块的位置一定在最后一块物理盘上,而非常规左同步结构的第一个条带组中校验块的位置则不在最后一块物理盘上,而是位于其他物理盘上,位于第一块物理盘上的情况比较多一些,如图1-31所示。,, 图1-31 RAID-5的非常规左同步结构图, 从图1-31中可以看出非常规左同步的RAID-5存储结构有如下特点:, (1)第一个条带组中校验块的位置在第一块物理盘上。, (2)从第二个条带组开始,校验块从最后一块盘物理开始写起,然后依次往前面的物理盘中写入,当写到第一块物理盘后再回到最后一块物理盘,依次循环。, (3)每个条带组内的第一个数据块首先写入校验块所在物理盘的下一物理盘中(注意看图1-31中数据块“4”和“5”以及数据块“10”和“11”的写入顺序),其余数据块再依次写入。, ,1.7.6 RAID-5的常规右异步结构, 常规右异步结构的RAID-5如图1-32所示。,, 图1-32 RAID-5的常规右异步结构图, 从图1-32中可以看出常规右异步的RAID-5存储结构有如下特点:, (1)校验块从第一块物理盘开始写起,然后依次往后面的物理盘中写入,当写到最后一块物理盘后再回到第一块物理盘,依次循环。, (2)各条带组内的数据块均由低号物理盘向高号物理盘依次写入。, 另外这种结构也可以称为“1-2-3连续”。, ,1.7.7 RAID-5的非常规右异步结构, RAID-5的非常规右异步结构与常规右异步结构的区别主要在第一个条带组中校验块的位置不同,常规右异步结构第一个条带组中校验块的位置一定在第一块物理盘上,而非常规右异步结构的第一个条带组中校验块的位置则不在第一块物理盘上,而是位于其他物理盘上,位于最后一块物理盘上的情况比较多一些,如图1-33所示。,, 图1-33 RAID-5的非常规右异步结构图, 从图1-33中可以看出非常规右异步的RAID-5存储结构有如下特点:, (1)第一个条带组中校验块的位置在最后一块物理盘上。, (2)从第二个条带组开始,校验块从第一块盘物理开始写起,然后依次往后面的物理盘中写入,当写到最后一块物理盘后再回到第一块物理盘,依次循环。, (3)各条带组内的数据块均由低号物理盘向高号物理盘依次写入。, ,1.7.8 RAID-5的常规右同步结构, 常规右同步结构的RAID-5如图1-34所示。,, 图1-34 RAID-5的常规右同步结构图, 从图1-34中可以看出常规右同步的RAID-5存储结构有如下特点:, (1)校验块从第一块物理盘开始写起,然后依次往后面的盘中写入,当写到最后一块盘后再回到第一块物理盘,依次循环。, (2)每个条带组内的第一个数据块首先写入校验块所在物理盘的下一物理盘中(注意看图1-34中数据块“2”和“3”以及数据块"8”和“9”的写入顺序〉,其余数据块再依次写入。, 另外,这种结构也可以称为“1-2-3标准”。, ,1.7.9 RAID-5的非常规右同步结构, RAID-5的非常规右同步结构与常规右同步结构的区别主要在第一个条带组中校验块的位置不同,常规右同步结构第一个条带组中校验块的位置一定在第一块物理盘上,而非常规右同步结构的第一个条带组中校验块的位置则不在第一块物理盘上,而是位于其他物理盘上,位于最后一块物理盘上的情况比较多一些,如图1-35所示。,, 图1-35 RAID-5的非常规右同步结构图, 从图1-35中可以看出非常规右同步的RAID-5存储结构有如下特点:, (1)第一个条带组中校验块的位置在最后一块物理盘上。, (2)从第二个条带组开始,校验块从第一块盘物理开始写起,然后依次往后面的物理盘中写入,当写到最后一块物理盘后再回到第一块物理盘,依次循环。, (3)每个条带组内的第一个数据块首先写入校验块所在物理盘的下一物理盘中(注意看图1-35中数据块“4”和“5”以及数据块“10”和“11”的写入顺序),其余数据块再依次写入。, ,1.7.10 RAID-5故障原因分析, 这里说的RAID-5故障,是指RAID-5逻辑盘丢失或不可访问。导致RAID-5故障的原因主要有以下几种:, (1)RAID控制器出现物理故障, RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对RAID-5中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑也自然就不存在了。, (2)RAID信息出错, RAID控制器将物理盘配置为RAID-5后,会生成一些参数,包括该RAID-5的盘序、条带大小、左右结构情况、同步异步情况、RAID-5在每块物理盘中的起始地址等,还会记录有关该RAID-5的相关信息,包括组成该RAID-5的物理盘数目、物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到RATD-5的成员盘中。, RAID信息出错就是指该RAID-5的配置信息和参数出现错误,导致RAID程序不能正确地组织管理RAID-5中的成员盘,从而导致RAID-5逻辑盘丢失或不能访问。, (3)RAID-5成员盘出现物理故障, RAID-5可以允许其中一块成员盘离线而不影响数据的完整性,如果RAID-5中的某一块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,该成员盘就不能正常使用,但剩下的成员盘可以利用异或运算计算出离线成员盘中的数据,所以RAID-5还不会崩溃。, 如果系统管理员没有及时替换出现故障的成员盘,当再有一块成员盘再出现故障离线后,RAID-5将彻底崩溃。, (4)人为误操作, 如果误将RAID-5中两块以上成员盘同时拔出、或者给RAID-5除尘时将成员盘拔出后忘了原来的顺序、以及不小心删除了RAID-5的配置信息等,都会造成RAID-5崩溃。, (5)RAID控制器的稳定性, RAID-5的数据分布结构中有校验块的存在,当RAID-5中有成员盘离线时,算法将变得更加复杂,RAID控制器将会工作在一个比较吃力的状态。而RAID控制器的负载太重便会极大地增加数据读写时出现I/O滞留的可能性,从而导致更多成员盘离线,或者导致RAID信息出错。, ,1.7.11 RAID-5数据恢复思路, RAID-5阵列中数据的分布与RAID-0类似,数据也是分布到每块硬盘上,与RAID-0不同的是,RAID-5中每个条带组中总有一个条带是校验块,如图1-36中的“P0、P1、P2、P3”就是校验块。,, 图1-36 RAID-5的结构图, RAID-5能够支持在一块盘离线的情况下保证数据的正常访问,如果有两块或两块以上硬盘同时离线,或者RAID信息出错等原因,阵列便会失效,这时就简要对数据进行重组。, 对RAID-5的数据进行重组,也能要先把物理盘去RAID化,作为单盘进行分析,如图1-36中的四块物理盘,把四块物理盘中的数据按照“A、B、C、D、E、F、G、H、......”的顺序拼接好,就是RAID-5逻辑盘中完整的数据。, 因为RAID-5的每块物理盘中都有校验信息,所以分析RAID-5就需要比RAID-0多一个因素,即校验块的位置和方向,另外RAID-5中数据块的走向也会不一样,分为异步和同步,也就是说RAID-5有四个因素很重要,第一个是RAID中每个条带的大小,也就是“A”或“B”这些数据块所占用的扇区数;第二个因素是RAID中硬盘的排列顺序,也就是盘序;第三个因素是校验块的循环方向;第四个因素是数据块的走向。, 以图1-36中四块物理盘组成的RAID-5为例,假设条带的大小为32个扇区,物理盘的顺序就按照图中的排列顺序,那么只要到硬盘0中取0-31扇区的信息,再到硬盘1中取0-31扇区的信息,再到硬盘2中取0-31扇区的信息,硬盘3中0-31扇区的信息是校验块,跳过不取。接下来再回到硬盘0中取32-63扇区的信息,就这样依次按顺序取下去,把所有取出来的数据按照顺序衔接成一个镜像文件或者是镜像盘,这就成为完整的原RAID-5逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原RAID-5逻辑盘中的数据。, , ,1.8 RAID-5E、RAID-5EE技术详解, RAID-5E和RAID-5EE都是由IBM公司提出的一种私有RAID级别,没有成为国际标准,所以在商业应用上并不是十分普及。, ,1.8.1 RAID-5E数据组织原理, 这种RAID级别是从RAID-5的基础上发展而来的,它与RAID-5不同的地方是将数据校验信息、平均分布在每一个物理盘中的同时,还要在每个物理盘都要预留一定的空间,这部分空间称为热备空间(简写为HS)。当一个物理盘出现故障时,这个物理盘上的数据将被写入到其他物理盘预留的热备空间内,达到数据保护的作用,而这时候的RAID级别则从RAID扭转换成了特殊结构的RAID-5,继续保护磁盘数据。, RAID-5E允许两个磁盘出错,但不能是同一时间出错。构建RAID-5E最少需要4个磁盘才能实现,构建成的逻辑盘容量为全部物理盘总容量减去两块物理盘的容量,因为一块物理盘的容量用来存放校验信息,一块物理盘的容量用来作为热备空间。, RAID-5E的结构如图1-37所示。,, 图1-37 RAID-5E的数据分布图, 因RAID-5E现在几乎没有商业应用,所以本书省略对该结构的故障原因分析和数据恢复思路的讲解。, ,1.8.2 RAID-5EE数据组织原理, RAID-5EE的工作原理与RAID-5E基本相同,它也是在每个磁盘中预留一部分空间作为分布的热备空间,但这部分热备空间也像数据一样进行了条带化,分布在每个条带组中。当一个硬盘出现故障时,这个磁盘上的数据将被同步到分布的热备空间,达到数据的保护作用。, 不过与RAID-5E不同的是RAID-5EE内增加了一些优化技术,使RAID-5EE的工作效率更高,同步数据的速度也更快。, RAID-5EE也允许两个磁盘不在同一时间出错,构建RAID-5EE最少需要4个磁盘才能实现,其数据分布情况如图1-38所示。,, 图1-38 RAID-5EE数据分布图, 图1-38中“HS0、HS1、HS2、HS3”就是一些热备空间,用于备份存储离线物理盘同一条带中的数据。, ,1.8.3 RAID-5EE故障原因分析, 这里说的RAID-5EE故障,是指RAID-5EE逻辑盘丢失或不可访问。导致RAID-5EE故障的原因主要有以下几种:, (1)RAID控制器出现物理故障, RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对RAID-5EE中各个物理成员盘的控制,在这种情况下,通过RAID控制辑虚拟出来的逻辑盘自然就不存在了。, (2)RAID信息出错, RAID控制器将物理盘配置为RAID-5EE后,会生成一些参数,包括该RAID-5EE的盘序、条带大小、左右结构情况、同步异步情况、RAID-5EE在每块物理盘中的起始地址等,还会记录有关该RAID-5EE的相关信息,包括组成该RAID-5EE的物理盘数目、物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到RAID-5EE的成员盘中。, RAID信息出错就是指该RAID-5EE的配置信息和参数出现错误,导致RAID程序不能正确地组织管理RAID-5EE中的成员盘,从而导致RAID-5EE逻辑盘丢失或不能访问。, (3)RAID-5EE成员盘出现物理故障, RAID-5EE中一块成员盘离线后,剩下的成员盘会计算生成离线成员盘的数据并写入热备空间内,如果在这个过程还没有完成的情况下又有一块成员盘离线,RAID-5EE就会崩溃。, (4)人为误操作, 如果误将RAID-5EE中两块以上成员盘同时拔山、或者给RAID-5EE除尘时将成员盘拨出后忘了原来的顺序、以及不小心删除了RAID-5EE的配置信息等,都会造成RAID-5EE崩溃。, (5)RAID控制器的稳定性, RAID-5EE的数据分布结构中有校验块和热备块的存在,当RAID-5EE中有成员盘离线时,算法将变得非常复杂,RAID控制器将会工作在一个比较吃力的状态。而RAID控制器的负载太重便会极大地增加数据读写时出现I/O滞留的可能性,从而导致更多成员盘离线,或者导致RAID信息出错。, ,1.8.4 RAID-5EE数据恢复思路, RAID-5EE中数据的分布与RAID-5相比,每个条带组中多出一个热备块,如图1-39中的“HS0、HS1、HS2、HS3”就是热备块。,, 图1-39 RAID-5EE的结构图, 对RAID-5EE的数据进行重组,也需要先把物理盘去RAID化,作为单盘进行分析,如图1-39中的四块物理盘,把四块物理盘中的数据按照“A、B、C、D、E、F、G、H、......”的顺序拼接好,就是RAID-5EE逻辑盘中完整的数据。, 因为RAID-5EE的每块物理盘中都有校验块和热备块,所以分析RAID-5EE就需要比RAID-5多一个因素,即热备块的位置。另外RAID-5EE与RAID-5一样,也有左异步、左同步、右异步、右同步之分,也就是说,RAID-5EE有五个因素需要分析,第一个是RAID中每个条带的大小,也就是“A”或“B”这些数据块所占用的扇区数;第二个因素是RAID中硬盘的排列顺序,也就是盘序;第三个因素是校验块的循环方向;第四个因素是数据块的走向;第五个因素是热备块的位置。, 以图1-39中四块物理盘组成的RAID-5EE为例,假设条带的大小为32个扇区,物理盘的顺序就按照图中的排列顺序,那么只要到硬盘0中取0-31扇区的信息,再到硬盘1中取0-31扇区的信息,硬盘2的0-31扇区是热备块,跳过不取,硬盘3中0-31扇区的信息是校验块,跳过不取。接下来再回到硬盘。中取32-63扇区的信息,就这样依次按顺序取下去,把所有取出来的数据按照顺序衔接成一个镜像文件或者是镜像盘,这就成为完整的原RAID-5EE逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原RAID-5EE逻辑盘中的数据。, 如果RAID-5EE的一块成员盘事先已经离线,那么这块成员盘中的数据会被同步到热备块中,剩下的成员盘依然是一个完整的、结构特殊的RAID-5,这个特殊的RAID-5出现故障后,数据恢复的思路变化比较大,读者可以自行画出图来分析一下。, , ,1.9 HP双循环技术详解, HP双循环原来是有康柏公司开发的一种RAID-5的阵列形式,后来惠普收购了康柏,又被惠普所采用,所以一般称为“HP双循环”。, ,1.9.1 HP双循环数据组织原理, HP双循环的数据组织结构大致如图1-40所示:,, 图1-40 HP双循环RAID-5, 图中的“1、2、3、......”表示数据块,“P1、P2、P3、......”表示校验块,从图中可以看出此阵列为内外双循环阵列,其存储结构的特点如下:, (1)阵列的起始扇区位于每块物理盘的1088扇区(大多数情况下起始于1088扇区,但不是所有情况);, (2)大结构是一个RAID-5阵列,条带大小是512个扇区(大多数情况下是512个扇区,但不是所有情况);, (3)在每一个512扇区单元内,每块物理盘又组成条带大小为32个扇区(大多数情况下是32个扇区,但不是所有情况)的RAID-4。, ,1.9.2 HP双循环故障原因分析, 这里说的HP双循环故障,是指HP双循环逻辑盘丢失或不可访问。导致HP双循环故障的原因主要有以下几种:, (1)RAID控制器出现物理故障, RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对HP双循环中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。, (2)RAID信息出错, RAID控制器将物理盘配置为HP双循环后,会生成一些参数,包括该HP双循环的盘序、条带大小、RAID在每块物理盘中的起始地址等,还会记录有关该由双循环的相关信息,包括组成该HP双循环的物理盘数目、物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到HP双循环的成员盘中。, RAID信息出错就是指该HP双循环的配置信息和参数出现错误,导致RAID程序不能正确地组织管理HP双循环中的成员盘,从而导致HP双循环逻辑盘丢失或不能访问。, (3)HP双循环成员盘出现物理故障, HP双循环可以允许其中一块成员盘离线而不影响数据的完整性,如果HP双循环中的某一块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,该成员盘就不能正常使用,但剩下的成员盘可以利用异或运算计算出离线成员盘中的数据,所以HP双循环还不会崩溃。, 如果系统管理员没有及时替换出现故障的成员盘,当再有一块成员盘再出现故障离线后,HP双循环将彻底崩溃。, (4)人为误操作, 如果误将HP双循环中两块以上成员盘同时拔出、或者给HP双循环除尘时将成员盘拔出后忘了原来的顺序、以及不小心删除了HP双循环的配置信息等,都会造成HP双循环崩溃。, (5)RAID控制器的稳定性, HP双循环的数据分布结构中有校验块的存在,当HP双循环中有成员盘离线时,算法将变得更加复杂,RAID控制器将会工作在一个比较吃力的状态。而RAID控制器的负载太重便会极大地增加数据读写时出现I/O滞留的可能性,从而导致更多成员盘离线,或者导致RAID信息出错。, ,1.9.3 HP双循环数据恢复思路, HP双循环是由RAID-5结构的外循环和RAID-4结构的内循环结合而成,所以在重组HP双循环的数据时,需要分析盘序、RAID-4结构内循环的条带大小、RAID-5结构外循环的条带大小等参数。, 在分析完HP双循环的数据结构后,对于RAID-4结构的内循环,可以不理会校验所在成员盘,只对其他成员盘接照RAID-0方式读取数据;然后再将读取出来的各个RAID-4结构内循环的数据按照RAID-5的方式衔接起来,做成一个镜像文件或者是镜像盘,这就成为完整的原HP双循环逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原HP双循环逻辑盘中的数据。, , ,1.10 RAID-6技术详解, RAID-6的全称为“Independent Data disks with two independent distributed parity schemes(带有两个独立分布式校验方案的独立数据磁盘)”。, RAID-6是在RAID-5基础上,为了进一步加强数据保护而设计的一种RAID级别,与RAID-5的不同之处于在于,RAID-6采用双重校验方式,能够防止两块成员盘故障而引起的数据丢失,因此RAID-6的数据冗余性能相当好。, 但是由于RAID-6增加了一个校验,所以数据写入的效率比RAID-5还要低很多,而且RAID控制器的设计也更为复杂。另外RAID-6的磁盘空间利用率也比RAID-5低。, 前文介绍过,RAID-6有很多的标准,包括Intel公司的P+Q双校验RAID-6、NetApp公司的双异或RAID-6(也称为RAID-DP)、X-Code编码RAID-6、ZZS编码RAID-6、Park编码RAID-6、EVENODD编码RAID-6等,本节将介绍这些RAID-6的结构。, ,1.10.1 P+Q双校验RAID-6数据组织原理, P+Q双校验RAID-6是指在RAID-6除了采用RAID-5的异或校验以外,还增加了一个“Q”校验位,其数据组织结构如图1-41所示。,, 图1-41 P+Q双校验RAID-6数据分布图, 在图1-41中,“D0、D1、D2、......”是数据块,“P0、P1、P2、......”是P校验块,“Q0、Q1、Q2、......”是Q校验块。, P校验依然使用异或算法得出,即P0=D0 ⊕ D1,P1=D2 ⊕ D3。, Q校验使用基于伽罗华域(Galois Field,简写为GF)的里德一所罗门(Reed-Solomon)编码计算得出,即Q0=GF(D0) ⊕ GF(D1)、Q1=GF(D2) ⊕ GF(D3),其中GF(D0)的含义是对D0进行伽罗华域的里德一所罗门编码变换。, 里德一所罗门编码是欧文·里德(Irving Reed)和格斯·所罗门(Gus Solomon)于1960年发布的一种纠错编码,它使用伽罗华域运算法则,对于伽罗华域和里德一所罗门编码感兴趣的读者可以查看专业数学书籍。, P+Q双校验RAID-6在两块成员盘离线的情况下依然能够得到完整数据,具体算法分析如下:, 情况一:一块成员盘离线, 以图1-41为例,假设“物理盘3”离线,我们对每个条带组的数据分别进行分析:, (1)0号条带组, “物理盘3”离线后,0号条带组中缺失“Q0”校验块,不影响数据块“D0”和“D1”。, (2)1号条带组, “物理盘3”离线后,1号条带组中缺失“D3”数据块,RAID控制器可以通过计算式D2 ⊕ P1的出D3。, (3)2号条带组, “物理盘3”离线后,2号条带组中缺失“D5”数据块,RAID控制措可以通过计算式D4 ⊕ P2的出D5。,, (4)3号条带组, “物理盘3”离线后,3号条带组中缺失“P3”校验块,不影响数据块“D6”和“07”。, 情况二:两块成员盘离线, 以图1-41为例,假设“物理盘2”和“物理盘3”离线,RAID-6中只剩下“物理盘0”和“物理盘1”,我们对每个条带组的数据分别进行分析:, (1)0号条带组, “物理盘2”和“物理盘3”离线后,0号条带组中缺失“P0”和“Q0”校验块,不影响数据块“D0”和“D1", (2)1号条带组, “物理盘2”和“物理盘3”离线后,1号条带组中缺失“Q1”校验块和“D3”数据块,“Q1”校验块不用理会,RAID控制器可以通过计算式D2 ⊕ P1得出D3., (3)2号条带组, “物理盘2”和“物理盘3”离线后,2号条带组中缺失“D4”和“D5”数据块,只剩下“P2”和“Q2”两个校验块,RAID控制器可以通过以下方程式计算出D4和D5:, (4)3号条带组, “物理盘2”和“物理盘3”离线后,3号条带组中缺失“D7”数据块和“P3”校验块,只剩下“Q3”校验块和“D6”数据块。对于“P3”校验块不用理会,而对于“D7”数据块,RAID控制器先计算出Q3 ⊕ D6的结果,再通过GF(2**8)编码就可以得到D7的值。, ,1.10.2 NetApp双异或RAID-6数据组织原理, NetApp公司推出的双异或RAID-6也称为RAID-DP,它实际上也就是双RAID-4技术,所谓双RAID-4技术主要是说在同一磁盘阵列中组建两个独立的不同算法的校验磁盘,在单校验磁盘下工作原理与RAID-4一样,但增加了一个校验盘之后,则使整个磁盘阵列的安全性得到提高,能够允许两块盘同时离线。, 构建RAID-DP最少需要4块物理盘才能实现,下面以6块物理盘进行说明,其数据分布情况如图1-42所示:,, 图1-42 RAID-DP数据分布图, 图1-42中“P0、P1、P2、P3”是第一个独立的校验信息,属于横向校验,其中:, P0=D0 ⊕ D1 ⊕ D2 ⊕ D3;, P1=D4 ⊕ D5 ⊕ D6 ⊕ D7;, P2=D8 ⊕ D9 ⊕ D10 ⊕ D11;, P3=D12 ⊕ D13 ⊕ D14 ⊕ D15。, 图1-42中“DP0、DP1、DP2,DP3”是第二个独立的校验信息,属于斜向校验,其中:, DP0=D0 ⊕ D5 ⊕ D10 ⊕ D15;, DP1=D1 ⊕ D6 ⊕ D11 ⊕ P3;, DP2=D2 ⊕ D7 ⊕ P2 ⊕ D12;, DP3=D3 ⊕ P1 ⊕ D8 ⊕ D13。, 因为有第二个独立的校验信息存在,所以理论上RAID-DP即使两块成员如同时离线也不会出现故障。, 下面我们来分析在两块成员盘同时离线的情况下,RAID-DP如何保持数据的完整性。假设成员盘中的硬盘0和硬盘1同时离线,如图1-43所示。,, 图1-43 硬盘0和硬盘1同时离线的RAID-DP, 从图1-43可以看出,硬盘0和硬盘1同时离线后,数据块D0、D1,D4、D5、D8、D9、D12、D13丢失,在RAID-DP运行过程中,RAID控制器将用剩下的数据块和校验块计算出丢失的数据块,计算过程如下:, 第一步:计算数据块D1, 因为DP1=D1 ⊕ D6 ⊕ D11 ⊕ P3,, 所以D1=DP1 ⊕ D6 ⊕ D11 ⊕ P3。, 通过这个计算式将得到丢失的数据块D1,如图1-44所示。,, 图1-44 计算出丢失的数据块D1, 第二步:计算数据块D0, 因为P0=D0 ⊕ D1 ⊕ D2 ⊕ D3,, 所以D0=P0 ⊕ D1 ⊕ D2 ⊕ D3。, 通过这个计算式将得到丢失的数据快D0,如图1-45所示。,, 图1-45 计算出丢失的数据块D0, 第三步:计算数据块D5, 因为DP0=D0 ⊕ D5 ⊕ D10 ⊕ D15,, 所以D5=D0 ⊕ DP0 ⊕ D10 ⊕ D15。, 通过这个计算式将得到丢失的数据块D5,如图1-46所示。,, 图1-46 计算出丢失的数据块D5, 第四步:计算数据块D4, 因为P1=D4 ⊕ D5 ⊕ D6 ⊕ D7,, 所以D4=P1 ⊕ D5 ⊕ D6 ⊕ D7。,通过这个计算式将得到丢失的数据块D4,如图1-47所示。,, 图1-47 计算出丢失的数据块D4, 第五步:计算数据块D12, 因为DP2=D2 ⊕ D7 ⊕ P2 ⊕ D12,, 所以D12=D2 ⊕ D7 ⊕ P2 ⊕ DP2., 通过这个计算式将得到丢失的数据块D12,如图1-48所示。,, 图1-48 计算出丢失的数据块D12, 第六步:计算数据块D13, 因为P3=D12 ⊕ D13 ⊕ D14 ⊕ D15,, 所以D13=D12 ⊕ P3 ⊕ D14 ⊕ D15。, 通过这个计算式将得到丢失的数据块D13,如图1-49所示。,, 图1-49 计算出丢失的数据块D13, 第七步:计算数据块D8, 因为DP3=D3 ⊕ P1 ⊕ D8 ⊕ D13,, 所以D8=D3 ⊕ P1 ⊕ DP3 ⊕ D13。, 通过这个计算式将得到丢失的数据块D8,如图1-50所示。,, 图1-50 计算出丢失的数据块D8, 第八步:计算数据块09, 现在还剩下最后一个数据块D9需要计算。, 因为P2=D8 ⊕ D9 ⊕ D10 ⊕ D11,, 所以D9=D8 ⊕ P2 ⊕ D10 ⊕ D11。, 通过这个计算式将得到丢失的数据块D9,如图1-51所示。,, 图1-51 计算出丢失的数据块D9, 到此为止,丢失的数据块D0、D1,D4,D5、D8、D9、D12、D13己经全部计算出来,硬盘0和硬盘1中的其他数据块也可以用同样方法算出。, ,1.10.3 X-Code编码RAID-6数据组织原理, X-Code编码RAID-6也是一种双异或RAID也不过它的异或值是竖向放置,所以也称为垂直异或。, 构建X-Code编码RAID-6最少需要4块物理盘才能实现,下面以5块物理盘为了进行说明,其数据分布情况如图1-52所示:,, 图1-52 X-Code编码RAID-6数据分布图, 图1-52中“P0、P1、P2、P3”是第一个独立的校验信息,属于斜向校验,其中:, P3=D0 ⊕ D6 ⊕ D12;, P4=D1 ⊕ D7 ⊕ D13;, P0=D2 ⊕ D8 ⊕ D14;, P1=D3 ⊕ D9 ⊕ D10;, P2=D4 ⊕ D5 ⊕ D11;, 图1-52中“DP0、DP1、DP2,DP3”是第二个独立的校验信息,属于另一个方向的斜向校验,其中:DP0=D3 ⊕ D7 ⊕ D11;, DP1=D4 ⊕ D8 ⊕ D12;, DP2=D0 ⊕ D9 ⊕ P13;, DP3=D1 ⊕ P5 ⊕ D14;, DP4=D2 ⊕ P6 ⊕ D10。, 从以上的分析可以看出,X-Code编码RAID-6的异或算法对称度很高,各成员盘负载比较均衡。因1-52是以5块成员盘为例的X-Code编码RAID-6结构,阵列在运行时,以5个条带组为一个单元进行数据处理,如果是6块成员盘为例的X-Code编码RAID6结构,则以6个条带组为一个单元进行数据处理,以此类推。, 因为有二个独立的校验信息存在,所以理论上X-Code编码RAID-6即使两块成员盘同时离线也不会出现故障。, 不过X-Code编码RAID-6也存在很多问题,比如数据的重复异或运算较多,这就导致RAID控制器的计算量大,以及磁盘空间浪费比较多。, ,1.10.4 ZZS编码RAID-6数据组织原理, ZZS是三个俄罗斯人名的首字母,这三个俄罗斯人在1983年共同提出了一种编码形式,被命名为ZZS编码,也称为俄罗斯编码。, 将ZZS编码用于RAID-6中,要求成员盘的数目至少为4块,并且盘数必须为素数,所以ZZS编码RAID-6的成员盘数只能是5,7,11、13、17、19等数值。, 不过,ZZS编码的算法中允许其中一块成员盘中数据全部为0,这样就可以在RAID控制器中虚拟一块全空的成员盘,从而使ZZS编码RAID-6的成员盘数目也可以是4、6、10、12、16、18等数值,即素数减去1。, ZZS编码的RAID-6规定:在成员盘数为n时,(n-1)/2个条带组作为一个运算单元。所以由7块成员盘组成的ZZS编码RAID也运算单元为3个条带组,其结构如图1-53所示。,, 图1-53 ZZS编码RAID-6数据分布图, ZZS编码RAID-6属于垂直校验形式,图1-53中3个条带组为一个运算单元,其中“Z0、Z1、Z2,Z3、Z4,Z5、Z6”分别是同一块成员盘中下面两个数据块经过ZZS算法计算出的校验值。, ZZS编码RAID-6中两块成员盘同时离线也不会影响数据的完整性,并且其数据重复计算盘比X-Code编码RAID-6少一些。, ,1.10.5 Park编码RAID-6数据组织原理, Park是IBM公司的工程师,他通过计算机程序找到了一种应用于RAID-6的编码方式,能够支持的成员盘数是3到38,这种编码被命名为Park编码。, Park编码RAID-6都是以3个条带组为一个运算单元,下面以4块成员盘为例,其结构如图1-54所示。,, 图1-54 Park编码RAID-6数据分布图, Park编码RAID-6也属于垂直校验形式,图1-54中3个条带组为一个运算单元,其中“P0、P1、P2、P3”分别是同一块成员盘中下面两个数据块经过Park编码算法计算出的校验值,不过Park编码的各种分布方法之间没有任何联系,其具体数值只能在给定磁盘数量的情况下去查看Park编码表。, ,1.10.6 RAID-6故障原因分析, 这里说的RAID-6故障,是指RAID-6逻辑盘丢失或不可访问。导致RAID-6故障的原因主要有以下几种:, (1)RAID控制器出现物理故障, RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对RAID-6中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。, (2)RAID信息出错, RAID控制器将物理盘配置为RAID-6后,会生成一些参数,包括该RAID-6的盘序、条带大小、RAID在每块物理盘中的起始地址、校验的排列方式等,还会记录该RAID-6的相关信息,包括组成该RAID-6的物理盘数目、物理盘的容量大小等,所有这些信息和参数就被称为RAID信息,也称为RAID元数据,它们会被保存到RAID控制器中,有时候也会保存到RAID-6的成员盘中。, RAID信息出错就是指该RAID-6的配置信息和参数出现错误,导致RAID程序不能正确地组织管理RAID-6中的成员盘,从而导致RAID-6逻辑盘丢失或不能访问。, (3)RAID-6成员盘出现物理故障, RAID-6可以允许其中两块成员盘离线而不影响数据的完整性,如果RAID-6中的某两块成员盘相继出现物理故障,剩下的成员也可以利用校验值运算计算出离线成员程中的数据,所以RAID-6还不会崩溃。, 如果系统管理员没有及时替换出现故障的成员盘,当第三块成员盘再出现故障离线后,RAID-6将彻底崩溃。, (4)人为误操作, 如果误将RAID-6中三块以上成员盘同时拨出、或者给RAID-6除尘时将成员盘拔出后忘了原来的顺序、以及不小心删除RAID-6的配置信息等,都会造成RAID-6崩溃。, (5)RAID控制器的稳定性, RAID-6的数据分布结构中有两个校验值存在,当RAID-6中有成员盘离线时,尤其是当两块成员盘离线后,算法将变得非常复杂,RAID控制器将会工作在很吃力的状态。而RAID控制器的负载太重便会极大地增加数据读写时出现I/O滞留的可能性,从而导致更多成员盘离线,或者导致RAID信息出惜。, ,1.10.7 RAID-6数据恢复思路, 这里以商业应用比较多的P+Q双校验RAID-6为例分析其数据恢复的思路。, RAID-6中数据的分布与RAID-5相比,每个条带组中多出一个Q校验,如图1-55中的“Q0、Q1、Q2,Q3”就是Q校验。,, 图1-55 RAID-6的结构图, 对RAID-6的数据进行重组,需要先把物理盘去RAID化,作为单盘进行分析,如图1-55中的四块物理盘,把四块物理盘中的数据按照“D0、D1、D2、03、......”的顺序拼接好,就是RAID-5逻辑盘中完整的数据。, 因为RAID-5的每块物理盘中都有P校验块和Q校验块,所以分析RAID-6就需要比RAID-5多一个因素,即Q校验块的位置。另外RAID-6与RAID-5一样,也有左异步、左同步、右异步、右同步之分,也就是说,RAID-6有五个因素需要分析,第一个是RAID中每个条带的大小,也就是“D0”或“D1”这些数据块所占用的扇区数;第二个因素是RAID中硬盘的排列顺序,也就是盘序;第三个因素是P校验块的循环方向;第四个因素是数据块的走向;第五个因素是Q校验块的位置。, 以图1-55中四块物理盘组成的RAID-6为例,假设条带的大小为32个扇区,物理盘的顺序就按照图中的排列顺序,那么只要到硬盘0中取0-31扇区的信息,再到硬盘1中取0-31扇区的信息,硬盘2的0-31扇区是P校验块,跳过不取,硬盘3中0-31扇区的信息是Q校验块,也跳过不取。接下来再回到硬盘0中取32-63扇区的信息,就这样依次按顺序取下去,把所有取出来的数据按照顺序衔接成一个镜像文件或者是镜像盘,这就成为完整的原RAID-6逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原RAID-6逻辑盘中的数据。, , ,1.11 JBOD技术详解, JBOD即“Just Bundle Of Disks”,中文含义为“简单磁盘捆绑”,有时候也被称为“磁盘簇”,它还有一个英文名称叫做“Span”。, JBOD不是标准的RAID级别,仅仅在近儿年才被一些服务器厂家提出,并被广泛采用。, ,1.11.1 JBOD数据组织原理, 构建JBOD至少需要两块物理盘,它的做法是将多个物理磁盘一个接一个串联到一起,从而组建为一个大的逻辑盘。, JBOD上的数据组织也很简单,它从第一个成员盘开始存储,当第一个成员盘的存储空间用完后,再依次从后面的成员盘开始存储数据。, 以三块成员盘为例,其结构如图1-56所示。,, 图1-56 JBOD数据分布图, JBOD的读写性能完全等同于对单一物理盘的存取操作,同时JBOD也不提供数据安全保障,因为它没有任何冗余,它只是提供一种简单的利用磁盘空间的方法。JBOD的逻辑盘容量等于组成JBOD的所有物理盘的容量总和。, ,1.11.2 JBOD故障原因分析, 这里说的JBOD故障,是指JBOD逻辑盘丢失或不可访问。导致JBOD故障的原因主要有以下几种:, (1)RAID控制器出现物理故障, RAID控制器如果出现物理故障,将不能被计算机识别,也就无法完成对JBOD中各个物理成员盘的控制,在这种情况下,通过RAID控制器虚拟出来的逻辑盘自然就不存在了。, (2)RAID信息出错, 虽然JBOD不是真正意义上的RAID,但RAID控制器将物理盘配置为JBOD,也会生成一些参数,包括该JBOD的盘序、JBOD在每块物理盘中的起始地址、该JBOD的物理盘数目、物理盘的容量大小等,所有这些信息和参数会被保存到RAID控制器中,有时候也会保存到JBOD的成员盘中。, RAID信息出错就是指该JBOD的配置参数或者相关信息出现错误,导致RAID程序不能正确地组织JBOD中的成员盘,从而导致JBOD逻辑盘丢失或不能访问。, (3)JBOD成员盘出现物理故障, JBOD不允许任何一块成员盘离线,如果JBOD中的某一块成员盘出现物理故障,比如电路损坏、磁头损坏、固件损坏、出现坏扇区等,该成员盘就不能正常使用,从而导致JBOD崩溃。, (4)人为误操作, 如果误将JBOD中的成员盘拔出、或者给JBOD除尘时将成员盘拔出后忘了原来的顺序、以及不小心删除了JBOD的配置信息等,都会造成JBOD崩溃。, ,1.11.3 JBOD数据恢复思路, JBOD没有任何冗余性,其中任意一块成员盘出现故障,都会导致所有数据丢失,所以使用JBOD的风险很大。, JBOD出现故障后,要恢复其中的数据,必须先修复有故障的成员盘,或者将其做出完整的磁盘镜像,也就是说在恢复JBOD的数据时,全部成员盘不能有任何缺失。, 这里以一个三块物理盘组成的JBOD为例,讲解JBOD出现故障后数据恢复的思路,该JBOD的结构如图1-57所示。,, 图1-57 JBOD结构图, 对JBOD原逻辑盘中的数据进行恢复,必须要把所有物理盘重组,因为JBOD己经不可用,所以先把物理盘从RAID控制器中取出来,即“去RAID化”,作为单盘进行分析。, JBOD结构并没有对数据进行条带化,所以不必分析条带大小,只需要分析成员盘的盘序即可,分析出成员盘的盘序后用程序将各成员盘按顺序首尾相接,就可以衔接成原有JBOD逻辑盘了。, 不过在很多JBOD中,数据在每块物理盘的起始位置并不是硬盘的第一个扇区,数据在每块物理盘的结束位置也不是硬盘的最后一个扇区,往往在物理盘的前部会留有一些扇区,如图1-57中的“F0、F1、F2”部分;在物理盘的尾部也会留有一些扇区,如图1-57中的“B0、B1、B2”部分,中间的“D0、D1,D2”才是真正的数据。, 对于这种情况,必须分析出“F0、F1、F2”和“B0、B1、B2”部分的扇区数,把物理盘掐头去尾,只把中间的“D0、D1,D2”按照盘序衔接起来,做成一个镜像文件,或者是镜像盘,这就成为完整的原JBOD逻辑盘的结构了,直接访问这个重组出来的镜像文件或镜像盘,就得到了原JBOD逻辑盘中的数据。, , , 本章介绍了各种级别RAID的数据结构、RAID故障的原因及RAID数据恢复的基本思路,RAID数据恢复的主要方法是将物理盘去RAID化后的虚拟重组,在重组之前最重要的工作是RAID结构分析,这也是RAID数据恢复中难道最大的工作,如果能够正确分析出RAID结构,虚拟重组这一步就可以交给工具软件去完成了。