在前面的内容中我们讲过RAID-5的基本结构有左异步、左同步、右异步、右同步。在这些名称中的“左”、“右”就是针对校验方向来说的,左异步、左同步结构中的校验块都是从最后一块物理盘开始,依次往前面的物理盘中排列,整个RAID都按照这个规律循环往复,这种校验的排列方向我们称为“左结构”;而右异步、右同步结构中的校验块都是从第一块物理盘开始,依次往后面的物理盘中排列,整个RAID都按照这个规律循环往复,这种校验的排列方向我们称为“右结构”。
左结构的RAID-5如图17-22所示。
右结构的RAID-5如图17-23所示。
在判断校验方向之前,都需要先把条带大小分析出来,也就是说分析条带大小是分析RAID的第二步,分析RAID开始扇区是第一步。如果盘序也已分析出来,那么再分析校验方向就很容易了,只需要把每块物理盘上的校验条带找到,然后画出图来,就像图17-22或图17-23一样,是左结构还是右结构就一目了然了。
而如果盘序还没有确定下来,只确定了RAID开始扇区和条带大小,那么就可以用反推法确定校验的方向,从而也就确定了盘序。
下面具体讲解反推法的分析思路。
假设有两个RAID-5,都由3块成员盘组成,RAID起始扇区都是物理盘的0号扇区,条带大小都是16个扇区,校验方向一个是左结构,一个是右结构,如图17-24和图17-25所示。
对图17-24和图17-25中的两个RAID-5,现在仅仅分析出了RAID开始位置是物理盘的0号扇区,条带大小是16个扇区,我们看如何利用反推法分析出它们的盘序和校验方向。
还是以MBR磁盘及NTFS文件系统为例作分析,因为RAID开始位置是物理盘的0号扇区,所以必定有一块物理盘的0号扇区为MBR(也可能有两块物理盘0号扇区有MBR,另一个是校验)。对于左结构来说,0号扇区是MBR的物理盘一定是RAID-5的0号盘,如图17-24所示;对于右结构来说,0号扇区是MBR的物理盘一定是RAID的1号盘,如图17-25所示,但现在并不知道哪个是左结构,哪个是右结构,所以盘序也不能确定。
从物理盘前部的条带往往无法分析出哪些条带是校验,所以可以找到我们比较熟悉的$MFT区域进行分析,通过搜索或者通过BPB参数计算的方法可以很容易找到每块物理盘中的文件记录,并可以用前面讲过的方法在文件记录区域找到校验条带。
现在假设,我们在图17-24的硬盘0中180号扇区发现校验扇区,那么180号扇区所在的条带也就是校验条带了,然后用反推法就能算出硬盘0的第一个校验条带是几号条带,再加上硬盘0的0号扇区是MBR,就能断定硬盘0的盘序和该RAID-5的校验方向了。
具体算法是,用在硬盘0中找到的校验扇区号对条带大小与盘数的乘积取余,即
180 MOD(16×3)=36
计算的结果等于36,这个值的含义就是:36号扇区一定是校验。从图17-24可以看到36号扇区属于2号条带,所以硬盘0的2号条带是该盘的第一个校验条带,0号条带和1号条带只能是数据条带了,而0号扇区又是MBR,所以硬盘0一定是0号盘。硬盘0被确定为0号盘,该RAID-5就只能是左结构了。
然后再去硬盘1和硬盘2中找到某个校验扇区,用取余的方法算出它们的第一个校验块所在位置,也就能确定它们的盘序了。
再看图17-25,这个RAID-5中硬盘1的第一个扇区是MBR,可以到它的文件记录区域找一个校验扇区,假设为169号扇区,计算该盘第一个校验块所在位置的方法是
169 MOD(16×3)=25
计算的结果等于25,这个值的含义就是:25号扇区一定是校验。从图17-25可以看到25号扇区属于1号条带,所以硬盘1的1号条带是该盘的第一个校验条带,0号条带和2号条带只能是数据条带了,而0号扇区又是MBR,所以硬盘1一定是1号盘。
硬盘1被确定为1号盘,该RAID-5就只能是右结构了。然后再去硬盘0和硬盘2中找到某个校验扇区,用取余的方法算出它们的第一个校验块所在位置,也就能确定它们的盘序了。
这就是用反推法分析校验方向和盘序的具体思路。