虚拟机环境的架构剖析
在核算范畴,虚拟化是一个广义的术语,通常是指关于核算资源的一种笼统。经过虚拟化,可使核算资源杂乱的实践物理特性关于运用程序或终端用户加以躲藏[1]。这种进程既能够让单一的物理资源(如一台服务器,一个存储设备或一个操作体系)表现为多个可用的虚拟资源,也能够让多个物理资源(如多台服务器或多个存储设备)表现为单一的可用虚拟资源[2],乃至能够将多个物理资源加以整兼并分化出多个可用的虚拟资源。
图1 虚拟机架构: 办理层架构与主机操作体系架构之间的比较
VMware Workstation[3]是一款传统的根据主机操作体系架构的虚拟机,并将虚拟机办理器运转于高特权级以运用特权级指令。这类虚拟机一般是针对特定的渠道架构规划的,能够使同一渠道架构下的各种操作体系好像运用程序那样高效地运转在同一主机操作体系之上。可是,这种运用模型也有一个非常严峻的缺点――主机操作体系,作为一切的根底,会占用必定的体系资源并大大添加体系到达可信核算所需求验证的代码量。
因为像英特尔这样的硬件制造商开发出了新一代的硬件虚拟化技能,现在像Xen[4]这样的虚拟机办理层现已能够以极小的虚拟化开支支撑未经修正的操作体系的高效运转。根据办理层架构的虚拟机所面对的问题是办理层所供给的笼统往往过于粗粒度以至于很难对细微的软件组件进行有效地描绘。而关于运转在特权级的虚拟机办理逻辑部分――超级虚拟机(Super VM)也是这样。它往往运转在一个商业操作体系软件之上以供给对各虚拟机的办理服务。而一旦产生过错,则将很有或许因而涉及到其他虚拟机[5]。
具有微内核架构的操作体系被规划用以构成一个可自在削减的体系而且易于确保其可信核算根底,体系所界说的操作体系和用户态运用程序之间的接口与硬件渠道的接口很附近,这样既确保了操作体系的功能性,又避免了操作体系的代码过于冗长,非常合适用以构建一个杰出的虚拟机环境。有些人运用像L4Linux[6]这样经过修正的客户操作体系使其运转在高效的微内核之上。可是此类修正很难被运用到一切的商业操作体系上致使其运用规模遭到严厉的约束。
据此,一种较为可行的办法是有效地使用微内核操作体系的特色,将根据主机操作体系架构的虚拟化和根据办理层的虚拟化融合到一同,结合特权指令部分和一个用户态虚拟机办理器来战胜互相的缺点。如此,加之使用像L4这样高性能的微内核操作体系,咱们能够终究获得在功率,功能性和安全性三方面获得均衡的虚拟机环境。
根据微内核架构的虚拟化技能
图2 根据微内核架构的虚拟机的体系结构
本架构(图2)规划中,咱们将首要针对特定的渠道架构(即英特尔x86架构),以L4微内核体系作为根底,使用硬件虚拟化技能的支撑以构建高效、安全的虚拟机。
不同于一般的虚拟机,咱们将体系划分为两个部分:一个必要的具有特权指令权限的内核态虚拟机描绘部分以运转指令和恳求资源,和一个用户态的虚拟机资源操控单元以处理各类事情并完结办理。
内核态虚拟机的笼统将首要要经过两方面完结:一,以L4使命机制为根底,使用其地址空间的操控功能以供给必要的阻隔性。二,对线程机制进行增强,构成特别的虚拟CPU线程,用以模仿每个处理器。
除此之外,构建虚拟机还需求完善内存页表的拜访,中止的处理以及文件体系。这些则需求经过内核态的虚拟机描绘部分与用户态的虚拟机办理器协同完结。一起还需求使用用户态虚拟机办理器树立一系列的办理和调试接口。