我们知道,
FAT
表的表项号是连续的,即由
0
开始编号,
0
号表项与
1
号表项由系统保留做特殊用途。用户数据由
2
号表项开始使用,也就是
2
号簇对应的
FAT
表项。表项内记录的簇号可能是不连续的,但表项号本身则是连续的。利用表项号的这个连续性,我们就可以计算
RAID
块的大小。
1. 计算方法
利用
FAT
表计算块大小的原理就是,相邻磁盘的同条带同位置的
FAT
项间占用的空间是一个块大小。如图
11.1
所示。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
图
11.1
中,磁盘
0
和磁盘
1
是阵列中两块相邻的磁盘,
FAT
项
N
位于磁盘
0
的某个块,当该块写满后,就会转至磁盘
1
的同条带进行写入。
FAT
项
M
是磁盘
1
上与
FAT
项
N
同条带同位置的
FAT
表项,这样,由
FAT
项
N
开始至
FAT
项
M
前的空间即为一个块(灰色加亮部分)。因此,我们可以得出以下公式:
块大小扇区数
=
(
M – N
)
*
每
FAT
表项字节数
/
每扇区字节数
最大的问题是,每个表项内记录的值是为当前数据分配的下一个簇的簇号,而并不记录表项号本身,我们必须想办法得到当前
FAT
项的表项号才可以进行计算。那么,如何得到这个表项号呢?
我们知道,系统为文件分配空间时,会优先为其分配连续的空间,这时,它们的簇号就是连续的。簇号连续,则记录这些簇号的相应表项也是连续的,如图
11.2
所示。簇号
14
、
15
、
16
连续,则它们所在的表项的号码也是连续的。
转载于:https://blog.51cto.com/sjhfml/134060