CN102662799A - 数据备份的方法、服务器及热备份*** - Google Patents
数据备份的方法、服务器及热备份*** Download PDFInfo
- Publication number
- CN102662799A CN102662799A CN2012101089282A CN201210108928A CN102662799A CN 102662799 A CN102662799 A CN 102662799A CN 2012101089282 A CN2012101089282 A CN 2012101089282A CN 201210108928 A CN201210108928 A CN 201210108928A CN 102662799 A CN102662799 A CN 102662799A
- Authority
- CN
- China
- Prior art keywords
- virtual memory
- page
- memory region
- leaf
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种数据备份的方法、服务器及热备份***,涉及计算机领域,为缩减热备份时长,提高热备份***效率而发明。所述方法包括:在对进程地址空间的虚拟内存区备份的过程中,在完成虚拟内存区的控制信息的备份后,根据虚拟内存区的标志位判断虚拟内存区对应的物理内存页中是否含有内存脏页;当虚拟内存区对应的物理内存页中含有内存脏页时,对虚拟内存区对应的物理内存页进行遍历,所述遍历包括查找所述物理内存页中的内存脏页并对所述内存脏页的内容进行保存;当虚拟内存区对应的物理内存页中不含内存脏页时,跳过对虚拟内存区对应物理内存页的遍历。本发明主要应用于热备份服务器中应用进程的数据信息。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据备份的方法、服务器及热备份***。
背景技术
热备份***可以实时对应用程序的运行状态进行备份,并将状态信息保存至存储器。当设备遇到故障或遭受攻击时,可以通过读取存储器中保存的状态信息恢复应用程序,避免因设备故障导致的数据丢失。热备份***通过将应用程序中每一个进程的状态信息保存到例如磁盘上的映像文件中,来完成对应用程序的备份。当设备故障排除后,从磁盘的映像文件中读取状态信息,从而完成备份数据的恢复。
现有数据备份的技术,是将应用程序进程的用户地址空间中的内容进行保存。地址空间可以是虚拟内存空间,所述虚拟内存空间包括多个虚拟内存区(Virtual Memory Area,VMA),在应用程序进程的执行过程中可执行文件的代码段、数据段、共享库、栈以及堆等信息对应于虚拟内存空间中的VMA。对用户地址空间中的内容进行保存就是对VMA中的信息进行保存。在VMA信息的保存过程中,需要对私有VMA对应的物理内存页进行遍历,如果该物理内存页为内存脏页,则将该物理内存脏页的信息一并保存。
在实现上述数据备份的过程中,发明人发现现有技术中至少存在如下问题:在数据备份的过程中,对内存数据的保存大约占信息保存的80%以上,而对内存数据的保存就是对内存脏页的查找及保存。由于在应用程序中,可执行文件的代码段、数据段、共享库、栈以及堆等内容都对应于私有类型VMA,所以对内存脏页的查找会占用热备份***处理过程中的主要时间。
发明内容
本发明的实施例提供一种数据备份的方法、服务器及热备份***,提高热备份***的处理效率。
一方面,本发明实施例提供了一种数据备份的方法,包括:
在对进程地址空间的虚拟内存区备份的过程中,在完成所述虚拟内存区的控制信息的备份后,根据所述虚拟内存区的标志位判断所述虚拟内存区对应的物理内存页中是否含有内存脏页;
当所述虚拟内存区对应的物理内存页中含有内存脏页时,对所述虚拟内存区对应的物理内存页进行遍历,所述遍历包括查找所述物理内存页中的内存脏页并对所述内存脏页的内容进行保存;
当所述虚拟内存区对应的物理内存页中不含内存脏页时,跳过对所述虚拟内存区对应物理内存页的遍历。
另一方面,本发明实施例还提供了一种服务器,包括:
判别器,用于在对进程地址空间的虚拟内存区备份的过程中,在完成所述虚拟内存区的控制信息的备份后,根据所述虚拟内存区的标志位判断所述虚拟内存区对应的物理内存页中是否含有内存脏页;
处理器,用于当所述判别器判断所述虚拟内存区对应的物理内存页中含有内存脏页时,对所述虚拟内存区对应的物理内存页进行遍历,所述遍历包括查找所述物理内存页中的内存脏页并将所述内存脏页的内容进行保存,当所述判别器判断所述虚拟内存区对应的物理内存页中不含内存脏页时,跳过对所述虚拟内存区对应物理内存页的遍历。
再一方面,本发明实施例还提供了一种热备份***,所述热备份***包括服务器和存储***,其中,
所述服务器为上述服务器;
所述存储***,用于存储所述服务器备份的控制信息以及所述服务器备份的内存脏页的内容。
本发明实施例提供的数据备份的方法、服务器及热备份***,能够先判断虚拟内存区所对应的物理内存页中是否含有内存脏页。当物理内存页中不含内存脏页时,跳过对该物理内存页的遍历,换言之,对于不含有内存脏页的虚拟内存区的备份过程中,可以仅保存所述虚拟内存区的控制信息,跳过对所述虚拟内存区对应物理页的遍历和脏页的检查,从而节省在该虚拟内存区中查找内存脏页所使用的时间,进而可以提高热备份***的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中数据备份的方法的流程图;
图2为本发明另一个实施例中数据备份的方法的流程图;
图3为本发明实施例中服务器的结构示意图;
图4为本发明实施例中另一个服务器的结构示意图;
图5为本发明实施例中又一个服务器的结构示意图;
图6为本发明实施例中热备份***的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
服务器在执行应用进程的过程中,每个进程都拥有自己的地址空间,进程的地址空间被划分为多个虚拟内存区(VMA)。在应用进程运行过程中,可执行文件的代码段、数据段、共享库、栈、堆等信息对应于不同的VMA。内核通过***调用mmap(存储映射)创建VMA,当VMA创建完成后,进程需要通过编译和链接生成镜像文件,该镜像文件的代码段、数据段、共享库等部分的信息被映射到VMA中,从而完成应用进程信息的保存。进程在后续调用自身内存信息以及进程间共享内存信息的实现方式都是通过mmap内存映射的方式实现的。
热备份是将应用进程运行的实时状态保存到硬盘或磁盘等存储介质上,具体的,将应用进程可访问的用户地址空间对应的信息保存到存储介质的映像文件中。在热备份过程中,对于私有类型的VMA,在完成VMA控制信息完成备份后,还需要遍历每一个VMA对应的物理内存页,判断是否有内存脏页。如果有内存脏页,则将该内存脏页的内容作为进程的实时状态信息保存到映像文件中。在数据恢复的过程中,服务器从映像文件中读取备份的控制信息和状态信息,从而继续运行应用程序进程。
本发明实施例提供了一种数据备份的方法,如图1所示,所述方法包括如下步骤:
101、根据VMA的标志位判断该VMA对应的物理内存页中是否含有内存脏页。
在对进程地址空间的VMA备份的过程中,在完成VMA控制信息的备份后,根据该VMA的标志位判断该VMA对应的物理内存页中是否含有内存脏页。
在应用程序的可执行文件中,包括代码段、数据段、共享库、栈和堆等多种信息。在对应用程序进程进行备份时,需要查找每种信息所对应的VMA对应的物理内存页中的内存脏页,并将内存脏页中的信息进行保存。
在查找VMA对应的物理内存页中的内存脏页之前,需要判断VMA对应的物理内存页中是否含有内存脏页。判断VMA对应的物理内存页中是否含有内存脏页的实现方式为根据VMA的标志位是否为空进行判断。
102、当判断结果为VMA对应的物理内存页中含有内存脏页时,对该VMA对应的物理内存页进行遍历。
所述遍历包括查找VMA对应的物理内存页中的内存脏页并对该内存脏页的信息进行保存。
103、当判断结果为VMA对应的物理内存页中不含内存脏页时,跳过对该VMA对应的物理内存页的遍历。
由于VMA对应的物理内存页中不含内存脏页,所以对该VMA对应的物理内存页的遍历会增加热备份的处理时间。对于对应物理内存页中不含内存脏页的VMA,不对该VMA对应的物理内存页进行遍历,从而可以缩减热备份的处理时间,提高热备份效率。
需要说明的是,因为VMA对应的物理内存页中不含内存脏页,所以是否对该VMA对应的物理内存页进行遍历不影响热备份效果。
每个应用程序进程都对应两种类型的内存区:物理内存区和虚拟内存区(VMA)。其中,物理内存区具有物理存储空间,当对物理内存区分页(即创建物理内存页)时,一般情况下一个物理内存页占用4Kb。而VMA则没有物理存储空间,进程需要根据VMA的虚拟地址查找物理内存区中物理内存页的物理地址,继而实现对物理内存页的遍历。本发明实施例中所述“查找VMA对应的物理内存页”是指根据虚拟地址和物理地址的对应关系查找物理内存区中物理内存页,实际应用中VMA中不含物理内存页,不应将物理内存页理解为“VMA中的物理内存页”。
本发明实施例提供的数据备份的方法,能够判断VMA对应的物理内存页中是否含有内存脏页。当VMA对应的物理内存页中不含内存脏页时,跳过该VMA对应的物理内存页的遍历,换言之,对于不含有内存脏页的虚拟内存区的备份过程中,可以仅保存所述虚拟内存区的控制信息,跳过对所述虚拟内存区对应物理页的遍历和脏页的检查,从而节省在该VMA中查找内存脏页所使用的时间。而在现有技术中,不论VMA对应的物理内存页中是否含有内存脏页都需要对VMA对应的物理内存页进行遍历。与现有技术相比,本发明实施例可以缩短热备份的处理时间,节省部分遍历物理内存页所消耗的物理资源,从而提高热备份***的处理效率。
进一步的,本发明实施例还提供了一种数据备份的方法,如图2所示,所述方法是对图1所示实施例的进一步扩展。所述方法包括如下步骤:
201、保存VMA的控制信息。
所述控制信息为VMA的结构体信息(vm_area_struct),对所述控制信息的保存针对于所有VMA。
202、判断VMA的虚拟内存写入标志位是否为空。
对应于VMA的应用程序进程信息可以是代码段、数据段、共享库中的代码段和数据段、栈、队以及堆等。
本发明实施例中所述的虚拟内存写入(VM_WRITE)标志位可以是VM_flags(虚拟内存标记)中的VM_WRITE标志位。当VM_WRITE为空时该VMA对应的物理内存页中不含内存脏页;当VM_WRITE为非空时该VMA对应的物理内存页中含有内存脏页。或者,当VM_WRITE为非空时该VMA对应的物理内存页中不含内存脏页;当VM_WRITE为空时该VMA对应的物理内存页中含有内存脏页。此外,还可以通过0和1,或高低电平表示VM_WRITE为空和非空两种状态。当VM_WRITE为0时该VMA对应的物理内存页中不含内存脏页;当VM_WRITE为1时该VMA对应的物理内存页中含有内存脏页。
当VM_WRITE为空时执行步骤203,当VM_WRITE为非空时执行步骤204.
203、当判断结果为VMA的虚拟内存写入标志位为空时,跳过该虚拟内存区对应的物理内存页进行遍历。
所述遍历包括查找VMA对应物理内存页中的内存脏页并对该内存脏页的信息进行保存。一个VMA往往对应成百上千个物理内存页,对一个VMA对应的物理内存页进行遍历,就是在该VMA中进行成百上千次查找。对于对应物理内存页中不含内存脏页的VMA,成百上千次的查找不但查找不到内存脏页,反而还会耗费大量时间以及物理资源。所以对于对应物理内存页中不含内存脏页的VMA不进行物理内存页的遍历,从而可以缩减热备份的处理时间,提高热备份效率。
需要说明的是,因为VMA对应的物理内存页中不含内存脏页,所以是否对该VMA对应的物理内存页进行遍历不影响热备份效果。
204、当判断结果为VMA的虚拟内存写入标志位为非空时,对该虚拟内存区对应的物理内存页进行遍历。
所述遍历包括查找物理内存页中的内存脏页并对该内存脏页的信息进行保存。具体实现方式可以由本领域技术人员根据现有技术进行实现,本发明实施例不再赘述。
需要说明的是,虽然本步骤中对物理内存页的遍历为现有技术,但是本步骤仅对对应物理内存页中有内存脏页的VMA进行物理内存页遍历,对于对应物理内存页中没有内存脏页的VMA不进行物理内存页遍历。
进一步的,在创建VMA时,还可以根据可执行文件信息的类型对应用程序信息对应的VMA的标志位进行设置。例如,可以将为只读类型的可执行文件信息对应的VMA的VM_WRITE标志位设置为空,将其他类型的可执行文件信息对应的VMA的VM_WRITE标志位设置为非空。具体的,可以将可执行文件中的代码段、只读数据段以及共享库中的代码段和只读数据段所对应的VMA的VM_WRITE标志位设置为空,将可执行文件中其他信息所对应的VMA的VM_WRITE标志位设置为非空,或者相反。由于只读信息对应的VMA对应的物理内存页中不含内存脏页,所以根据VM_WRITE位为空的判断,就可以直接跳过该VMA的物理内存页遍历。
在本发明实施例的一个应用场景中,热备份***在为可执行文件信息初始化地址空间时,创建VMA。在创建VMA的过程中,对可执行文件中的代码段、只读数据段以及共享库中的代码段和只读数据段,通过mmap的方式映射到内存中。在映射的过程中,可以将VMA的页可被写入(PROT_WRITE)标志位置空,以表示该VMA对应的物理内存页不可写,继而VMA中的VM_WRITE会自动置为空,表示该VMA为只读类型的VMA。
在VMA备份过程中,首先将VMA的控制信息进行保存,然后对VMA中的VM_WRITE标志位进行判断。当所述VM_WRITE标志位为空时(只读类型),不对该VMA对应的物理内存页进行遍历;当所述VM_WRITE标志位不为空时(非只读类型),按照现有技术对该VMA对应的物理内存页进行遍历。
本发明实施例提供的数据备份的方法,能够判断VMA对应的物理内存页中是否含有内存脏页。当VMA对应的物理内存页中含有内存脏页时,对该VMA对应的物理内存页进行遍历,当VMA对应的物理内存页中不含内存脏页时,跳过该VMA对应的物理内存页的遍历,换言之,对于不含有内存脏页的虚拟内存区的备份过程中,可以仅保存所述虚拟内存区的控制信息,跳过对所述虚拟内存区对应物理页的遍历和脏页的检查,从而节省在该VMA中查找内存脏页所使用的时间。而在现有技术中,不论VMA对应的物理内存页中是否含有内存脏页都需要对VMA对应的物理内存页进行遍历。在保存进程状态信息的过程中内存信息的保存占80%以上,而对内存信息的保存就是对内存脏页的查找和保存,与现有技术相比,本发明实施例可以节省对部分VMA对应物理内存页的遍历,缩短热备份的处理时间,节省部分遍历物理内存页所消耗的物理资源,从而提高热备份***的处理效率。
本发明实施例提供一种服务器,所述服务器用于通过运行应用程序进程实现对网络数据的收发、存储、处理等操作,并且通过热备份技术对应用程序进程的状态信息进行备份,当服务器从故障或网络攻击中恢复后,可以通过服务器备份的进程状态信息恢复应用程序进程。如图3所示,所述服务器包括判别器31和处理器32,其中,
所述判别器31用于在对进程地址空间的VMA备份的过程中,在完成该VMA的控制信息的备份后,根据该VMA的标志位判断该VMA对应的物理内存页中是否含有内存脏页。
对应于虚拟内存区的应用程序进程信息可以是代码段、数据段、共享库中的代码段和数据段、栈、队以及堆等。
所述处理器32与所述判别器31相连,用于当所述判别器31判断VMA对应的物理内存页中含有内存脏页时,对该VMA对应的物理内存页进行遍历,所述遍历包括查找物理内存页中的内存脏页并将该内存脏页的内容进行保存,当所述判别器31判断该VMA对应的物理内存页中不含内存脏页时,跳过对该VMA对应物理内存页的遍历。
一个VMA中往往对应成百上千个物理内存页,所述处理器32对一个VMA对应的物理内存页进行遍历,就是在该VMA中进行成百上千次查找。对于对应物理内存页中不含内存脏页的虚拟内存区,成百上千次的查找不但查找不到内存脏页,反而还会耗费大量时间以及物理资源。所以所述处理器32不对对应物理内存页中不含内存脏页的VMA进行物理内存页的遍历,从而可以缩减热备份的处理时间,提高热备份效率。
需要说明的是,因为VMA对应的物理内存页中不含内存脏页,所以所述处理器32是否对该VMA对应的物理内存页进行遍历不影响热备份效果。
进一步的,如图4所示,所述服务器还包括:
置位器41,用于在创建VMA的过程中,当该VMA对应的信息为只读类型信息时,将该VMA的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空,当该VMA对应的信息为非只读类型信息时,将该VMA的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空。或者,当该VMA对应的信息为只读类型信息时,将该VMA的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空,当该VMA对应的信息为非只读类型信息时,将该VMA的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空。
进一步的,所述置位器41具体用于在创建执行文件中的代码段、只读数据段以及调用共享库中的代码段和只读数据段所对应的虚拟内存区的过程中,将可执行文件中的代码段、只读数据段以及调用共享库中的代码段和只读数据段所对应的VMA的VM_WRITE标志位设置为空。或者,将可执行文件中除代码段、只读数据段以及调用共享库中的代码段和只读数据段之外的信息所对应的VMA的VM_WRITE标志位设置为非空,或者相反。
此外,所述置位器41还可以通过0和1或者高低电平对只读和非只读代码段对应的VMA的VM_WRITE标志位进行设置。
进一步的,所述判别器31具体用于判断该VMA的VM_flags中的VM_WRITE标志位是否为空。当该VMA的VM_flags中的VM_WRITE标志位为空时,该VMA对应的物理内存页中不含内存脏页;当该VMA的VM_flags中的VM_WRITE标志位为非空时,该VMA对应的物理内存页中含有内存脏页。
或者,当该VMA的VM_flags中的VM_WRITE标志位为非空时,该VMA对应的物理内存页中不含内存脏页;当该VMA的VM_flags中的VM_WRITE标志位为空时,该VMA对应的物理内存页中含有内存脏页。
进一步的,如图5所示,所述服务器还可以包括:
存储器51,所述存储器51与所述处理器32相连,用于存储所述处理器32备份的控制信息以及所述处理器32备份的内存脏页的内容。
所述控制信息为VMA的结构体信息(vm_area_struct),对所述控制信息的保存针对于所有VMA。
每个应用程序进程都对应两种类型的内存区:物理内存区和虚拟内存区(VMA)。其中,物理内存区具有物理存储空间,当对物理内存区分页(即创建物理内存页)时,一般情况下一个物理内存页占用4Kb。而VMA则没有物理存储空间,进程需要根据VMA的虚拟地址查找物理内存区中物理内存页的物理地址,继而实现对物理内存页的遍历。本发明实施例中所述“查找VMA对应的物理内存页”是指根据虚拟地址和物理地址的对应关系查找物理内存区中物理内存页,实际应用中VMA中不含物理内存页,不应将物理内存页理解为“VMA中的物理内存页”。
本发明实施例提供服务器,能够判断VMA对应的物理内存页中是否含有内存脏页。当VMA对应的物理内存页中含有内存脏页时,对该VMA对应的物理内存页进行遍历,当VMA对应的物理内存页中不含内存脏页时,跳过对该VMA对应的物理内存页的遍历,换言之,对于不含有内存脏页的虚拟内存区的备份过程中,可以仅保存所述虚拟内存区的控制信息,跳过对所述虚拟内存区对应物理页的遍历和脏页的检查,从而节省在该VMA中查找内存脏页所使用的时间。而在现有技术中,不论VMA对应的物理内存页中是否含有内存脏页都需要对VMA对应的物理内存页进行遍历。在保存进程状态信息的过程中内存信息的保存占80%以上,而对内存信息的保存就是对内存脏页的查找和保存,与现有技术相比,本发明实施例可以节省对部分VMA对应的物理内存页的遍历,缩短热备份的处理时间,节省部分遍历物理内存页所消耗的物理资源,从而提高热备份***的处理效率。
进一步的,参考图1至图5所示的实施例,本发明实施例还提供了一种热备份***,所述热备份***用于对服务器中应用程序进程的运行状态进行实时备份。如图6所示,所述热备份***包括服务器61和存储***62,其中,
所述服务器61为图3至图5所示的服务器,所述存储***62用于保存所述服务器61备份的VMA的控制信息以及所述服务器61备份的VMA对应的物理脏页的内容。所述服务器61与所述存储***62之间具有数据交互能力。
在本发明实施例的一个应用场景中,所述服务器61在将VMA的控制信息和物理脏页内容在自身存储器(图5中所示的存储器51)中进保存后,将其发送给所述存储***62,由所述存储***62进行二次备份。由于所述存储***62独立于所述服务器61,所以对备份信息进行二次备份可以避免由于服务器硬盘物理故障导致的备份信息丢失的问题。
进一步的,在本发明实施例的另一个应用场景中,所述服务器61可以将VMA的控制信息和物理脏页内容直接发送给所述存储***62,由所述存储***62进行保存,由此节省服务器的硬盘空间。
本发明实施例的存储***62具体可以是存储阵列,比如磁盘阵列等等。
本发明实施例提供的热备份***,可以将备份信息备份到独立于服务器的存储介质上,在进一步保证备份信息可靠性的基础上还能够节省服务器的硬盘空间。此外,当存储介质为可移动存储介质时,还可以通过存储介质实现服务器间的备份数据共享,让在不同服务器中运行的应用进程共享内存数据。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据备份的方法,其特征在于,包括:
在对进程地址空间的虚拟内存区备份的过程中,在完成所述虚拟内存区的控制信息的备份后,根据所述虚拟内存区的标志位判断所述虚拟内存区对应的物理内存页中是否含有内存脏页;
当所述虚拟内存区对应的物理内存页中含有内存脏页时,对所述虚拟内存区对应的物理内存页进行遍历,所述遍历包括查找所述物理内存页中的内存脏页并对所述内存脏页的内容进行保存;
当所述虚拟内存区对应的物理内存页中不含内存脏页时,跳过对所述虚拟内存区对应物理内存页的遍历。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在创建所述虚拟内存区的过程中,当所述虚拟内存区对应的信息为只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空;
当所述虚拟内存区对应的信息为非只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空;或者,
当所述虚拟内存区对应的信息为只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空;
当所述虚拟内存区对应的信息为非只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空。
3.根据权利要求2所述的方法,其特征在于,所述将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空,包括:
将可执行文件中的代码段、只读数据段以及调用共享库中的代码段和只读数据段所对应的虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空;
所述将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空,包括:
将可执行文件中除代码段、只读数据段以及调用共享库中的代码段和只读数据段之外的信息所对应的虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述虚拟内存区的标志位判断所述虚拟内存区对应的物理内存页中是否含有内存脏页,包括:
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为空时,所述虚拟内存区对应的物理内存页中不含内存脏页;
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为非空时,所述虚拟内存区对应的物理内存页中含有内存脏页;或者,
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为非空时,所述虚拟内存区对应的物理内存页中不含内存脏页;
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为空时,所述虚拟内存区对应的物理内存页中含有内存脏页。
5.一种服务器,其特征在于,所述服务器包括:
判别器,用于在对进程地址空间的虚拟内存区备份的过程中,在完成所述虚拟内存区的控制信息的备份后,根据所述虚拟内存区的标志位判断所述虚拟内存区对应的物理内存页中是否含有内存脏页;
处理器,用于当所述判别器判断所述虚拟内存区对应的物理内存页中含有内存脏页时,对所述虚拟内存区对应的物理内存页进行遍历,所述遍历包括查找所述物理内存页中的内存脏页并将所述内存脏页的内容进行保存,当所述判别器判断所述虚拟内存区对应的物理内存页中不含内存脏页时,跳过对所述虚拟内存区对应物理内存页的遍历。
6.根据权利要求5所述的服务器,其特征在于,所述服务器还包括:
置位器,用于在创建所述虚拟内存区的过程中,当所述虚拟内存区对应的信息为只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空;
当所述虚拟内存区对应的信息为非只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空;或者,
当所述虚拟内存区对应的信息为只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空;
当所述虚拟内存区对应的信息为非只读类型信息时,将所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空。
7.根据权利要求6所述的服务器,其特征在于,所述置位器具体用于:在创建执行文件中的代码段、只读数据段以及调用共享库中的代码段和只读数据段所对应的虚拟内存区的过程中,将所述可执行文件中的代码段、只读数据段以及调用共享库中的代码段和只读数据段所对应的虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为空;或者,
将所述可执行文件中除代码段、只读数据段以及调用共享库中的代码段和只读数据段之外的信息所对应的虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位设置为非空。
8.根据权利要求6或7所述的服务器,其特征在于,所述判别器具体用于:
判断所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位是否为空,
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为空时,所述虚拟内存区对应的物理内存页中不含内存脏页;
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为非空时,所述虚拟内存区对应的物理内存页中含有内存脏页;或者,
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为非空时,所述虚拟内存区对应的物理内存页中不含内存脏页;
当所述虚拟内存区的虚拟内存标志VM_flags中的虚拟内存写入VM_WRITE标志位为空时,所述虚拟内存区对应的物理内存页中含有内存脏页。
9.根据权利要求8所述的服务器,其特征在于,所述服务器还包括:
存储器,用于存储所述处理器备份的控制信息以及所述处理器备份的内存脏页的内容。
10.一种热备份***,其特征在于,所述热备份***包括服务器和存储***,其中,
所述服务器为权利要求5至9中任意一项所述的服务器;
所述存储***,用于存储所述服务器备份的控制信息以及所述服务器备份的内存脏页的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210108928.2A CN102662799B (zh) | 2012-04-13 | 2012-04-13 | 数据备份的方法、服务器及热备份*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210108928.2A CN102662799B (zh) | 2012-04-13 | 2012-04-13 | 数据备份的方法、服务器及热备份*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662799A true CN102662799A (zh) | 2012-09-12 |
CN102662799B CN102662799B (zh) | 2015-01-21 |
Family
ID=46772296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210108928.2A Expired - Fee Related CN102662799B (zh) | 2012-04-13 | 2012-04-13 | 数据备份的方法、服务器及热备份*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662799B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678036A (zh) * | 2013-11-15 | 2014-03-26 | 上海爱数软件有限公司 | 一种基于虚拟机运行信息数据发现的备份方法 |
CN103853633A (zh) * | 2014-02-14 | 2014-06-11 | 上海爱数软件有限公司 | 基于虚拟机运行信息应用发现的应用程序注入式备份方法 |
CN104007993A (zh) * | 2014-06-11 | 2014-08-27 | 中国科学院信息工程研究所 | 一种Linux***内存敏感数据的清除方法及装置 |
CN105653980A (zh) * | 2015-12-30 | 2016-06-08 | 福建联迪商用设备有限公司 | 一种虚拟内存数据的保护方法及其*** |
CN109947594A (zh) * | 2019-02-27 | 2019-06-28 | 武汉天喻信息产业股份有限公司 | 一种数据备份方法及装置、数据恢复方法及装置 |
CN113849339A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 恢复应用程序的运行状态的方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955939A (zh) * | 2006-10-13 | 2007-05-02 | 清华大学 | 基于虚拟内存盘的备份与恢复方法 |
CN101833514A (zh) * | 2009-03-12 | 2010-09-15 | 安凯(广州)软件技术有限公司 | 基于微内存***在与非型闪存介质实现虚拟内存的方法 |
WO2011022123A1 (en) * | 2009-08-21 | 2011-02-24 | Rambus Inc. | In-situ memory annealing |
-
2012
- 2012-04-13 CN CN201210108928.2A patent/CN102662799B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955939A (zh) * | 2006-10-13 | 2007-05-02 | 清华大学 | 基于虚拟内存盘的备份与恢复方法 |
CN101833514A (zh) * | 2009-03-12 | 2010-09-15 | 安凯(广州)软件技术有限公司 | 基于微内存***在与非型闪存介质实现虚拟内存的方法 |
WO2011022123A1 (en) * | 2009-08-21 | 2011-02-24 | Rambus Inc. | In-situ memory annealing |
Non-Patent Citations (1)
Title |
---|
张彬彬等: "虚拟机全***在线迁移", 《电子学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678036A (zh) * | 2013-11-15 | 2014-03-26 | 上海爱数软件有限公司 | 一种基于虚拟机运行信息数据发现的备份方法 |
CN103678036B (zh) * | 2013-11-15 | 2016-08-17 | 上海爱数信息技术股份有限公司 | 一种基于虚拟机运行信息数据发现的备份方法 |
CN103853633A (zh) * | 2014-02-14 | 2014-06-11 | 上海爱数软件有限公司 | 基于虚拟机运行信息应用发现的应用程序注入式备份方法 |
CN103853633B (zh) * | 2014-02-14 | 2016-11-23 | 上海爱数信息技术股份有限公司 | 基于虚拟机运行信息应用发现的应用程序注入式备份方法 |
CN104007993A (zh) * | 2014-06-11 | 2014-08-27 | 中国科学院信息工程研究所 | 一种Linux***内存敏感数据的清除方法及装置 |
CN104007993B (zh) * | 2014-06-11 | 2017-05-10 | 中国科学院信息工程研究所 | 一种Linux***内存敏感数据的清除方法及装置 |
CN105653980A (zh) * | 2015-12-30 | 2016-06-08 | 福建联迪商用设备有限公司 | 一种虚拟内存数据的保护方法及其*** |
CN109947594A (zh) * | 2019-02-27 | 2019-06-28 | 武汉天喻信息产业股份有限公司 | 一种数据备份方法及装置、数据恢复方法及装置 |
CN109947594B (zh) * | 2019-02-27 | 2021-04-09 | 武汉天喻信息产业股份有限公司 | 一种数据备份方法及装置、数据恢复方法及装置 |
CN113849339A (zh) * | 2020-06-28 | 2021-12-28 | 华为技术有限公司 | 恢复应用程序的运行状态的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102662799B (zh) | 2015-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103970585B (zh) | 创建虚拟机的方法及装置 | |
CN102662799B (zh) | 数据备份的方法、服务器及热备份*** | |
CN102331949B (zh) | 一种虚拟机内存快照生成和恢复方法、装置及*** | |
US10474369B2 (en) | Mapping guest pages to disk blocks to improve virtual machine management processes | |
EP3370153B1 (en) | Method and device for generating virtual machine snapshot | |
US10884645B2 (en) | Virtual machine hot migration method, host machine and storage medium | |
US20150206272A1 (en) | Selectively killing trapped multi-process service clients sharing the same hardware context | |
CN102750317B (zh) | 数据持久化处理方法、装置及数据库*** | |
US9606741B2 (en) | Memory power management and data consolidation | |
CN102707990A (zh) | 基于容器的处理方法、装置和*** | |
CN104133775A (zh) | 一种用于管理存储器的方法和装置 | |
CN103049392B (zh) | 缓存目录的实现方法及装置 | |
CN104007993A (zh) | 一种Linux***内存敏感数据的清除方法及装置 | |
CN102999564B (zh) | 写入数据的方法、装置和设备 | |
CN104778116B (zh) | 一种多断点的软件调试装置和方法 | |
CN102142032A (zh) | 一种分布式文件***的数据读写方法及*** | |
CN106293882A (zh) | 一种虚拟磁盘快照实现方法及装置 | |
CN105528179A (zh) | 存储器位置之间控制的转移的***和方法 | |
CN104216771A (zh) | 软件程序的重启方法及装置 | |
CN103914325B (zh) | 基于混合内存的Linux***的关机、开机方法及*** | |
KR101996641B1 (ko) | 메모리 오버레이 장치 및 방법 | |
CN103559119B (zh) | 文件操作请求处理方法及装置 | |
US8375188B1 (en) | Techniques for epoch pipelining | |
US11205019B2 (en) | Multiple computing environments on a computer system | |
CN104572655A (zh) | 数据处理的方法、装置及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150121 Termination date: 20190413 |