raid5学习总结胶片_第1页
raid5学习总结胶片_第2页
raid5学习总结胶片_第3页
raid5学习总结胶片_第4页
raid5学习总结胶片_第5页
已阅读5页,还剩25页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RAID5学习总结胶片练习1:把RAID5虚拟磁盘中的数据写到物理磁盘中1虚拟磁盘disk1disk2disk3disk42453679810111213141516

……

……

……

……

……物理磁盘练习2计算题假设:D0⊕D1⊕D2⊕D3=P⊕指XOR操作,即异或运算D0’⊕D1⊕D2⊕D3=P’D0’指新数据,P’指新校验值是否有这样的结论:P’=D0’⊕D0⊕P

???证明过程:D0⊕D1⊕D2⊕D3=P=>D1⊕D2⊕D3=P⊕D0=>D0’⊕D1⊕D2⊕D3=P⊕D0⊕D0’,又因为D0’⊕D1⊕D2⊕D3=P’

所以 P’=D0’⊕P⊕D0练习3判断题 1.创建RAID5时如果没有进行初始同步,那么这个RAID5是没有冗余功能的,写在RAID上面的数据会有风险。 2.正常情况下,对RAID5进行读操作的时候,绝对不会去读校验数据。 3.一个Normal状态下的RAID5,在发生读写IO时,绝对不会去读校验数据。

4.一个降级状态下的RAID5,发生写操作的时候,不会做校验,而转变为一个类似的RAID0。目录基本概念约定从RAID0到RAID5Normal状态的RAID5如何处理读写命令Critical状态的RAID5如何处理读写命令其他一些实现细节一.基本概念约定很多不同版本的资料里这些命令的说法各异,本胶片以下面的为准:ExtentStripeStripPageSectorStripedepth(条带深度)(Stripsize)Extent1Extent2Extent3Extent4

……

……

……

……IO按照可以分为:读/写IO大/小块IO连续/随机IO顺序/并发IO(同步IO/异步IO)。另外,谈论IO时要注意主机、存储的队列深度(queue_depth)二.从RAID0到RAID51.RAID0Q1:RAID0有没有做条带化?Q2:条带的大小有没有讲究?是大好还是小好?Key:条带条带大小太大的话,顺序读写性能低。条带大小太小的话,随机读写性能低。RAID1,RAID22.RAID1Q1:RAID1有没有条带化的概念?Q2:RAID1的读速度比JBod快吗?3.RAID2 RAID2可以说是加强型RAID3。它不是用奇偶校验,而是用海明码校验。校验盘的数量是系统总盘数的对数。

RAID2有什么优缺点呢?RAID3,RAID44.RAID3,RAID4 他们和RAID5最大的不同是检验信息在一块固定的盘上。 Raid3的每一个条带,其长度很小,深度为1。当一次io没有用到所有磁盘的时候,没事的磁盘空闲等待。即并发系数为1。

Raid4解决了这个问题,类似Raid5,它可以并发。RAID55.RAID3,RAID4

Raid5大家都比较熟悉了,但是它并不完美,仍然有一些缺点导致某些应用不能使用Raid5。 最著名的是RAID5的小写问题,问题原因见后面的RAID5读写过程。Normal状态的RAID5如何处理读命令 读操作没有什么特别的。主要是以下几点: (1)平时读的时候不会去读校验位,也就是说别指望因为有了校验盘,读出来的数据肯定是正确的。

(2)还有一个主要的就是把对RAID逻辑盘的操作地址转化为具体的磁盘编号和磁盘上的实际地址,这个过程没有想象中的那么复杂。下面是Linux中实现的代码:

Normal状态的RAID5如何处理写命令 当对逻辑磁盘发出写命令时,由于涉及到新奇偶校验数据的计算,较为复杂,总体来说有下面三种情况: (1)一次写满一个条带,即所有的磁盘都在因为这条命令而转动;

这个简单,把要写入的数据的校验值计算好,然后跟数据一起写入磁盘。

(2)一次写大半个条带;

如何计算新的校验值计算?读出磁盘中其他盘的数据,然后再计算校验???

(3)一次写小半个条带;

如何计算新的校验值计算?也是用上面的方法???完全划分的写(FullStripeWrite)一般的RAID5实现中,对于这3种情况选择3种不同的写方式来实现。对第一种情况,使用完全划分的写(FullStripeWrite)的方式:重构写(ReconstructWrite) 如果一次写磁盘的数据包括一个Stripe中的多数个数据块时,则在产生新的校验信息时必须先将没有更新的数据读到缓存中,计算出新的校验信息,然后将新用户数据与新校验信息一起写到磁盘的相应位置。读修正写(Read-Modify-Write) 当用户数据只更新了Stripe中的极小部分的数据,为计算新的校验值,不用按上面的方法读出其他所有磁盘的值。 可以读出修改了的Strip中原来的数据,然后将其和新数据,旧校验值一起异或。计算所得就是新校验值。 其原理参考练习2。RAID5的写方式可以看出,RAID5的写,遇到的主要问题就是校验值的计算。Q1:如果该用“读-修改-写”时用了“修正写”,性能影响是多少?Q2:创建RAID5时如果不同步,可以使用“读-修改-写”吗?Q3:RAID5的一个缺点“小写问题”,即对于小块的数据,磁盘数量的提升很可能并不能带来性能的提升,为什么?你有什么解决办法?降级状态下RAID5的读RAID5降级后的读操作很简单:(1)如果要读取的数据不在损坏的磁盘上,则按正常读写处理;(2)如果要读取的数据刚好在损坏的磁盘上,通过奇偶校验计算出数据。此时,RAID控制器会把此条带中的在剩余所有磁盘中数据读出,通过奇偶校验,计算出的结果即为丢失磁盘中的数据,将其返回给上层软件。降级状态下RAID5的写RAID5降级后的写操作由于RAID5写时涉及到校验位的更新,降级状态下的写操作改变如下:(1)如果一次磁盘写操作的数据正好映射满一个Stripe,写方式和Normal状态下的RAID5一样,只是丢失的磁盘中不写数据。(2)如果一次磁盘写操作的数据不足一个Stripe,并且当前条带上的被修改的数据块在丢失的磁盘上,则只能使用“重构写”方式。(3)如果一次磁盘写操作的数据不足一个Stripe,并且当前条带上的校验数据块在丢失的磁盘上,则只能使用“重构写”方式。(4)如果一次磁盘写操作的数据不足一个Stripe,并且当前条带上的不被修改的数据块在丢失的磁盘上,则只能使用“读修正写”方式。降级状态下RAID5的写(1)对于整个条带的写:降级状态下RAID5的写(2)当写的数据在丢失的磁盘上,且未写完整个条带:

用了重构写。但显然不如在Normal状态下用读修改写快。降级状态下RAID5的写(3)当校验盘在丢失的磁盘上,且未写完整个条带:

用了重构写。但显然不如在Normal状态下用读修改写快。降级状态下RAID5的写(4)当写的数据不在丢失的磁盘上,且未写完整个条带:

用了读修改写。但显然不如在Normal状态下用重构写快。降级状态下RAID5的读写

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论