[发明专利]一种支持相似虚拟机快速启动的方法无效
申请号: | 200910236641.6 | 申请日: | 2009-10-27 |
公开(公告)号: | CN101697134A | 公开(公告)日: | 2010-04-21 |
发明(设计)人: | 汪小林;罗英伟;张正熠;梁双;李晓明 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/455 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 邵可声 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 相似 虚拟机 快速 启动 方法 | ||
技术领域
本发明涉及一种虚拟化技术,特别是一种支持相似虚拟机快速启动的方法,属于计算机软件技术领域。
背景技术
在当前常见的虚拟化应用中,有这样一种场景:同一虚拟化平台(Virtual MachineMonitor,VMM,也称为虚拟机管理器)上运行着多个虚拟机(Virtual Machine,VM),并且这些虚拟机上都运行着相同的操作系统,运行着可能相同或者不同的应用程序。“虚拟网络教室”就是这样一个背景相似度很高的实例。
如图1所示的“虚拟网络教室”应用场景中,每个用户终端连接到一个虚拟机上,这些虚拟机属于同一虚拟化平台。“虚拟网络教室”使得这些用户可以以最高权限来使用机器,并且虚拟机之间高度隔离,计算资源也可以公平分配。以“虚拟网络教室”为代表的这类应用,它们的虚拟化平台上运行着相似背景的多个虚拟机,这些虚拟机的操作系统以及主要应用程序都是类似的,当操作系统或者某一进程在第一台虚拟机上已经运行了,那么当同样的操作系统或者进程即将在第二台虚拟机上启动时,没有必要再从其的外存映像中重复读取代码和数据。如果大量且耗时的I/O模拟能够避免,则启动速度则可大大加快。本发明主要是为解决如何避免重复I/O问题而提出的。
发明内容
本发明的目的是提供一种支持相似虚拟机快速启动的方法,使得在一台物理机器上能够快速启动并较顺畅地运行多个虚拟机。通过修改模拟器对磁盘DMA(Direct MemoryAccess,直接存储器访问)请求的处理流程,使得当客户操作系统在第一台虚拟机上已经运行,则同样的操作系统即将在第二台虚拟机上启动时,以内存映射来代替真正的I/O过程。虚拟环境下的磁盘I/O是一项耗时工作,如果载入这些代码或者数据的过程能够被避免,则启动时间能够被大大缩短。这项技术能使得在某虚拟机上已经运行的系统或者进程,在其他虚拟机上启动时,启动过程被加速。
本发明的技术方案为:
一种支持相似虚拟机快速启动的方法,其步骤为:
1)为每个虚拟机都创建一具有公共主镜像的可写快照镜像;
2)虚拟化平台将源虚拟机启动时对公共主镜像的磁盘读操作信息记录到一共享表中;
所述共享表维护着可共享的磁盘块和被读入的共享内存页面间的对应关系;
3)后续虚拟机启动时,虚拟化平台在执行对公共主镜像读操作请求之前,查询共享表;
4)如果共享表中存在该读操作的磁盘块,则根据共享表在该读操作的目的内存页面与所找到的共享内存页面之间建立映射关系,取代真正的读操作,然后向该虚拟机发送完成信息;如果不存在,则执行该读操作,同时将此读操作信息记录到共享表中。
进一步的,所述方法中,如果某虚拟机对所述共享表内所维护的某共享内存页面进行写操作时,则虚拟化平台将该共享内存页面上的内容复制到一新内存页面上,然后对该新内存页面进行写操作;同时将该虚拟机从该共享内存页面的共享虚拟机队列中清除。
进一步的,所述虚拟化平台还包括一侦听表,用于维护可共享内存页面和被读入的共享磁盘块的对应关系。
进一步的,所述侦听表的表项包括虚拟扇区号、扇区数量、读入内存的地址,所述虚拟化平台以所述读入内存的地址为键值在所述侦听表中查找共享内存页面。
进一步的,所述虚拟化平台对所述写操作进行侦听,根据写操作的内存地址为键值在所述侦听表中查找共享内存页面,如果内存地址不在侦听表中,则虚拟化平台执行该写操作;如果内存地址存在于侦听表中,则虚拟化平台分配一个新页面,将共享内容复制到该新页面上,然后对该新页面进行写操作;同时将发起写操作的虚拟机从该共享内存页面的共享虚拟机队列中清除。
进一步的,所述共享表的表项包括虚拟扇区号、扇区数量、读入内存的地址;所述虚拟化平台以所述虚拟扇区号为键值在所述共享表中查找共享内存页面。
进一步的,所述方法中,对所述共享表内所维护的每一共享内存页面分别进行计数,用于记录每个共享内存页面被映射到虚拟机的数目。
进一步的,所述根据共享表在该读操作的目的内存页面与所找到的共享内存页面之间建立映射关系的方法为:首先解析出读操作请求的虚拟扇区号以及扇区数量,以虚拟扇区号为键值在所述共享表中查到对应的共享内存页面;然后解析出其物理区域描述符表,通过更改虚拟机进程的页表将该物理区域描述符表所涉及到的内存页面与查到的共享内存页面映射到一起,并增加该共享内存页面的引用计数。
进一步的,所述方法中,如果虚拟机退出时,则被映射到该虚拟机的共享内存页面计数减一,如果某共享内存页面的计数降至零,则释放该内存页面。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910236641.6/2.html,转载请声明来源钻瓜专利网。