第三章 磁盘阵列和RAIDv10.docx
- 文档编号:4035715
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:63
- 大小:1.10MB
第三章 磁盘阵列和RAIDv10.docx
《第三章 磁盘阵列和RAIDv10.docx》由会员分享,可在线阅读,更多相关《第三章 磁盘阵列和RAIDv10.docx(63页珍藏版)》请在冰豆网上搜索。
第三章磁盘阵列和RAIDv10
第三章磁盘阵列和RAID_v1.0
幻灯片1
幻灯片2
幻灯片3
幻灯片4
幻灯片5
磁介质盘片存储是通过在旋转的电机设备中安装磁介质盘片以及读写头电路而实现的。
磁盘由涂着磁性材料的圆形盘片组成,读写电路使用二进制数据对磁介质进行编码,从而实现了读写功能。
磁头中可以配有数据缓冲区,以弥补数据读写中产生的延迟。
盘片的存储结构以磁道的形式组织,磁道指的是覆盖了盘片上所有读写区域的同心圆。
磁道进一步被划分成磁盘上更小的读写单元,即扇区。
随着磁盘的旋转,当读写头移动到特定的磁道上时,磁道中相应扇区的数据就可以被读写头所处理。
驱动器由多个盘片组成,盘片的两面都可以存放数据,每个盘片上都配有各自的读写头,各个盘片上位置相同的磁道都可以在同样的位置上读写。
这些位置相同的磁道的集合称为柱面。
利用这样的组织方式,磁盘驱动器中的每个扇区都可以根据其柱面、磁头和扇区号得到一个惟一的地址。
扇区是衡量磁盘上所存储数据大小的基本单位。
一个扇区中所能存储的字节数与磁盘格式化后的容量有关。
扇区必须在头部的数据域中存放地址信息,以及对HDA(Headdiskassembly,头盘组件)纠错进行同步所需的信息。
由于头部区域以及相应的同步缝隙都不能用于数据的存储,所以格式化以后的容量总是会小一些。
与磁盘相关的技术指标包括容量、传输速率和平均访问时间。
在考虑实际应用的时候,这几个指标都比较重要。
在着重考虑容量问题时,从磁盘上读取数据的事务量则可能会导致数据查找速度的降低。
而如果着重考虑大量数据的传输(如数据仓库)时,可以在容量和传输速率方面实现高度的优化,但这时往往需要以牺牲平均访问时间作为代价。
所以,在实际的不同应用中,需要对上述参数进行适当的衡量,以部署最佳配置方案。
幻灯片6
将控制器集成到磁盘设备中,就初步形成了完整的存储系统。
实现这一集成配置方式的产品虽然很多,但是其基本模式都是用控制器将一组磁盘驱动器连接起来。
由于磁盘驱动器被连接到了一起,他们就构成了一个阵列(Array)。
这种方式是提高存储容量和性能的基本手段。
用这种形式配置起来的磁盘组,既可以单独使用,也可以用集成的模式将整个阵列中的容量组合起来,形成一个虚拟的“大容量磁盘”使用。
这种虚拟的“大容量磁盘”可以使用整个阵列的容量,在实际应用时,应用系统的I/O部件将此磁盘阵列视为一个磁盘来进行操作,而数据究竟放在该阵列中的那一个磁盘上,则由控制器去负责管理。
这就是廉价磁盘冗余阵列(RedundantArraysofInexpensiveDisks,RAID)等高级存储系统功能的基础,同时也说明了存储虚拟化的概念。
幻灯片7
最初级的存储阵列配置方式是JBOD(JustaBunchofDisks,不过是一堆磁盘,存储行业戏语)。
JBOD如同它的名称,是将一组磁盘驱动器连接在一起构成一个阵列,其中的每个驱动器都是一个可寻址的单元。
这种方式可以提供更高的容量,但是当阵列中的某个驱动器出现故障的时候,这种配置方式不能提供任何的容错能力。
RAID:
RedundantArrayofIndependentDisks,中文为独立磁盘冗余阵列,或简称磁盘阵列。
它是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。
RAID与JBOD阵列的主要不同之处在于它在整个阵列中对数据进行分区,并提供数据恢复功能。
数据恢复功能主要是通过磁盘奇偶校验信息实现的。
当一个驱动器发生故障时,奇偶校验信息可以从阵列中其它驱动器上的数据中计算出所丢失的数据,数据按照最合适于恢复和保护策略的方式分布在阵列上。
RAID有若干个级别,分别可以实现不同等级的恢复和保护策略。
幻灯片8
JBOD(JustaBunchofDisks,简单磁盘捆绑),通常又称为Span,其实JBOD并不是真正意义上的RAID模式,只是在近几年才被一些厂家提出,并被广泛采用,也有人把它归为串联式的RAID0,其目的纯粹是为了增加磁盘的容量。
Span是在逻辑上把几个物理磁盘一个接一个的串联起来,从而提供一个大的逻辑磁盘。
Span上的数据简单地从第一个磁盘开始存储,当第一个磁盘的存储空间用完后,再依次从后面的磁盘开始存储数据,但Span并不提供数据安全保障。
幻灯片9
RAID技术的主要功能:
1、通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度
2、通过对一阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高了数据存取速度
3、通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。
幻灯片10
幻灯片11
在学习RAID的知识之前,一些预备的术语和RAID的基础概念是需要了解清楚的。
RAID的基本概念包括了RAID的数据组织方式、数据的存取方式、数据冗余的方式以及阵列中某个磁盘驱动器故障后的后续数据可用性保证方式等知识。
下边将就这几个问题进行更为深入的探讨。
幻灯片12
在RAID的数据存储中,数据不是被连续的存储到某一个磁盘驱动器上的,而是将数据分做若干段,将每一段数据分布存储在各个磁盘驱动器上。
在这个过程中,每个磁盘驱动器上用来存储数据段的空间就叫做分块(strip)。
而在同一磁盘阵列中的多个磁盘驱动器上的相同“位置”(或者说是相同编号)的分块,就构成了条带(stripe)。
通过这样的构建方式,形成一个虚拟的磁盘。
当主机端发送的I/O操作被传送到磁盘阵列时,阵列管理软件就会同时产生多个内部的I/O操作确定在每个成员磁盘上相应的地址。
阵列中的分条被映射为虚拟磁盘中逻辑上连续的块,当主机向阵列也就是虚拟磁盘写数据的时候,阵列管理软件将输入的I/O请求转换为阵列中的分条,逐块向磁盘成员写入数据。
幻灯片13
并行存取模式是把所有磁盘驱动器的主轴马达作精密的控制,使每个磁盘的位置都彼此同步,然后对每一个磁盘驱动器作一个很短的I/O数据传送,如此一来,从主机来的每一个I/O 指令,都平均分布到每一个磁盘驱动器。
为了达到并行存取的功能,RAID 中的每一个磁盘驱动器,都必须具备几乎完全相同的规格:
转速必须一样;磁头搜寻速度﹝Access Time﹞必须相同;Buffer 或Cache的容量和存取速度要一致;CPU处理指令的速度要相同;I/O Channel 的速度也要一样。
实际上,要利用并行存取模式,RAID 中所有的成员磁盘驱动器,应该使用同一厂商相同型号的磁盘驱动器。
并行存取RAID之架构,以其精细的马达控制和分布之数据传输,将数组中每一个磁盘驱动器的性能发挥到最大,同时充分利用存储总线的带宽,因此特别适合应用在大型、数据连续的档案存取应用,例如:
影像、视讯档案服务器
数据仓储系统
多媒体数据库
电子图书馆
印前或底片输出档案服务器
其它大型且连续性档案服务器
由于并行存取RAID架构之特性,RAID 控制器一次只能处理一个I/O要求,无法执行Overlapping 的多任务,因此非常不适合应用在I/O次数频繁、数据随机存取、每笔数据传输量小的环境。
同时,因为并行存取无法执行Overlapping 的多任务,因此无法避免磁盘驱动器的寻道时间,而且在每一个I/O的第一笔数据传输,都要等待第一个磁盘驱动器旋转延迟(平均为磁盘旋转半圈的时间)。
所以磁盘驱动器的机械延迟时间,是并行存取架构的最大问题。
相对于并行存取模式,独立存取模式并不对成员磁盘驱动器作同步转动控制,其对每个磁盘驱动器的存取,都是独立且没有顺序和时间间隔的限制。
因此,独立存取模式可以尽量地利用overlapping 多任务、Tagged Command Queuing等等高阶功能,来避免磁盘驱动器的机械时间延迟(寻道时间和机械延迟)。
由于独立存取模式可以做overlapping 多任务,而且可以同时处理来自多个主机不同的I/O Requests,在多主机环境﹝如Clustering﹞,更可发挥最大的性能。
由于独立存取模式可以同时接受多个I/O Requests,因此特别适合应用在数据存取频繁、每笔数据量较小的系统。
例如:
在线交易系统或电子商务应用
多使用者数据库
ERM及MRP 系统
小文件之文件服务器
幻灯片14
所谓的镜像冗余方式就是指使用磁盘镜像技术来实现冗余,以提高数据的可靠性和可用性。
镜像冗余的实质就是将保存在磁盘驱动器中的数据做一份另外的完整拷贝,然后存储在另外一个磁盘驱动器中。
当其中一个磁盘驱动器发生故障以后,数据仍然能从另一个磁盘驱动器中被读出,由此,数据的安全性和可靠性得到极大的保证。
镜像冗余方式可以得到最好的数据冗余保护,并且由于每个磁盘上都保存有完整的数据,所以当有数据读操作的时候,多个读操作可以被分散到各个磁盘以分担工作负荷,使得数据读取速度得到提高,但是镜像冗余方式的磁盘空间利用率就相对比较低,只有50%。
幻灯片15
校验冗余是通过计算保存在阵列中成员磁盘驱动器上数据的校验值,并将计算出来的校验值保存在另外的磁盘资源上。
当数据出错或者是某个阵列成员磁盘故障以后,通过剩余数据和校验信息计算出丢失的数据来提供数据的安全性和可靠性。
目前比较常用的算法有XOR异或校验算法。
在某个时间新的磁盘将要替代阵列中的失效磁盘,这时会要运行一个校验恢复进程。
校验恢复进程读出所有其他磁盘上的数据(包括校验数据),然后在新加入的磁盘上使用XOR算法恢复数据。
校验冗余相较于镜像冗余而言,为保证数据可用性而占用的磁盘资源远远少于镜像冗余方式。
但是,对于磁盘故障或者数据出错的恢复而言,校验冗余需要占用CPU或者需要专用硬件来对剩余数据和校验信息一起做计算来计算出丢失的数据,而镜像冗余方式只需要读取备份盘中的信息即可。
同时,对于数据的写入操作,镜像冗余方式可以同时将数据写入主用盘和备用盘,冗余备份对数据写入效率基本没有影响。
但是如果使用校验冗余,对任何一个阵列成员磁盘进行写操作都会导致校验信息的重新计算,所以会对存储系统的效率有一定影响。
幻灯片16
设有数据A,B,则校验数据为P:
如果A为1,B为0,则校验P为1:
A
(1)⊕B(0)=P
(1)
则有B(0)⊕P
(1)=A
(1);A
(1)⊕P
(1)=B(0);
如果A为0,B为0,则校验数据P为0:
A(0)⊕B(0)=P(0)
则有A(0)⊕P(0)=B(0),B(0)⊕P(0)=A(0)
如果A为1,B为1,则校验数据P为0:
A
(1)⊕B
(1)=P(0)
则有,A
(1)⊕P(0)=B
(1),B
(1)⊕P(0)=A
(1)
结论:
无论ABP如何取值,只要知道其中任意两个就可以通过运算得到另外一个述职。
所以,对于XOR运算而言,具备一下两个特性:
A)结果与运算顺序无关。
也就是(A⊕B)⊕C=A⊕(B⊕C)。
B)各个参与运算的数字与结果循环对称。
即:
如果A⊕B⊕C=P,那么A=B⊕C⊕P;B=A⊕C⊕P;C=A⊕B⊕P。
幻灯片17
热备(HotSpare):
当冗余的RAID阵列中某个磁盘失效时,在不干扰当前RAID系统正常使用的情况下,用RAID系统中另外一个正常的备用磁盘顶替失效磁盘,及时保持RAID系统的冗余性。
热备通过配置热备盘实现,热备盘分为全局热备盘和局部热备盘。
全局热备盘是指为整个系统中多个阵列分配的、作为备用盘的磁盘。
当系统中任意一个具有冗余功能的RAID阵列中单个成员磁盘失效时,全局热备会顶替该磁盘。
局部热备盘是为系统中某一个指定的RAID阵列提供备件的磁盘,其他的RAID阵列中的磁盘失效时是不能够使用该热备盘的。
局部热备又可以分为专用热备盘和分布式热备盘
热换(HotSwap):
指在不影响系统正常运转的情况下,用正常的磁盘替换RAID系统中的失效磁盘。
无论是否使用热备盘,都需要一种方法撤离RAID阵列中失效的组件,并用正常组件替代它。
假如这个过程中没有干扰RAID阵列的操作就可以称做热换。
大多数情况下,热备和热换技术是结合使用的。
尽管热换使事情变得简单但一旦错误地拆下一个磁盘,将会导致灾难性的后果。
幻灯片18
重构:
镜像阵列或者RAID阵列中发生故障的磁盘上的所有用户数据和校验数据的重构(rebuild)过程,或者将这些数据写到一个或者多个备用磁盘上的过程。
在大多数的阵列中,在应用程序访问阵列的虚拟磁盘上的数据时就会引发重构过程。
系统中需设置一个热添加的备份盘或用一个新的替代磁盘替代故障磁盘。
当满足以下条件时开始数据自动重构:
有一个热备份盘存在(独立于故障磁盘)
所有磁盘都配置为冗余阵列(RAID1,3,5,01)
重构的所有操作都是在不中断系统操作的情况下进行的。
幻灯片19
在线扩容:
如果已创建的RAID组容量已无法满足业务需求,而存储设备上面还有空余的硬盘槽位,在不断电的前提下,向空余槽位中插入硬盘,并将新的物理硬盘容量加入到已有的RAID组中而不中断业务的操作。
RAID级别迁移:
存储设备在使用过程中,更改已有RAID组的RAID等级,而不中断业务的操作。
幻灯片20
目前RAID的实现方式分为硬件RAID方式和软件RAID方式。
基于硬件的RAID是采用集成了处理器的RAID适配卡(简称RAID卡)来实现的。
它拥有自己的控制处理器、I/O处理芯片和存储器,减少对主机CPU运算时间的占用,提高数据传输速度。
RAID控制器负责路由、缓冲以及主机和磁盘阵列之间的数据流管理。
硬件RAID又分为基于I/O处理器和基于I/O控制器两种类型。
基于软件的RAID功能的实现完全依赖于主机的CPU,没有额外的处理器和I/O芯片,所以低速CPU很难满足这个需求。
软件RAID又分为基于驱动程序和基于OS两种类型。
软件RAID需要占用CPU处理周期,并且依赖于操作系统,并且不能提供这些功能:
硬件热插拔
硬件热备份
远程阵列管理
S.M.A.R.T硬盘支持等
幻灯片21
RAID0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。
RAID0使用“条带”(striping)技术把数据分布到各个磁盘上,在那里每个“条带”被分散到连续“块”上,RAID0至少使用两个磁盘驱动器,并将数据分成从512字节到数兆字节(一般是512Byte的整数倍)的若干块,这些数据块被交替写到磁盘中。
第1块数据被写到驱动器1中,第2块数据被写到驱动器2中,如此类推,当系统到达阵列中的最后一个磁盘时,就重新回到驱动器1的下一分段进行写操作,分割数据将I/O负载平均分配到所有的驱动器。
幻灯片22
RAID0的数据写入是以条带形式将数据均匀分布到RAID组的各个硬盘中。
RAID0的数据是按照条带进行写入的,即一个条带的所有分块写满后,再开始在下一个条带上进行数据写入。
如上图,现在有数据D0,D1,D2,D3,D4,D5需要在RAID0中进行写入,首先将第一个数据D0写入第一块硬盘位于第一个条带的块,将第二个数据D1写入第二块硬盘位于第一个条带的块,至此,第一个条带的各个块写满了数据,当有数据D2需要写入时,就要对下一个条带进行写入,将数据D2写入第一块硬盘位于第二个条带的块中…数据块D3,D4,D5的写入同理。
写满一个条带的所有块再开始在下一个条带中进行写入。
幻灯片23
RAID0的数据读取:
RAID0在收到数据读取指令后,就会在各个硬盘中进行搜索,看需要读取的数据块位于哪一个硬盘上,再依次对需要读取的数据进行读取。
如上图,现在收到读取数据D0,D1,D2,D3,D4,D5的指令,首先从第一块磁盘读取数据块D0,再从第二块磁盘读取数据块D1…对各个数据块顺序的从磁盘阵列读取后再由RAID控制器进行整合,传送给系统,至此,整个读取过程结束。
幻灯片24
由于RAID0只是将数据按一定方式组织起来,而没有在各个磁盘的数据块之间提供数据安全性保护,所以一旦阵列中有某一个驱动器发生故障,整个阵列将失效。
幻灯片25
由于驱动器可以同时写或读,读写性能得以显著提高。
但是,它却没有数据保护能力。
如果一个磁盘出故障,数据就会丢失。
RAID0不适用于关键任务环境,但是,它却非常适合于视频生产和编辑或图像编辑。
条带允许从多个磁盘上同时存取信息,可以平衡磁盘间的输入/输出负载,从而达到最大的数据容量,最快的存取速度。
RAID0是唯一没有冗余的RAID级别。
没有冗余使RAID0除了速度外还有低成本的优点,但这也意味着如果阵列中某个磁盘失效,该阵列上的所有数据都将丢失。
在RAID0中,从磁盘故障恢复必须更换出错的磁盘,并从备份中恢复所有驱动器上的数据。
对于可以承受因从磁盘故障中恢复而造成的时间损失的网络来说,RAID0提供了一个高性能选择。
它既可以通过软件,也可以通过硬件实现。
幻灯片26
RAID1也被称为镜像,其目的是为了打造出一个安全性极高的存储系统。
RAID1使用两组相同的磁盘系统互作镜像,速度没有提高,但是允许单个磁盘故障,数据可靠性最高。
其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。
当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。
因为有镜像硬盘做数据备份,所以RAID1的数据安全性在所有的RAID级别上来说是最好的。
幻灯片27
RAID1在进行数据写入的时候,并不是像RAID0那样将数据划分为条带存储,而是将数据写入两个磁盘,这两个磁盘上的数据完全相同,互为镜像。
这两个磁盘写满后,再写入后面的两个磁盘,总之,总是有两个磁盘互为镜像,存储的内容完全相同。
如上图,需要将数据块D0,D1,D2写入RAID1,先在两个磁盘上同时写入数据块D0,再在两个磁盘上同时写入数据块D1…
幻灯片28
RAID1在进行数据读取的时候,如果一个磁盘损坏,可以将I/O的执行放到镜像磁盘上进行。
幻灯片29
RAID1的两组磁盘是互为镜像的,两组磁盘的内容完全相同,这样,任何一组磁盘中的数据出现问题,都可以马上从另一组磁盘进行镜像恢复。
如上图,磁盘1损坏导致数据丢失,我们需要将故障磁盘用正常磁盘替换,再读取磁盘2的数据,将其复制到磁盘1上,从而实现了数据的恢复。
幻灯片30
对于RAID1而言,如果一个磁盘失效,另一个还可用,因此由于磁盘故障而造成的数据损失和系统中断实际上被去除了。
RAID1还可以实现双工--另一种数据保护技术。
镜像只是复制到每个磁盘,双工则可以复制整个控制器,这样在磁盘故障或控制器故障发生时,数据都可以得到保护。
实现RAID1至少需要2个驱动器。
镜像和双工的缺点是复制每个磁盘或驱动器的费用较高,在大型服务器上,这可能是一项很大的花销。
RAID1可以由软件或硬件方式实现。
幻灯片31
RAID2是将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用“加重平均纠错码”的编码技术来提供错误检查及恢复,这种纠错码也被称为“海明码”。
海明码需要多个磁盘存放检查及恢复信息,使得RAID2技术实施更复杂,因此在商业环境中很少使用。
在上图中,A0,A1,A2,A3为A数据段,ECC/Ax,ECC/Ay,ECC/Az为A数据段的ECC校验码。
海明码在磁盘阵列中被间隔写入到磁盘上,而且地址都一样,也就是在各个磁盘中,其数据都在相同的磁道及扇区中。
RAID2的设计是使用共轴同步的技术,存取数据时整个磁盘阵列一起动作,在各个磁盘的相同位置作平行存取,所以有最快的存取时间,其总线是特别的设计,以大带宽并行传输所存取的数据。
在大型文件的存取应用中,RAID2有最好的性能,但如果文件太小,将会影响其性能,因为磁盘的存取是以扇区为单位,而RAID2的存取是所有磁盘平行动作,而且是作位的存取,所以小于一个扇区的数据量会使其性能大打折扣。
幻灯片32
海明码字的构建方法:
1、把所有2的幂次方的数据位标记为奇偶校验位(编号为1,2,4,8,16,32,64等的位置)
2、其他数据位用于待编码数据.(编号为3,5,6,7,9,10,11,12,13,14,15,17等的位置)
3、每个奇偶校验位的值代表了代码字中部分数据位的奇偶性,其所在位置决定了要校验和跳过的比特位顺序。
4、如果全部校验的位置中有奇数个1,把该奇偶校验位置为1;如果全部校验的位置中有偶数个1,把该奇偶校验位置为0.
幻灯片33
在RAID2中,磁盘驱动器组中的第一个、第二个、第四个……第2的n次幂个驱动器是专门的校验盘,用于校验和纠错,余下的才用于数据存储,所以磁盘利用率相当低,而且,磁盘组中的磁盘数量越少,磁盘的利用率越低。
RAID2在大数据量的读写方面具有极高的优势,但在对少量数据进行读写时性能表现较差,所以RAID2在实际应用中较少。
RAID至少需要3块磁盘来组成阵列。
RAID2是设计给需要连续存取大量数据的计算机使用的,如作影像处理或CAD/CAM的工作站等,并不适用于一般的多用户环境、网络服务器和PC机。
幻灯片34
RAID3为带有专用奇偶位的条带化阵列,是RAID0的一种改进模式。
它也采用了类似于RAID2模式中的奇偶校验技术,不过没有使用海明码技术而采用较为简单的异或算法。
在阵列中有一个驱动器专门用来保存其它驱动器中对应条带中数据的奇偶校验信息。
奇偶位是编码信息,如果某个驱动器中的数据出错或者某一个驱动器故障,可以通过对奇偶校验信息的计算来恢复出故障驱动器中的数据信息。
在数据密集型环境或者是单一用户环境中,组建RAID3对访问较长的连续记录较好。
幻灯片35
RAID3为单盘容错并行传输。
即采用Stripping技术将数据分块,对这些块进行异或校验,校验数据写到最后一个硬盘上。
它的特点是有一个盘为校验盘,数据以位或字节的方式存于各盘(分散记录在组内相同扇区的各个硬盘上)。
当一个硬盘发生故障,除故障盘外,写操作将继续对数据盘和校验盘进行操作。
幻灯片36
RAID3的数据读取是按照条带来进行的。
将每个磁盘的驱动器主轴马达做精确的控制,同一条带上各个磁盘上的数据位同时读取,各个驱动器得到充分利用,读性能较高。
RAID3的数据读写属于并行方式。
幻灯片37
RAID3的数据恢复是通过对剩余数据盘和校验盘的异或计算重构故障盘上应有的数据来进行的。
如上图的RAID3磁盘结构,当磁盘2故障,其上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 磁盘阵列和RAIDv10 第三 磁盘阵列 RAIDv10