主权项 |
1、一种采用位映像表算法处理存储设备快照的方法,通过一多级动态位映像表算法处理一原区块设备与一快照设备之间数据的对应关系,其特征在于,该方法包含以下步骤:a)创建一快照设备,并从操作系统获取系统页的大小作为该快照设备存储数据并划分空间的最小单位的数据区块大小;b)启始化一包含一状态数据变量、一总数数据变量、一当前数数据变量以及一起始位置数据变量的第一级位映像表结构,并添加该第一级位映像表结构的指针至该快照设备的描述结构中,其中,该状态数据变量为一列举数据型态,该列举数据型态包含一未分配数据变量、一未写满数据变量以及一已写满数据变量,该总数数据变量为该原区块设备的大小除以该原区块设备计数的基本单位的值,该起始位置数据变量为一指针数据型态;c)当需要将一数据写入该原区块设备时,判断指针所指向的一当前位映像表结构的该状态数据变量的值;d)当该状态数据变量的值为未分配时,依照一级数确定原则判断该当前位映像表结构是否为最后一级位映像表结构;e)当该当前位映像表结构为最后一级位映像表结构时,为该当前位映像表结构的起始位置数据变量分配与该当前位映像表结构的总数数据变量的值相等数目位的内存空间,将每个内存空间赋值为0,将该当前位映像表结构的状态数据变量赋值为未写满,并执行步骤j);f)当该当前位映像表结构不为最后一级位映像表结构时,按以下公式为该当前位映像表结构的起始位置数据变量分配内存空间:该当前位映像表结构的总数数据变量的值×本级每一位映像表结构的大小,并将该当前位映像表结构的状态数据变量赋值为未写满;g)依照该级数确定原则计算出该当前位映像表结构的下一级位映像表结构的总数数据变量的值,并依照该数据写入到该原区块设备的位置确定该当前位映像表结构的起始位置数据变量的值,将指针指向该当前位映像表结构的起始位置数据变量的值所对应的位映像表结构,并执行步骤c);h)当该状态数据变量的值为未写满时,判断该当前位映像表结构是否为最后一级位映像表结构,当该当前位映像表结构为最后一级位映像表结构时,执行步骤j);i)当该当前位映像表结构不为最后一级位映像表结构时,依照该数据写入到该原区块设备的位置确定该当前位映像表结构的起始位置数据变量的值,将指针指向该当前位映像表结构的起始位置数据变量的值所对应的位映像表结构,并执行步骤c);j)判断该当前位映像表结构的起始位置数据变量对应的位是否为1,当该当前位映像表结构的起始位置数据变量的值对应的位为1时,则将该数据写入该原区块设备;k)当该当前位映像表结构的起始位置数据变量的值对应的位为0时,从该原区块设备的对应位置读取数据并将该读取的数据写入该快照设备的对应位置,并将该当前位映像表结构的起始位置数据变量的值对应的位赋值为1,且将该当前位映像表结构的当前数数据变量的值加1,并执行步骤1);l)判断该当前位映像表结构的当前数数据变量的值是否等于该当前位映像表结构的总数数据变量的值,当该当前位映像表结构的当前数数据变量的值不等于该当前位映像表结构的总数数据变量的值时,将该数据写入该原区块设备,否则,执行步骤m);m)释放该当前位映像表结构所占用的内存空间,将该当前位映像表结构的状态数据变量的值赋值为已写满,将指针指向上一级位映像表结构,并将上一级位映像表结构的当前数数据变量的值加1,执行步骤1);以及n)当该状态数据变量的值为已写满时,将该数据写入该原区块设备。 |