跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

精选回复

发布于

目前使用的初始化方法
目前RAID5的初始化主要有两种方法,一种是标示为resync的全同步;另一种方法是标示为recovery的数据恢复。
所谓resync,就是进行全阵列磁盘同步,从头到尾按条带读取所有磁盘的数据,计算新的校验值并与原来的校验值相比较,如果相同则直接进入下一个条带的操作,如果不同则需要把新计算的校验数据写到校验磁盘上。
所谓recovery,就是恢复失效盘的数据。磁盘阵列中的单个磁盘是有可能失效的,这时磁盘阵列会将失效磁盘从阵列中剔除,那么对于那些有数据恢复能力的RAID阵列,如RAID-1456,我们就能够通过加入热备盘恢复失效盘上的数据,recovery就是从头到尾恢复数据的过程。recovery完成之后热备盘就会成为正式的成员盘取代原来的失效盘。Recovery原本用于失效磁盘的数据恢复,但也可以用于刚创建的RAID,在刚创建的时候,把最后一块盘设置为热备盘,该磁盘的数据通过读取其它磁盘的数据校验得出,这样下来,也会保证各个条带的数据一致性。
RAID5的两种写方式
在提出新方法之前,先讨论下RAID5 的两种写方式:读改写和重构写。读改写的实现方式是先将所需写入的数据保存到内存,同时读取所需要写入位置的旧数据及校验盘上的数据,然后将新数据、旧数据和老校验数据进行校验运算,得出新校验数据,最后将新数据与新校验值写入磁盘。
以6块盘的RAID5为例,假设要写D1数据块,而所在条带别的数据块没有写请求,则需要读取旧的D1数据,和旧的校验数据P0,再和新的数据NEW D1做异或校验计算,得到新的校验NEW P0,再把NEW D1和NEW P0写到对应的磁盘。
所谓重构式写,就是预读没有写请求的磁盘的数据,而将写请求磁盘的bio中的数据拷贝到磁盘缓冲区,然后用这些数据来重构新的校验结果。之后,就将新修改的数据和新校验结果写入下层设备即可。
仍以6块盘的RAID5为例,假设要写D1,D2,D3的数据块,则需要读D4,D5数据,再和新的数据NEW D1,NEW D2,NEW D3做异或校验计算,得到新的校验NEW P0,再把NEW D1,NEW D2,NEW D3和NEW P0写到对应的磁盘。

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。