基于虚拟化技术的实时保存客户机中进程状态的方法技术

技术编号:16365363 阅读:62 留言:0更新日期:2017-10-10 21:21
本发明专利技术涉及一种基于虚拟化技术的实时保存客户机中进程状态的方法。该方法包括:1)将客户机中特定进程的PID通知给虚拟化监控层;2)在虚拟化监控层中监控进程调度,当特定进程被调度时客户机主动陷入虚拟化监控层,虚拟化监控层在客户机内存中的特定位置注入代码;3)客户机恢复执行后,执行注入的代码以完成进程状态的备份;4)通过注入的代码实现客户机的主动陷入,根据陷入的进程改变客户机当前进程的控制流;5)在需要恢复进程上下文时对代码注入的位置进行恢复,同时唤醒备份的进程状态。本发明专利技术在客户机中进程上下文状态需要被保存时以进程实体形式进行备份,在之后需要恢复时能够直接运行该进程而不需要额外的内存恢复工作。

Method for real-time saving process state in client based on Virtualization Technology

The invention relates to a method for real-time saving process state in a client based on virtualization technology. The method comprises the following steps: 1) will inform the specific process of the client in PID for virtualization monitoring layer; 2) monitoring process scheduling in virtual monitoring layer, when the specific process is active in scheduling the client virtualization monitoring layer, virtualization monitoring layer in client memory in specific location code injection; 3) the client resumes execution after the execution of injected code to complete the process of state backup; 4) into active client by injecting code into the process control, according to the change in the current client process flow; 5) in the context of the recovery process when the code into the position of recovery, at the same time wake state backup process. In the client, when the process context state of the client needs to be saved, it is backed up in a process entity and can be run directly after the recovery needs, without the need for additional memory recovery.

【技术实现步骤摘要】
基于虚拟化技术的实时保存客户机中进程状态的方法
本专利技术属于虚拟化
,涉及基于虚拟化技术的实时保存客户机中进程状态的方法,尤其涉及一种基于虚拟化技术的不需修改客户机内核的、对客户机透明的进程状态保存方法。
技术介绍
虚拟化技术最主要的作用是解决物理资源的使用效率,虚拟机监控器替代操作系统内核所在层次,对底层物理资源进行抽象。硬件经过虚拟化层的分配和管理被上层所有虚拟机所共享,上层的虚拟机由虚拟化层创建、调度和分配资源。处于虚拟化层之上的虚拟机相互隔离,需要相互访问或通信时需要由虚拟化层进行控制和管理。虚拟化技术从诞生至今,已衍生出多种相关技术与应用。虚拟化技术由于其自身隔离、访问和干预等特性,被广泛应用在在安全防护领域。这些特征使基于虚拟化架构的安全工具能够有效监控虚拟机内部状态,同时抵御受监控系统内部的攻击。总体来说,利用虚拟化技术将恶意程序监控系统放在独立的虚拟化环境中,负责对虚拟机的监控,可以做到有效抵御恶意程序的隐藏与攻击手段,并且易于升级和维护。对于虚拟化平台上的客户机来说,虚拟机状态的备份是一项重要需求,尤其是当虚拟机内部或所处平台遭遇攻击时,为保证虚拟机快速恢复到应有状态,需要在受到攻击的某一个或多个时刻进行状态备份,以便之后的快速达到正常运行状态。对虚拟机状态的备份存在多种对象,如虚拟磁盘、进程上下文、CPU等。常见的虚拟机备份通过快照、克隆等方式进行,备份后的存储主要是将目标数据复制到存储设备上。通常需要暂停虚拟机的运行,将内存作为文件进行备份,或通过动态迁移的方法实现内存备份。虚拟机的实时备份是解决备份检查点与虚拟机当前运行状态不一致问题的方法之一,为做到实时备份,需要将虚拟机数据的任何变化实时传输到备份服务器上,但是数据的传输总是存在延迟,这是实时备份的主要问题。Cully等人提出的Remus(CullyB,LefebvreG,MeyerD,etal.Remus:highavailabilityviaasynchronousvirtualmachinereplication[C]//UsenixSymposiumonNetworkedSystemsDesignandImplementation.USENIXAssociation,2008:161-174.)是基于Xen的虚拟机实时备份解决方案,它在文件级别对虚拟机进行完整复制,每次复制只针对标记为脏的页面进行,这保证了备份的高效性,使虚拟机状态和备份文件保持一致。备份检查点通过高频率的检查虚拟机状态来确定,当捕捉到执行状态的改变时则对CPU、内存以及硬盘进行增量备份。Parallax(WarfieldA,RossR,FraserK,etal.Parallax:ManagingStorageforaMillionMachines[C]//Hotos'05:,WorkshoponHotTopicsinOperatingSystems,June12-15,2005,SantaFe,NewMexico,Usa.DBLP,2005:4-4.)是一个基于Xen的多虚拟机管理系统,它主要用于解决百万级别数量的虚拟机存储问题,其重要思想是把所有存储资源进行统一编址,并为虚拟机建立虚拟磁盘镜像VDI,每一个VDI对应一个根节点,其子节点是为其分配的空间。在制作快照时将快照指向当前的VDI根节点,并把其所有子节点设为只读。基于日志记录的方式进行的备份主要用于系统受到攻击后的重放,具有代表性的研究成果有Revirt系统(DunlapGW,KingST,CinarS,etal.ReVirt:Enablingintrusionanalysisthroughvirtual-machineloggingandreplay[J].ACMSIGOPSOperatingSystemsReview,2002,36(SI):211-224.),它在VMM上对系统进行日志记录,记录事件包括异步中断、外部输入等,被应用在入侵检测方面,它可以在系统已被恶意程序篡改的情况下,重放受到攻击的执行过程,为入侵检测分析提供信息。Revirt需要对客户机操作系统内核进行修改,对客户机不透明。以上研究成果是关于虚拟机级别的备份,进程方面以迁移技术的研究为主。迁移是在被监控的虚拟机节点崩溃时,重新配置并转交到另一个节点上运行,迁移常常以进程为单位。迁移的目标是保存进程的运行状态,使其在另一个节点能够继续运行,这点与进程备份存在共性。进程迁移需要保存的状态包括进程地址空间、寄存器上下文、通信状态以及其他与内核的进程管理相关的信息。MOSIX(BarakA,La'AdanO.TheMOSIXmulticomputeroperatingsystemforhighperformanceclustercomputing[J].FutureGenerationComputerSystems,1998,13(4-5):361-372.)是通过修改操作系统内核实现的进程迁移系统,PRM(SongG,ThomasS,AmatoNM.AgeneralframeworkforPRMmotionplanning[C]//IEEEInternationalConferenceonRoboticsandAutomation,2003.Proceedings.ICRA.IEEE,2003:4445-4450vol.3.)基于用户层实现。这些方法均属于全拷贝型,在目标节点上恢复进程存在较大的延迟性。在以上的方案中,以进程为单位的研究以迁移为主,而备份以整个虚拟机状态为主。如果需要为特定进程进行备份而直接备份整个虚拟机,则会带来较大的空间开销。且已有的进程迁移技术存在一定延迟性,在进程状态一致方面有所欠缺。
技术实现思路
针对上述问题,本专利技术提供一种基于虚拟化技术的实时保存客户机中进程状态的方法。在某个特定时刻客户机中进程上下文状态需要被保存时,将以进程实体形式进行备份,并在之后某时刻需要恢复进程上下文时,能够直接运行该进程而不需要额外的内存恢复工作。本专利技术采用的技术方案如下:一种基于虚拟化技术的实时保存客户机中进程状态的方法,其步骤包括:1)将客户机中特定进程的PID(ProcessIdentification,进程标识符)通知给虚拟化监控层(VirtualMachineMonitor,VMM);2)在VMM中监控进程调度,当特定进程被调度时客户机主动陷入VMM,VMM在客户机内存中的特定位置注入代码;3)客户机恢复执行后,执行注入的代码以完成进程状态的备份;4)通过注入的代码实现客户机的主动陷入,根据陷入的进程改变客户机当前进程的控制流;5)在需要恢复进程上下文时对代码注入的位置进行恢复,同时唤醒备份的进程状态。下面将分为4个部分对以上步骤的具体内容进行详细描述。1.当VMM收到客户机中特定进程的PID后,根据PID获得进程的task_struct结构,进而获取页目录表地址,即cr3寄存器的值。然后开启对cr3寄存器写操作的监控,当cr3寄存器被写入指定进程的页目录表地址时,则开始对客户机内存中特定位置注入代码。2.注入的代码实现的功能包括注入特定系统调用和实现客户机的主动陷入。Linux系统对传统的系本文档来自技高网
...
基于虚拟化技术的实时保存客户机中进程状态的方法

【技术保护点】
一种基于虚拟化技术的实时保存客户机中进程状态的方法,其步骤包括:1)将客户机中特定进程的PID通知给虚拟化监控层;2)在虚拟化监控层中监控进程调度,当特定进程被调度时客户机主动陷入虚拟化监控层,虚拟化监控层在客户机内存中的特定位置注入代码;3)客户机恢复执行后,执行注入的代码以完成进程状态的备份;4)通过注入的代码实现客户机的主动陷入,根据陷入的进程改变客户机当前进程的控制流;5)在需要恢复进程上下文时对代码注入的位置进行恢复,同时唤醒备份的进程状态。

【技术特征摘要】
1.一种基于虚拟化技术的实时保存客户机中进程状态的方法,其步骤包括:1)将客户机中特定进程的PID通知给虚拟化监控层;2)在虚拟化监控层中监控进程调度,当特定进程被调度时客户机主动陷入虚拟化监控层,虚拟化监控层在客户机内存中的特定位置注入代码;3)客户机恢复执行后,执行注入的代码以完成进程状态的备份;4)通过注入的代码实现客户机的主动陷入,根据陷入的进程改变客户机当前进程的控制流;5)在需要恢复进程上下文时对代码注入的位置进行恢复,同时唤醒备份的进程状态。2.如权利要求1所述的方法,其特征在于:虚拟化监控层收到客户机中特定进程的PID后,根据PID获得进程的task_struct结构,进而获取页目录表地址,即cr3寄存器的值;然后开启对cr3寄存器写操作的监控,当cr3寄存器被写入指定进程的页目录表地址时,则开始对客户机内存中特定位置注入代码。3.如权利要求1所述的方法,其特征在于:通过注入的代码实现系统调用的注入和客户机的主动陷入。4.如权利要求3所述的方法,其特征在于:通过int80指令实现系统调用的注入,通过int3指令实...

【专利技术属性】
技术研发人员:贾晓启李津津杜海超白璐武希耀唐静
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1