Jump to content
  • Hello visitors, welcome to the Hacker World Forum!

    Red Team 1949  (formerly CHT Attack and Defense Team) In this rapidly changing Internet era, we maintain our original intention and create the best community to jointly exchange network technologies. You can obtain hacker attack and defense skills and knowledge in the forum, or you can join our Telegram communication group to discuss and communicate in real time. All kinds of advertisements are prohibited in the forum. Please register as a registered user to check our usage and privacy policy. Thank you for your cooperation.

    TheHackerWorld Official

Recommended Posts

目前使用的初始化方法
目前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写到对应的磁盘。

Link to post
Link to comment
Share on other sites

 Share

discussion group

discussion group

    You don't have permission to chat.
    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...