[发明专利]一种自适应应用负载变化的快照生成方法有效
申请号: | 201010531955.1 | 申请日: | 2010-11-04 |
公开(公告)号: | CN101968755A | 公开(公告)日: | 2011-02-09 |
发明(设计)人: | 舒继武;周炜;易乐天 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F17/30 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 朱琨 |
地址: | 100084 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自适应 应用 负载 变化 快照 生成 方法 | ||
1.一种自适应应用负载变化的快照生成方法,其特征在于,所述方法是在用户端依次按以下步骤实现的:
步骤(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).结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010531955.1/1.html,转载请声明来源钻瓜专利网。