CN103744725B - 一种虚拟机管理方法及装置 - Google Patents
一种虚拟机管理方法及装置 Download PDFInfo
- Publication number
- CN103744725B CN103744725B CN201310724710.4A CN201310724710A CN103744725B CN 103744725 B CN103744725 B CN 103744725B CN 201310724710 A CN201310724710 A CN 201310724710A CN 103744725 B CN103744725 B CN 103744725B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- page fault
- management
- memory
- notify
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种虚拟机管理方法,包括:虚拟机管理器获取用户对虚拟机的管理操作;在所述管理操作为预定义类型的管理操作时,通知虚拟机将内存分页机制设置为同步模式,以便虚拟机对页面故障进行同步处理;在所述预定义类型的管理操作结束时,通知虚拟机将内存分页机制设置为异步模式,以便虚拟机对页面故障进行异步处理。本发明实施例还提供相应的装置。本发明技术方案通过对虚拟机内部调度机制进行控制,使得热迁移和内存快照等场景不会触发虚拟机内部的进程切换,从而减少了系统中脏页产生的速度,达到了降低系统开销,加快故障处理速度,减轻系统负担,提升系统性能的目的。
Description
技术领域
本发明涉及计算机和通信技术领域,具体涉及一种虚拟机管理方法及装置。
背景技术
在虚拟化应用中,虚拟机热迁移和虚拟机内存快照是两项重要的高级特性。虚拟机热迁移是指在不中断虚拟机运行的情况下,将一个计算节点上的虚拟机迁移到另一个计算节点上;通过热迁移,可以方便的实现资源的有效利用和故障保护。虚拟机内存快照是指将虚拟机某一个时刻的内存状态保存起来,它通过用来和存储快照一起实现虚拟机的故障恢复或者回退。
由于业务是不能中断的,虚拟机在不断的修改它的内存数据。因此在执行内存快照或者热迁移期间,需要有一种方法来保证最终迁移或保存的页面上的数据是具有一致性的。现有的内存快照和热迁移都会使用一种脏页记录(logdirty)的机制,来保证备份的所有内存页面中的数据是在备份的某个时间点之前的。
logdirty机制是指在某个时间点将虚拟机的所有内存页面设置为只读内存,当虚拟机运行需要改写内存数据时,就会触发一个写错误异常,虚拟机管理器(hypervisor)捕获到该异常后,会将该内存页面先做一个备份,然后将该内存页面恢复为可写,让虚拟机继续运行。这样,检查时间点以前的内存页面已经保存,即便虚拟机修改了这部分内存,也可以通过备份,找到整个虚拟机原有的内存数据。在整个操作期间,只有在将虚拟机的内存设为只读时,是需要将虚拟机暂停的;而这部分操作很快,因此,可以认为整个过程中,虚拟机的业务是没有被中断的。
内存快照只需要保存检查点之前的内存数据,执行一次logdirty流程即可,在虚拟机触发写错误后,将虚拟机要修改的内存也做好备份,就可以将该内存页面交还给虚拟机改写了。
虚拟机热迁移的方案和内存快照的方案很相近,只不过热迁移的时候,会执行多次的logdirty流程。虚拟机热迁移首先会将所有的内存页面都置为只读内存,然后启动热迁移将内存页迁移到目的节点上。在迁移过程中,虚拟机也会触发写错误。Hypervisor捕获这个写错误后,会记录这个将被改写的页面。在一次热迁移结束后,hypervisor会再次将所有的页面设为只读页面,并重传在上一轮中被改写过的页面。这个过程会重复多次,直到被改写的页面个数缩减到设定的阈值之下时,会暂停虚拟机,将剩余的被改写页面一次性迁移到目的节点,然后在目的节点上恢复虚拟机的运行,完成热迁移。
以上虚拟机内存快照和虚拟机热迁移流程中,由于内存页面被设置为只读,导致页面无法改写的异常称为缺页异常,该页面在被改写后由于内容发生变化而被称为脏页;对上述流程进行分析,不难发现脏页的数量对系统的性能会造成很大的影响。对内存快照而言,脏页会导致虚拟机的虚拟处理器(vcpu)退出,系统需要增加对脏页的处理,提前备份脏页,这个会影响虚拟机和整个系统的效率。而对虚拟机热迁移来说,在每一次迭代中,产生的脏页都需要被重传,而且,如果产生的脏页过多的话,会导致最终一次性传输的内存页面阈值需要更多的迭代才能达到。
在现有的虚拟化技术中,为了提高虚拟机的执行效率,当vcpu出现缺页异常时,不会立即触发vcpu的退出,而是在虚拟机内存进行正常的任务切换,即虚拟机内部调度其他进程正常执行。这种异步处理方式在正常的虚拟机执行中,可以减少vcpu的退出次数,从而很大的提升虚拟机的性能。
但是在热迁移时候或内存快照时,缺页异常触发任务切换的操作是不会带来性能提升的。因为,在热迁移和内存快照时,所有的内存页面都是只读的。此时,如果A进程产生页面故障,即使调度切换至B进程,B进程的内存页面也是只读,如果此时B进程也改写内存,那同样会产生页面故障,再次触发任务切换。这样,多次切换下来系统中产生了不少的页面故障异常,产生了很多脏页。但是实际程序的有效执行还得等A进程的页面故障恢复后才能使A正常运行。因此在这个场景下,对页面故障做异步处理是没有意义的,不仅不能提高系统的性能,反而会加重系统的负担。
如前所述,在热迁移和内存快照等业务场景下,频繁的触发虚拟机内部的进程切换会加重系统的负担。
发明内容
本发明实施例提供一种虚拟机管理方法及装置,以解决现有技术在热迁移和内存快照等场景下,频繁触发虚拟机内部的进程切换导致的系统负担加重的技术问题。
本发明第一方面提供一种虚拟机管理方法,包括:虚拟机管理器获取用户对虚拟机的管理操作;在所述管理操作为预定义类型的管理操作时,通知虚拟机将内存分页机制设置为同步模式,以便虚拟机对页面故障进行同步处理;在所述预定义类型的管理操作结束时,通知虚拟机将内存分页机制设置为异步模式,以便虚拟机对页面故障进行异步处理。
在第一种可能的实现方式中,所述预定义类型的管理操作为虚拟机内存快照或者虚拟机热迁移。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述页面故障具体为内存缺页异常,所述虚拟机对页面故障进行同步处理包括:虚拟机判断所述内存缺页异常是否由logdirty机制造成;若是由logdirty机制造成,则通知虚拟机管理器备份当前的内存页面,并触发虚拟处理器vcpu进行虚拟机退出操作。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:内存缺页异常恢复后,虚拟机管理器触发vcpu进行虚拟机进入操作;虚拟机检测到准备好的缺页页面后,恢复缺页进程的执行。
结合第一方面或者第一方面的第一种至第三种可能的实现方式中的任一种,在第四种可能的实现方式中,所述页面故障具体为内存缺页异常,所述虚拟机对页面故障进行异步处理包括:通知虚拟机管理器备份当前的内存页面;切换进程,在vcpu上执行其它任务;内存缺页异常恢复后,再次切换进程,恢复缺页进程的执行。
结合第一方面或者第一方面的第一种至第四种可能的实现方式中的任一种,在第五种可能的实现方式中,所述通知虚拟机将内存分页机制设置为同步模式包括:通过注入虚拟中断的方式通知虚拟机将内存分页机制设置为同步模式。
结合第一方面或者第一方面的第一种至第四种可能的实现方式中的任一种,在第六种可能的实现方式中,所述通知虚拟机将内存分页机制设置为异步模式包括:通过注入虚拟中断的方式通知虚拟机将内存分页机制设置为异步模式。
结合第一方面或者第一方面的第一种至第四种可能的实现方式中的任一种,在第七种可能的实现方式中,所述通知虚拟机将内存分页机制设置为同步模式包括:通过事件通道的方式通知虚拟机将内存分页机制设置为同步模式。
结合第一方面或者第一方面的第一种至第四种可能的实现方式中的任一种,在第八种可能的实现方式中,所述通知虚拟机将内存分页机制设置为同步模式包括:所述通知虚拟机将内存分页机制设置为异步模式包括:通过事件通道的方式通知虚拟机将内存分页机制设置为异步模式。
本发明第二方面一种虚拟机管理装置,包括:管理模块,部署在虚拟机管理器中,用于获取用户对虚拟机的管理操作;在所述管理操作为预定义类型的管理操作时,发送第一通知给页面故障管理模块;在所述预定义类型的管理操作结束时,发送第二通知给页面故障管理模块;页面故障管理模块,部署在虚拟机中,用于收到第一通知后,将内存管理模块中的内存分页机制设置为同步模式;收到第二通知后,将内存管理模块中的内存分页机制设置为异步模式;内存管理模块,部署在虚拟机上,用于在同步模式下对页面故障进行同步处理,在异步模式下对页面故障进行异步处理。
在第一种可能的实现方式中,所述页面故障具体为内存缺页异常,所述内存管理模块包括:同步处理单元,用于判断所述内存缺页异常是否由logdirty机制造成;若是由logdirty机制造成,则通知虚拟机管理器,由虚拟机管理器备份当前的内存页面,并触发虚拟处理器vcpu进行虚拟机退出操作。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述虚拟机管理器,还用于在内存缺页异常恢复后,触发vcpu进行虚拟机进入操作;所述同步处理单元,还用于检测到准备好的缺页页面后,恢复缺页进程的执行。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述页面故障具体为内存缺页异常,所述内存管理模块包括:异步处理单元,用于通知虚拟机管理器备份当前的内存页面;还用于切换进程,在vcpu上执行其它任务;内存缺页异常恢复后,再次切换进程,恢复缺页进程的执行。
本发明实施例采用捕获用户对虚拟机的管理操作,在管理操作为内存快照或热迁移等操作类型时,将虚拟机的内存分页机制从正常的异步处理改设为同步处理的技术方案,对虚拟机内部调度机制进行控制,使得热迁移和内存快照等场景不会触发虚拟机内部的进程切换,从而减少了系统中脏页产生的速度,达到了减轻系统负担,提升系统性能的目的。
附图说明
图1是本发明实施例的系统架构图;
图2是本发明实施例提供的虚拟机管理方法的流程图;
图3是本发明一个应用场景例的示意图;
图4是本发明应用例中整个故障处理的流程图;
图5是虚拟机内部对页面故障进行同步处理的流程图;
图6是本发明实施例提供的虚拟机管理装置的示意图。
具体实施方式
本发明实施例提供一种虚拟机管理方法,使得热迁移和内存快照等场景不会触发虚拟机内部的进程切换,从而减少了系统中脏页产生的速度,达到了减轻系统负担,提升系统性能的目的。本发明实施例还提供相应的装置。以下分别进行详细说明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明实施例的系统架构图,包括物理机,物理机的硬件层上运行有虚拟机管理器(hypervisor),虚拟机管理器上运行有至少一个虚拟机(Virtual Machine,VM)。其中,虚拟机管理器属于虚拟化管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。虚拟机管理器可能是虚拟机监控器(VMM,VirtualMachine Monitor)。虚拟机是通过虚拟机软件在一台物理计算机上模拟出的虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装子操作系统(GuestOS)和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
请参考图2,本发明实施例提供一种虚拟机管理方法,包括:
110、虚拟机管理器获取用户对虚拟机的管理操作;
120、在所述管理操作为预定义类型的管理操作时,通知虚拟机将内存分页机制设置为同步模式,以便虚拟机对页面故障进行同步处理;
130、在所述预定义类型的管理操作结束时,通知虚拟机将内存分页机制设置为异步模式,以便虚拟机对页面故障进行异步处理。
虚拟机管理器(hypervisor)能够捕获用户对虚拟机的管理操作,我们把具有该捕获功能的模块称为Hypervisor的管理模块。当管理模块捕获到用户在对虚拟机进行内存快照或者热迁移这些预定义类型的管理操作时,通知虚拟机的Guest OS中部署的页面故障管理模块,页面故障管理模块进一步控制将虚拟机的内存管理模块中的分页机制设置为同步模式,即,将页面故障处理流程切换为同步的页面故障处理;此时,虚拟机开始正常的热迁移或者内存快照流程,对该过程中发生的页面故障进行同步处理。当内存快照或者热迁移这些预定义类型的管理操作结束时,hypervisor的管理模块再次通知虚拟机中的页面故障管理模块,将内存管理模块的分页机制设置为异步模式,即,页面故障处理流程切换为正常的异步处理流程,对该过程中发生的页面故障进行异步处理。具体应用中,管理模块可以通过注入虚拟中断的方式,或者通过事件通道的方式,实现对虚拟机的通知,即,通过注入虚拟中断的方式或者通过事件通道的方式,通知虚拟机将内存分页机制设置为异步模式或同步模式。
所述预定义类型的管理操作是指基于脏页记录(logdirty)机制的、将内存页面设为只读,然后捕获缺页异常再做处理的各种类型的管理操作,并不限于内存快照或者热迁移。虚拟机管理器能够直接捕获用户对虚拟机的管理操作,获知管理操作的类型;虚拟机管理器也可以捕获异步处理流程中进程切换的次数,如果一定时间内进程切换次数超过设定阀值,则认为当前的管理操作是预定义类型。
所说的logdirty机制,是指如下机制:在某个时间点将虚拟机的所有内存页面设置为只读,当虚拟机运行需要改写内存页面的数据时,就会触发一个写错误异常,虚拟机管理器捕获到该异常后,将需要改写的内存页面先做一个备份,然后将该内存页面恢复为可写,让虚拟机继续运行。
其中,内存快照或者热迁移等预定义类型的管理操作中产生的页面故障具体是,因内存页面被设置为只读而无法改写导致的内存缺页异常。同步处理流程一般包括:
a0、虚拟机的一个或多个进程的内存页面被设置为只读,当需要改写内存时,发生内存缺页异常,进入同步的页面故障处理流程;
a1、虚拟机判断当前发生的内存缺页异常是否由logdirty机制造成;例如,通过判断确认虚拟机处于快照或者热迁移流程中,且虚拟机进行写操作访问时,内存页面被强制改为只读而导致的故障,可以认为是由logdirty机制造成。
a2、若是由logdirty机制造成,则通知虚拟机管理器备份当前的内存页面,并阻塞虚拟处理器(vcpu),以及触发vcpu进行虚拟机退出操作(vmexit),释放vcpu资源;
a3、执行页面故障处理流程,处理缺页,包括:恢复缺页页面的原有页面属性标志;
a4、内存缺页异常恢复后,虚拟机管理器触发vcpu进行虚拟机进入操作(vmentry),使vcpu恢复运行;
a5、恢复运行的虚拟机检测到准备好的缺页页面后,恢复缺页进程的执行。所述缺页进程是指前面发生了内存缺页异常的进程。
其中,a1步骤中若判断出当前发生的内存缺页异常不是由logdirty机制造成,则直接执行正常的页面故障处理流程。
上述正常的页面故障处理流程是指,不产生vmexit备份页面的步骤,直接在虚拟机内部处理缺页。
异步处理流程一般包括:
b0、虚拟机的一个或多个进程的内存页面被设置为只读,当需要改写内存时,发生内存缺页异常,进入异步的页面故障处理流程;
b1、通知虚拟机管理器备份当前的内存页面;
b2、虚拟机内部进行进程切换,在vcpu上执行其它任务;
b3、内存缺页异常恢复后,再次切换进程,恢复缺页进程的执行。
该异步处理流程中,不会导致虚拟机退出。
以上,对本发明实施例提供的虚拟机管理方法进行了简单介绍。为了更便于理解本发明技术方案,下面结合图3至图5所示对本发明实施例技术方案做进一步详细说明。
图3所示,是本发明一个场景应用例的示意图。
假设虚拟机热迁移过程中,需要将虚拟机A从其正在运行的一个物理硬件A上迁移至其需要运行的物理硬件B上。迁移过程主要包含,虚拟机配置信息迁移和虚拟机内存信息迁移。通过在热迁移中,进行虚拟机内部的内存缺页异常的故障处理模式切换,可以提升虚拟机内存的迁移效率。
图4所示是本发明应用例中整个故障处理的流程图。
用户对虚拟机进行热迁移或内存快照等管理操作时,虚拟机管理器可以捕获该管理操作,并通知虚拟机内部进行页面故障处理模式的切换。
用户对虚拟机的管理操作,通常是在用户态发起的,用户发起命令后,该管理操作经过基本的权限、可靠性检验后,就会发送给虚拟化层执行操作。具体为:发送给虚拟化层中的虚拟机管理器执行操作。用户下发的命令通过超调用的方式传递给虚拟机管理器。虚拟机管理器在接受到用户命令后,再将该操作信息通知给虚拟机内部的页面故障管理模块。在本发明的一些实施例中,虚拟机管理器可以通过注入虚拟中断的方式实现对虚拟机内部进行通知。
虚拟机内部的页面故障管理模块在接收到通知后,在系统的页面故障处理程序中,将系统的内存分页机制切换至同步模式。这样,在虚拟机热迁移过程中,每次缺页异常的处理都不会立即返回,当前的vcpu处理会被阻塞,释放出当前的cpu资源,直到相关的页面被处理好后,才能再次恢复该vcpu继续运行。这种操作,避免了在每次缺页后立即返回,用户态进程发生任务切换,新执行的任务再次触发缺页,而造成的恶性循环。
当整个虚拟机热迁移的流程执行结束后,虚拟机管理器再次通过注入虚拟机中断的方式,通知虚拟机内部热迁移结束,虚拟机页面故障管理模块负责将内存分页机制切换会原有的异步模式。
图5所示,是虚拟机内部对页面故障进行同步处理的流程图。
在虚拟机处理正常业务流程中,对缺页中断异常采用异步处理,可以防止vcpu阻塞到某一次缺页流程中,通过任务切换,可以将其他就绪的任务切换到vcpu上运行。而本实施例技术方案在虚拟机热迁移或者内存快照流程中,通过对缺页中断异常采用同步处理,可以避免产生过多的缺页故障,增加系统负担。
本实施例通过在虚拟机的内存管理模块中,增加同步的缺页处理流程来实现对页面故障处理的同步控制。本实施例在虚拟机的页面故障虚拟中断处理函数中,当用户指定进行异步缺页中断向同步缺页中断的处理转换时,向当前的页面故障处理函数中,注册一个回调函数,该回调函数首先判断当前的缺页是否由logdirty机制引起,当确认是由logdirty引起的时候,走同步的缺页处理流程,否则,按原有的异步处理方式处理。
对于确认是由logdirty引起的页面故障,虚拟机通过与虚拟机管理器的信息交互方式,如超级调用,通知虚拟机管理器备份当前内存页面;同时,触发vcpu进行vmexit(虚拟机退出操作),释放当前的vcpu。当内存页面备份完毕后,虚拟化层再次恢复vcpu的运行。vcpu恢复运行后,虚拟机检测到缺页页面确实被准备好了,再进行适当的权限配置后,完成缺页处理流程,通过调度,再次加载业务进程,恢复缺页进程的运行。
至此,一次同步模式的内存缺页异常处理流程执行完毕,等下次再次产生内存缺页异常时,再重复本次处理逻辑。
可选的,由于虚拟机作为一个完整的整体,可以独立的接受命令并执行;因此,在本发明的一些实施例中,虚拟机管理器通知虚拟机内部进行工作模式的切换,不限于通过注入虚拟中断这种方式,也可以采用事件通道方式;例如,可以在虚拟机内部署一个agent(代理)管理程序,通过网络通信或者内存共享等事件通道方式,将需要进行切换的信息通知到agent管理程序。由agent管理程序,负责完成虚拟机内部运行模式的切换。
综上,本发明实施例提供了一种虚拟机管理方法,该方法采用捕获用户对虚拟机的管理操作,在管理操作为内存快照或热迁移时,将虚拟机的内存分页机制从正常的异步处理改设为同步处理的技术方案,对虚拟机内部调度机制进行控制,使得热迁移和内存快照等场景不会触发虚拟机内部的进程切换,从而减少了系统中脏页产生的速度,达到了降低系统开销,加快故障处理速度,减轻系统负担,提升系统性能的目的。
为了更好的实施本发明实施例的上述方案,下面还提供用于配合实施上述方案的相关装置。
请参考图6,本发明实施例提供一种虚拟机管理装置,包括:
管理模块610,页面故障管理模块620,内存管理模块630;
管理模块610,部署在虚拟机管理器中,用于获取用户对虚拟机的管理操作;在所述管理操作为预定义类型的管理操作时,发送第一通知给页面故障管理模块620;在所述预定义类型的管理操作结束时,发送第二通知给页面故障管理模块620;
页面故障管理模块620,部署在虚拟机中,用于收到第一通知后,将内存管理模块630中的内存分页机制设置为同步模式;收到第二通知后,将内存管理模块630中的内存分页机制设置为异步模式;
内存管理模块630,部署在虚拟机上,用于在同步模式下对页面故障进行同步处理,在异步模式下对页面故障进行异步处理。
本发明的一些实施例中,所述页面故障具体为内存缺页异常,所述内存管理模块630包括:同步处理单元,用于判断内存缺页异常是否由logdirty机制造成;若是,则通知虚拟机管理器,由虚拟机管理器备份当前的内存页面,并触发虚拟处理器vcpu进行虚拟机退出操作(vmexit)。
可选的,所述虚拟机管理器还用于在内存缺页异常恢复后,触发vcpu进行虚拟机进入操作(vmentry);所述同步处理单元,还用于检测到准备好的缺页页面后,恢复缺页进程的执行。
本发明的一些实施例中,所述页面故障具体为内存缺页异常,所述内存管理模块包括:异步处理单元,用于通知虚拟机管理器备份当前的内存页面;还用于切换进程,在vcpu上执行其它任务;内存缺页异常恢复后,再次切换进程,恢复缺页进程的执行。
综上,本发明实施例提供了一种虚拟机管理装置,该装置可以捕获用户对虚拟机的管理操作,在管理操作为内存快照或热迁移时,将虚拟机的内存分页机制从正常的异步处理改设为同步处理,对虚拟机内部调度机制进行控制,使得热迁移和内存快照等场景不会触发虚拟机内部的进程切换,从而减少了系统中脏页产生的速度,达到了降低系统开销,加快故障处理速度,减轻系统负担,提升系统性能的目的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机读取存储器、磁盘或光盘等。
以上对本发明实施例所提供的虚拟机管理方法及装置进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种虚拟机管理方法,其特征在于,包括:
虚拟机管理器获取用户对虚拟机的管理操作;
在所述管理操作为预定义类型的管理操作时,通知虚拟机将内存分页机制设置为同步模式,以便虚拟机对页面故障进行同步处理;
在所述预定义类型的管理操作结束时,通知虚拟机将内存分页机制设置为异步模式,以便虚拟机对页面故障进行异步处理;
其中,所述页面故障具体为内存缺页异常,所述虚拟机对页面故障进行同步处理包括:
虚拟机判断所述内存缺页异常是否由脏页记录logdirty机制造成;
若是由logdirty机制造成,则通知虚拟机管理器备份当前的内存页面,并触发虚拟处理器vcpu进行虚拟机退出操作;
所述页面故障具体为内存缺页异常,所述虚拟机对页面故障进行异步处理包括:
通知虚拟机管理器备份当前的内存页面;
切换进程,在vcpu上执行其它任务;
内存缺页异常恢复后,再次切换进程,恢复缺页进程的执行。
2.根据权利要求1所述的方法,其特征在于,所述预定义类型的管理操作为虚拟机内存快照或者虚拟机热迁移。
3.根据权利要求1所述的方法,其特征在于,还包括:
内存缺页异常恢复后,虚拟机管理器触发vcpu进行虚拟机进入操作;
虚拟机检测到准备好的缺页页面后,恢复缺页进程的执行。
4.根据权利要求1所述的方法,其特征在于,所述通知虚拟机将内存分页机制设置为同步模式包括:
通过注入虚拟中断的方式通知虚拟机将内存分页机制设置为同步模式。
5.根据权利要求1所述的方法,其特征在于,所述通知虚拟机将内存分页机制设置为异步模式包括:
通过注入虚拟中断的方式通知虚拟机将内存分页机制设置为异步模式。
6.根据权利要求1所述的方法,其特征在于,所述通知虚拟机将内存分页机制设置为同步模式包括:
通过事件通道的方式通知虚拟机将内存分页机制设置为同步模式。
7.根据权利要求1所述的方法,其特征在于,所述通知虚拟机将内存分页机制设置为异步模式包括:
通过事件通道的方式通知虚拟机将内存分页机制设置为异步模式。
8.一种虚拟机管理装置,其特征在于,包括:
管理模块,部署在虚拟机管理器中,用于获取用户对虚拟机的管理操作;在所述管理操作为预定义类型的管理操作时,发送第一通知给页面故障管理模块;在所述预定义类型的管理操作结束时,发送第二通知给页面故障管理模块;
页面故障管理模块,部署在虚拟机中,用于收到第一通知后,将内存管理模块中的内存分页机制设置为同步模式;收到第二通知后,将内存管理模块中的内存分页机制设置为异步模式;
内存管理模块,部署在虚拟机上,用于在同步模式下对页面故障进行同步处理,在异步模式下对页面故障进行异步处理;
其中,所述页面故障具体为内存缺页异常,所述内存管理模块包括:
同步处理单元,用于判断所述内存缺页异常是否由脏页记录logdirty机制造成;若是由logdirty机制造成,则通知虚拟机管理器,由虚拟机管理器备份当前的内存页面,并触发虚拟处理器vcpu进行虚拟机退出操作;
异步处理单元,用于通知虚拟机管理器备份当前的内存页面;还用于切换进程,在vcpu上执行其它任务;内存缺页异常恢复后,再次切换进程,恢复缺页进程的执行。
9.根据权利要求8所述的装置,其特征在于,
所述虚拟机管理器,还用于在内存缺页异常恢复后,触发vcpu进行虚拟机进入操作;所述同步处理单元,还用于检测到准备好的缺页页面后,恢复缺页进程的执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310724710.4A CN103744725B (zh) | 2013-12-24 | 2013-12-24 | 一种虚拟机管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310724710.4A CN103744725B (zh) | 2013-12-24 | 2013-12-24 | 一种虚拟机管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103744725A CN103744725A (zh) | 2014-04-23 |
CN103744725B true CN103744725B (zh) | 2017-01-25 |
Family
ID=50501745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310724710.4A Active CN103744725B (zh) | 2013-12-24 | 2013-12-24 | 一种虚拟机管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103744725B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156255B (zh) * | 2014-07-31 | 2017-10-17 | 华为技术有限公司 | 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机 |
CN106293781B (zh) | 2015-05-15 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 在线升级机器虚拟器的方法与设备 |
US9898307B2 (en) * | 2015-12-21 | 2018-02-20 | Intel Corporation | Starting application processors of a virtual machine |
CN109558219B (zh) * | 2017-09-25 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 一种热迁移中的降频方法、装置及存储介质 |
CN107832118A (zh) * | 2017-11-18 | 2018-03-23 | 浙江网新恒天软件有限公司 | 一种降低vcpu热度的kvm虚拟机热迁移优化方法 |
CN110569105B (zh) * | 2019-08-14 | 2023-05-26 | 上海交通大学 | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 |
CN111290797A (zh) * | 2020-01-20 | 2020-06-16 | 北京字节跳动网络技术有限公司 | 页面切换方法、客户端、服务器、电子设备和系统 |
CN114661414A (zh) * | 2022-03-04 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 计算系统、内存缺页处理方法及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049308A (zh) * | 2012-11-30 | 2013-04-17 | 华为技术有限公司 | 实现虚拟机热迁移的方法、装置及系统 |
-
2013
- 2013-12-24 CN CN201310724710.4A patent/CN103744725B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049308A (zh) * | 2012-11-30 | 2013-04-17 | 华为技术有限公司 | 实现虚拟机热迁移的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
基于Xen虚拟机的动态迁移技术研究;江雪;《中国优秀硕士学位论文全文数据库》;20111215(第S21期);第59-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103744725A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103744725B (zh) | 一种虚拟机管理方法及装置 | |
CN103631633B (zh) | 虚拟机全系统在线迁移方法、装置与系统 | |
CN103955399B (zh) | 一种虚拟机迁移方法和装置及物理主机 | |
CN101464812B (zh) | 一种虚拟机迁移方法 | |
CN101887393B (zh) | 基于半虚拟化技术的设备故障复现方法及系统 | |
US8191063B2 (en) | Method for migrating a plurality of virtual machines by associating files and state information with a single logical container | |
CN101593136B (zh) | 使得计算机具有高可用性的方法和计算机系统 | |
US9250959B2 (en) | Recording medium virtual network control method and information processing apparatus for virtual network control | |
US20180018244A1 (en) | Node system, server apparatus, scaling control method, and program | |
CN102141947A (zh) | 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统 | |
CN103778031A (zh) | 一种云环境下的分布式系统多级故障容错方法 | |
CN103294534B (zh) | 一种分布式系统的任务管理系统及方法 | |
CN111414256B (zh) | 基于麒麟移动操作系统的应用程序进程派生方法、系统及介质 | |
CN103279331A (zh) | Android系统多任务并发处理方法及装置 | |
CN102541686B (zh) | 一种使用虚拟机来实现系统的备份以及灾难恢复的方法 | |
US20210334125A1 (en) | Method and Apparatus for Resuming Running of Application, and Computer | |
JP2016110183A (ja) | 情報処理システム及び情報処理システムの制御方法 | |
CN102279768A (zh) | 仿真装置、仿真程序以及仿真方法 | |
CN103885811B (zh) | 虚拟机系统全系统在线迁移的方法、系统与装置 | |
US20120030504A1 (en) | High reliability computer system and its configuration method | |
CN105391586A (zh) | 一种故障定位分析的方法及系统 | |
CN103036947B (zh) | 基于kvm的虚拟机迁移方法及系统 | |
CN106815067A (zh) | 带i/o虚拟化的虚拟机在线迁移方法、装置 | |
CN103873516A (zh) | 提高云计算资源池中物理服务器使用率的ha方法和系统 | |
JP2014032498A (ja) | 計算機の障害再現方式 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |