一种多任务的可控自动快照方法技术

技术编号:3775280 阅读:312 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种多任务的可控自动快照方法,体系结构包括:任务触发器、任务接受器、多线程模型和自动快照模块四大部分组成,使用任务接受器接受WEB或者远程代理触发的任务新建、开启或者停止一个自动快照任务;通过多线程模型为每个任务分配一个线程来实现多个任务同时进行;通过动态扩展线城池实现可执行任务的动态扩展;自动快照模块实现按照固定的时间间隔来进行快照操作;提供快照查询模块对外提供根据时间点的快照信息查询,为远程通过快照进行恢复提供基础;为适应新的文件系统提供的2↑[64]快照能力,解决传统手动快照或者定时快照保护粒度较小的问题,从而为数据提供更为安全的保护。同时通过多线程模型创建存储池动态分配工作线程到每个任务,从而实现多任务同时操作。

【技术实现步骤摘要】

本专利技术涉及计算机应用
,尤其涉及。
技术介绍
快照是实现数据保护的一种常见的方法,过去由于快照数量的限制,大多数 快照操作都是手动或者编写脚本在每天的固定时间点执行,没有设计自动连续快照领域。随着技术的发展,越来越的文件系统提供264的快照操作能力。这样可以 通过连续快照实现更为密集的数据保护,从而可以使系统能够恢复到之前更多时 间点,实现更好的数据保护。
技术实现思路
本专利技术的目的是关于,该方法可以实现对逻辑 巻的自动连续快照,并且通过本方法可以同时执行多个任务,对外提供统一的访 问接口,增强方法的可扩展性。本专利技术的目的是按以下方式实现的,本专利技术的体系结构包括任务触发器、任务接受器、多线程模型和自动快照模块四大部分组成,使用任务接受器接受WEB 或者远程代理触发的任务新建、开启或者停止一个自动快照任务;通过多线程模 型为每个任务分配一个线程来实现多个任务同时进行;通过动态扩展线城池实现 可执行任务的动态扩展;自动快照模块实现按照固定的时间间隔来进行快照操作; 提供快照查询模块对外提供根据时间点的快照信息查询,为远程通过快照进行恢 复提供基础;具体步骤如下A、任务接受器启动监听进程,接受从WEB或者远程代理传输来的快照任务, 任务类型有新建、开启、停止一个任务和快照资源査询,为了统一WEB、远程Agent 任务触发器与自动快照系统间的统一接口,系统采取以下策略A。 、 WEB、远程Agent和自动快照系统采用Socket进行通讯,避免直接的代码 调用,从而实现系统的松耦合;新增加的任务触发端只需建立相应的Socket客户 端实现与系统的通讯;Ah WEB、远程Agent与自动快照系统间的通讯内容采用JS0N形式,采用JS0N 格式简化自动快照系统的任务的解析和WEB或者远程Agent对返回结果解析的难 度;同时采用固定的JS0N格式,对外屏蔽实现细节,增强系统的安全性和降低任 务触发端实现的难度;B、 任务接受器在接受到一个命令时,调用JSON解析模块解析任务,根据任4务类型进行相应操作,任务类型有四种,分别是B。、新建一个任务主线程获取新建任务的相关参数,并实例化一个自动快照 对象,然后査看现有工作线程池内是否有空闲线程,如果为真,直接分配一个空 闲线程给自动快照实例,启动线程,执行自动快照任务;为假,则创建新的线程 集,并把线程集加入到线程池中,从线程池中分配空闲线程给自动快照实例;启 动线程执行自动快照任务;B, 、开启一个任务主线程通过解析获取相关启动参数,査找原有任务停止时 的执行状态,并确立自动快照的新执行点,从线程池中分配空闲线程执行自动快 照任务,线程池为空,则需按照A。所示,首先创建新的线程集;B2、停止一个任务主线程通过解析获取相关停止参数,并査询任务线程号, 主线程给工作线程发送一个停止命令,工作线程停止操作,主线程将线程重新置 为空闲,并存放到线程池中等待下一次调用;B:,、查询快照信息根据时间点查询相关快照信息,主线程查询点附近一定时 间范围内的快照信息,并通过封装,形成JS0N格式,返回给任务触发端;C、 自动快照模块执行自动快照操作还包括以下操作自动快照按照固定的时 间间隔对存储池进行快照;自动快照模块将快照信息插入到数据库中,以便客户 端进行更为快捷的査询操作。步骤C还包括以下操作:在短时间间隔应用场景中,快照信息存入数据库会消 耗系统大量资源,为避免因保存信息儿带来的资源消耗,采用如下策略在系统中保存快照信息,直到快照数量达到一定阈值时,将快照信息一次性插入到数据库中,以大量减少磁盘io操作的数量,从而提供系统的性能。本专利技术的方法还包括以下操作系统因为非正常原因退出,未及时保存快照信 息到数据库中,造成数据库信息与实际快照信息不符,在系统重新启动后立即对 数据库数据进行一致性检测,并将未更新的快照信息更新到数据中,确保数据库与磁盘快照信息的一致性。步骤B:,还包括以下操作查询涉及正在运行的任务,将快照信息链表中的信 息立即更新到数据库,然后再进行查询操作。本专利技术的有益效果是为适应新的文件系统提供的264快照能力,解决传统手 动快照或者定时快照保护粒度较小的问题,从而为数据提供更为安全的保护。同 时通过多线程模型创建存储池动态分配工作线程到每个任务,从而实现多任务同 时操作。在线程池中没有可用线程资源时,动态创建线程集加入到线程池中,这种线程池机制可以充分利用服务器资源,提高系统的性能。设计合理的WEB管理页面可以对每个任务实现实时监控,并可以停止或者启动一个自动快照实例,实 现任务的可控性。快照信息集中插入数据的操作方法,将数据库操作减少了两个数量级。所有方法综合起来,可以在实现多个自动快照任务同时进行的情况下,降低系统资源消耗,提供服务器整体性能。附图说明图1是多任务的可控自动快照系统结构图; 图2创建一个自动快照实例的流程图。具体实施方式下面参照附图和实施实例对本专利技术作进一步详细说明-正如
技术实现思路
中所描述的,本专利技术体系结构主要包括任务触发器、任务接受 器、多线程模型、自动快照模块四大部分组成。针对不同任务触发器实现的统一任务接受器,可以同时接受来自WEB、远程 Agent或者其他任务触发器产生的任务。采用Socket进行通讯,避免代码的直接 调用,实现自动快照系统与任务触发器之间的松耦合,从而可以使多种不同的客 户端同时访问自动快照系统。使用JSON形式组织任务触发器和任务接受器之间的 通讯内容,可以屏蔽系统对外的实现细节,降低新任务触发器开发的难度和风险。 实现多线程模型,每个任务从线程池中分配线程资源,可以避免为单个任务 启动一个新的线程,从而造成系统资源消耗过多的问题。当任务停止后,释放线 程资源到线程池,可以被新的任务继续利用。这种线程池模型可以避免系统使用 时间过长,程序分配的系统资源得不到释放,造成系统崩溃的风险。动态线程池,系统启动时创建一定数据的线程在线程池中,当线程资源不足 时,通过分配一定大小的线程集,并融合到原有线程池中,可以动态增加可执行 任务的数量。自动快照产生的快照信息存放到数据库中,可以供客户端进行快速査询,避 免遍历文件系统造成的访问延迟,提供系统的易用性。设计合理的批量插入可以 在很大程度上减少数据库插入的10操作,避免系统资源的消耗,提供系统性能。实施例在一个典型的环境中,自动快照启动以后,首先检测数据库中数据和己经创 建的快照信息是否匹配,如果不相符,需要根据快照信息更新数据库中的数据, 直到数据一致性满足。自动快照主线程启动监听任务线程。任务触发器根据需要产生任务,可以通过WEB或者Agent进行触发。管理员输 入相关参数,任务触发器将任务类型和输入参数按照预先制定的格式转化为JSON 形式,然后通过Socket传输给任务接受器。任务监听线程获取任务,将任务传输给主线程,主线程解析JSON格式的数据, 获取任务类型和参数。根据任务类型,主线程调用不同的处理模块。当任务类型是创建任务时,主线程通过存储池和快照时间间隔两个参数实例化6一个自动快照实例;从进程池中选择一个空闲进程,运行自动快照实例。如果没有空闲进程,主线程创建一个新的进程集,并将新的进程集加入到进程池中。当任务类型是停止任务时,主线程首先通过本文档来自技高网
...

【技术保护点】
一种多任务的可控自动快照方法,其特征在于,体系结构包括:任务触发器、任务接受器、多线程模型和自动快照模块四大部分组成,使用任务接受器接受WEB或者远程代理触发的任务新建、开启或者停止一个自动快照任务;通过多线程模型为每个任务分配一个线程来实现多个任务同时进行;通过动态扩展线城池实现可执行任务的动态扩展;自动快照模块实现按照固定的时间间隔来进行快照操作;提供快照查询模块对外提供根据时间点的快照信息查询,为远程通过快照进行恢复提供基础;具体步骤如下:  A、任务接受器启动监听进程,接受从WEB或者远程代理传输来的快照任务,任务类型有新建、开启、停止一个任务和快照资源查询,为了统一WEB、远程Agent任务触发器与自动快照系统间的统一接口,系统采取以下策略:  A↓[0]、WEB、远程Agent和自动快照系统采用Socket进行通讯,避免直接的代码调用,从而实现系统的松耦合;新增加的任务触发端只需建立相应的Socket客户端实现与系统的通讯;  A↓[1]、WEB、远程Agent与自动快照系统间的通讯内容采用JSON形式,采用JSON格式简化自动快照系统的任务的解析和WEB或者远程Agent对返回结果解析的难度;同时采用固定的JSON格式,对外屏蔽实现细节,增强系统的安全性和降低任务触发端实现的难度;  B、任务接受器在接受到一个命令时,调用JSON解析模块解析任务,根据任务类型进行相应操作,任务类型有四种,分别是:  B↓[0]、新建一个任务:主线程获取新建任务的相关参数,并实例化一个自动快照对象,然后查看现有工作线程池内是否有空闲线程,如果为真,直接分配一个空闲线程给自动快照实例,启动线程,执行自动快照任务;为假,则创建新的线程集,并把线程集加入到线程池中,从线程池中分配空闲线程给自动快照实例;启动线程执行自动快照任务;  B↓[1]、开启一个任务:主线程通过解析获取相关启动参数,查找原有任务停止时的执行状态,并确立自动快照的新执行点,从线程池中分配空闲线程执行自动快照任务,线程池为空,则需按照A↓[0]所示,首先创建新的线程集;  B↓[2]、停止一个任务:主线程通过解析获取相关停止参数,并查询任务线程号,主线程给工作线程发送一个停止命令,工作线程停止操作,主线程将线程重新置为空闲,并存放到线程池中等待下一次调用;  B↓[3]、查询快照信息:根据时间点查询相关快照信息,主线程查询点附近一定时间范围内的快照信息...

【技术特征摘要】

【专利技术属性】
技术研发人员:戴文军
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:88[中国|济南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1