发明名称 一种自适应应用负载变化的快照生成方法
摘要 一种自适应应用负载变化的快照生成方法属于计算机存储技术领域,目的是设计一种应用感知的自适应快照生成方法,根据被保护数据的修改频率调节生成快照的频率,既达到自动保留有用历史数据的要求,又保证较好的系统性能与空间利用率,其特征在于:为快照分配一个计数区记录源数据区各个块的修改次数,创建守护进程,控置快照生成。当快照计算机收到对源数据区的写请求时,将其对应源数据区数据块的修改次数增加,并根据设定的阈值判断是否需要生成快照,如果是,则发送消息给守护进程,守护进程控制生成新快照。本方法具有自适应应用负载变化、实现简单几乎不影响读写性能影响和使用灵活方便的优点。
申请公布号 CN101968755B 申请公布日期 2012.02.08
申请号 CN201010531955.1 申请日期 2010.11.04
申请人 清华大学 发明人 舒继武;周炜;易乐天
分类号 G06F11/14(2006.01)I;G06F17/30(2006.01)I 主分类号 G06F11/14(2006.01)I
代理机构 北京众合诚成知识产权代理有限公司 11246 代理人 朱琨
主权项 一种自适应应用负载变化的快照生成方法,其特征在于,所述方法是在用户端依次按以下步骤实现的:步骤(1).用户端的初始化,步骤(1.1).用户通过应用程序接口API在快照计算机中设定快照的数据结构,包括:元数据区、索引区、数据区和计数区,其中:元数据区包括:用户赋予的快照名称,快照编号,源数据区名称,该快照中数据块的大小,数据区的长度以及标识位,其中:源数据区,存储用户访问请求的数据,对源数据区创建一个快照将会保留一个快照创建时刻源数据区的映像,源数据区在逻辑上是按照所述元数据区中所述数据块的大小分为多个数据块,数据块的编号从1开始,其分块号依次为1,2,3,…,N,N为源数据区中数据块数目,这个编号就是源数据区的分块号,标识位,值为1时,表示快照是对源数据区最新创建的快照,为0,则不是,当对源数据区新创建一个快照时,将新创建的快照的标识位置为1,并将对源数据区创建的其它快照的标识位置为0,索引区,记录源数据区被修改过的数据块的分块号以及该数据块原来的数据在所述数据区存放位置的新分块号,数据区,存储快照需要保存的数据,在逻辑上按照所述元数据区中所述数据块的大小分为多个数据块,块大小与所述源数据区中每个数据块的块大小相同,初始化时数据区的所有数据块都标记为未被使用,当所述源数据区中的一个数据块在快照创建后第一次被修改,这个数据块原来的数据将被存放到数据区中一个未被使用的数据块中,相应的数据区中的数据块标记为已被使用,计数区,用位图的方式存储所述源数据区中各数据块被修改的次数,所述源数据区中第n个数据块被修改的次数用计数区中第n位的值wn表示,n=1,2,…,N,步骤(1.2).用户通过应用程序接口API在所述快照计算机中创建用以创建新快照的守护进程Daemon,并指定守护进程Daemon在创建新快照时所用到的参数的值,这些参数包括所述快照名称,快照编号,源数据区名称,数据块的大小,数据区的长度,步骤(2).当所述快照计算机通过应用程序接口API接收到用户对源数据区的写入请求和写入数据时,依次执行以下步骤:步骤(2.1).找到对所述源数据区最新创建的快照,即标识位为1的快照,步骤(2.2).将含有起始地址和长度的所述写入数据,按步骤(2.1)所述快照中的所述数据块的大小分为多个写入数据块,每个写入数据块对应一个源数据区的数据块,步骤(2.3).对步骤(2.2)所述的每个写入数据块,按其对应的源数据区数据块的分块号在步骤(2.1)所述快照的索引区中查找,若存在该分块号,则说明源数据区数据块原来的数据已经被保存在数据区中,转步骤(2.6),若不存在,则执行下一步骤(2.4),步骤(2.4).把步骤(2.3)所述写入数据块对应的源数据区数据块中的数据拷贝到步骤(2.1)所述快照的数据区,修改所述快照的索引区中的分块号,步骤(2.5).再把步骤(2.3)所述写入数据块的数据写入其对应的源数据区数据块中,步骤(2.6).把所述快照的计数区中与步骤(2.3)所述源数据区数据块的分块 号对应的修改次数位的值加1,步骤(2.7).判断步骤(2.2)所述的所有写入数据块是否都处理完毕,是,则结束,否则,重复步骤(2.3)~步骤(2.6),步骤(2.8).根据用户设定的判定策略及阈值确定是否需要生成新快照:若用户设定最大平均修改次数策略,则判断源数据区各数据块的平均修改次数是否超过设定的平均修改次数阈值,若超过,则需要生成新快照,否则,不需要,若用户设定最大修改次数策略,则判断所述源数据区各数据块的修改次数中最大的修改次数是否大于设定的最大修改次数阈值,若为大,则需要生成新快照,若为小或等于,则不需要生成新快照,当判断为需要生成新快照时,执行步骤(2.9),否则,转步骤(2.10),步骤(2.9).所述快照计算机利用所述守护进程Daemon创建新快照,其步骤如下:步骤(2.9.1).停止所述源数据区的读写服务,步骤(2.9.2).按照步骤(1.2)中用户设定的快照名称,快照编号,源数据区名称,数据块的大小,快照的数据区长度,创建新快照结构,并建立与所述源数据区的映射关系,步骤(2.9.3).在内存中建立新快照的计数区缓存,步骤(2.9.4).恢复所述源数据区的读写服务,步骤(2.10).结束。
地址 100084 北京市100084-82信箱