11.5.2  同步与异步的判断
以一个左循环的阵列为例,如图11.27所示,图中的d0d1d2…为阵列中的数据块(注意,这只是阵列中数据块的编号,并不代表数据的先后顺序)。下面我们就来看一看通过对哪些位置的数据顺序进行判断可以确定数据块的异同步:
数据重现之11.5.2:RAID5同步与异步的判断_数据重现
图11.27 同步与异步的判断
1)    d5前的数据块如果是d4,为异步;如果是d2,为同步。
d5后的数据如果是d6,为异步;如果是d3,为同步。
2)    d7前的数据如果是d6,为异步;如果是d4,为同步。
3)    d8后的数据如果是d9,为异步;如果是d6,为同步。
4)    d6后的数据块如果是d7,为异步;如果是d9,为同步。
可以看到,能够用于判断异同步的位置很多,但必须根据实际情况灵活运用,因为有时候某些位置的数据是无法确定前后顺序的。总体来讲,在一个整循环内:
u 一是看第一个条带写满后,下一个数据块的位置。
u 再就是看最后一个条带的第一个数据块之前的数据块所在的位置。
u 中间的条带则以校验块为界,查看左右数据块间的前后顺序关系,如果校验块左侧的数据顺序先于校验块右侧的数据,则为异步,同否则为同步。
摘自《数据重现--文件系统原理精解与数据恢复最佳实践》欢迎转载,敬请注明