[发明专利]具有多层虚拟化机制的分层虚拟化有效
| 申请号: | 200680031438.X | 申请日: | 2006-08-29 |
| 公开(公告)号: | CN101253481A | 公开(公告)日: | 2008-08-27 |
| 发明(设计)人: | E·P·托奥特 | 申请(专利权)人: | 微软公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/06;G06F9/00;G06F12/00 |
| 代理公司: | 上海专利商标事务所有限公司 | 代理人: | 陈斌 |
| 地址: | 美国华*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 具有 多层 虚拟 机制 分层 | ||
技术领域
本发明一般涉及计算领域,尤其涉及计算机虚拟化。
背景技术
虚拟化的概念需要计算机硬件的虚拟化,使得各自都可被包含在一单独分 区内的多个操作系统可以在单个硬件上运行。虚拟化软件以各种方式抽象硬 件,使得不同的操作系统与该软件交互,而该软件进而与硬件交互。
大多数虚拟化系统包含单个虚拟机监控程序(VMM)软件。在某些装置 中,该VMM被称为“系统管理程序(hypervisor)”。系统管理程序被设计成 直接在硬件上运行。这样,它就是关于如何使用硬件的最终决策者。出于这个 原因,一般情况下,在一台机器上(在一组硬件上)只能有一个“系统管理程 序”。系统管理程序允许多个“客机”操作系统(OS)或者简称“客机”同时 运行在一个系统上。
VMM或者系统管理程序可考虑到某些目标而设计。工程师必须在安全性 、复杂性、灵活性、性能等之间进行折衷。某些VMM或系统管理程序允许通 过编程接口与客机交互。对于任何接口,版本化变得重要。为系统管理程序一 个版本而编写的客机可能与该系统管理程序的一不同版本不兼容。
因此,存在在单个机器上运行一个系统管理程序的多个副本将是有用的情 形。例如,一个版本可以非常简单,并且提供高安全保证,而另一个版本提供 更错综复杂的特征。这多个版本可以并排运行。
不幸的是,这对于当今的设计是不可行的,因为机器上只能有一个系统管 理程序。对于该问题的一种传统的方法是使用递归虚拟化,其中系统管理程序 被“嵌套”。单个“真实”的系统管理程序位于底层,而一个或多个第二级系 统管理程序在其上方运行。这种安排的不足在于较差的性能。因为第二级系统 管理程序是假定其可以直接访问硬件来编写的,因此其性能表现较差。简而言 之,对于嵌套系统管理程序的每一附加层,总的虚拟化系统的性能以几何级数 变差。
并且,许多处理器提供对一级虚拟化的硬件支持,但它们很少提供对一级 以上的支持。由此,从硬件角度看,在单个物理机器上实现多个系统管理程序 变得很困难。因此,提供用于直接在硬件上运行虚拟化软件,使得该软件的多 个版本直接在该硬件上同时运行的机制将是有利的。
发明内容
本申请中公开的主题涉及具有多级虚拟化机制的分层虚拟化。在一个示例 中,使用了一种用于提供这种虚拟化的方法,其中由系统管理程序维护第一分 区。第一分区内的第一虚拟化栈例如通过在第一个位置中创建第二分区并分配 其资源来与第二分区交互。其中一个分区的虚拟化栈控制另一分区的这一分区 分层安排中的系统管理程序实际上知道每个分区并能与每个分区直接通信。因 为系统管理程序可以与每个分区通信,所以它也可以枚举任意给定分区内的任 意资源。
此外,第二分区可以通过使用其自己的第二虚拟化栈创建第三分区而加到 该分区分层关系上。另外,第一分区内的第三虚拟化栈可以与第一虚拟化栈并 排共存,其中后者,即第三虚拟化栈可以创建独立于先前提到的第一、第二以 及第三分区的第四分区。或者,第一虚拟化栈可以创建第四分区,因为一个虚 拟化栈可以在任意给定时刻创建并控制一个以上分区。
在本发明的另一示例中,讨论了分层虚拟化的安全性。由此,提供一父分 区,并且该父分区具有一虚拟化栈。子分区由父分区内的虚拟化栈来创建,但 该子分区并不完全在父分区的控制之下,因为子分区具有在其自己的独占控制 之下的至少一个资源(或其一部分)。出于安全性的原因,子分区可能不信任 其父分区,并且如果情况如此,则子分区内的某些资源不能为父分区所得。为 了实现这一子分区从父分区的释放,子分区向父分区要求对资源和其它对象的 独占控制,并且作为虚拟化环境中的最终决策者的系统管理程序确保父分区遵 循子分区的请求。
本发明还提供了一种用于提供分层虚拟化的方法,包括:用系统管理程序 微内核600来维护第一分区608;以及使用在第一分区608内的第一虚拟化栈 602与第二分区606交互,其中系统管理程序微内核600知道第一分区608和 第二分区606,其中第一虚拟化栈602从第二分区602接收对于访问硬件资源 的系统管理程序功能的请求,该访问硬件资源的系统管理程序功能不被系统管 理程序微内核提供;其中第一虚拟化栈602向第二分区602提供对于硬件资源 的访问。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680031438.X/2.html,转载请声明来源钻瓜专利网。





