虚拟机的实现原理

虚拟化

文章转自http://www.cnblogs.com/plxx/p/5461753.html

虚拟机简介  

  首先看一下整个虚拟机在物理机上的结构图(本图来源网络)

  

  每台虚拟机的组成要素:虚拟机的os,应用程序需要的各种包,应用程序。而每一台虚拟机都是在Hypervisor的基础上建立起来的。

Hypervisor

  Hypervisor(虚拟机管理器)是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor)。【来自百度百科】  

  针对上图的可以理解为:Hypervisor是运行在物理机之上,为多台虚拟机提供能够宿主在物理主机之上的基础环境。

  其实Hypervisor可以分为两种:

  

                              (来自维基百科)

    I型--裸机型,直接运行在物理设备之上,是一种基于内核的虚拟机(其中包括 Oracle 虚拟机、VMware ESX Server、Microsoft Hyper-V 和 Citrix XenServer【2】)。这种类型的Hypervisor所扮演的角色是一种抽象概念的OS。

    II型--宿主机型,运行在宿主机器的操作系统上(如上图)(VMware Workstation、Microsoft Virtual PC 和 Parallels Workstation【2】 ) 创建硬件全仿真实例。Hypervisor构建出一整套虚拟硬件平台CPU/Memory/Storage/Adapter),上面需要你再去安装新的操作系统和需要的应用软件,这样底层和上层的OS就可以完全无关化。

                        二者各方面对比

因素

裸机型

主机型

性能

性能高,资源开销小,高级的资源控制。

性能较差,资源开销大有限的资源控制,虚拟机竞争资源。

硬件兼容性

没有太多要求,因为虚拟化平台运行在传统操作系统之上,有操作系统硬件的驱动程序支持。

运行在经过认证的有限的硬件集合内,如VMware ESX ESXi

易用性

安装容易,但配置很复杂。

安装、使用和维护都很简单,不需要专门的技能。

高可用性

高可用性,主机发生故障时能够提供持续的可用性

缺少高可用特性,主机发生故障时,故障解决前虚拟机将处于停机状态。

可靠性

可靠性高,hypervisor经过很多QAquality-assurance)测试和严格的硬件认证。

直接运行在硬件上,而不是主机操作系统,减少了一个可能发生故障的组件。

主机型hypervisor使用通用的硬件并没有对虚拟化进行专门的测试。

虚拟化hypervisor管理

提供了几种控制台,能够容易的管理数量巨大的主机及虚拟机;

市场上具有很多用于裸机虚拟化hypervisor的第三方管理和自动化产品可以使用。

管理员必须单独管理每个虚拟机,在大型虚拟化基础设施中将非常繁琐,也很耗时。 

成本

裸机hypervisor成本却很昂贵,尤其是当你想扩大规模并使用高级特性时。多数裸机虚拟化hypervisor宣称是免费的,但是仅限于核心hypervisor.

成本较低,许多基于主机的hypervisor是免费的或者仅仅花费数百美元。

可扩展性

能够扩展到相当大的规模,使用裸机hypervisor,如果你的主机具有足够的硬件资源,那么你能够轻松地在一台主机上运行数百个虚拟机。

vSphere 5中单个虚拟机能够配置高达1TB的内存以及32个虚拟CPU

非常有限的可扩展性,VMware基于主机的虚拟化hypervisor VMware Workstation,仅能够支持32GB的内存以及8个虚拟CPU

产品

VMware ESXESXi微软Hyper-VCitrixXenServerorcal虚拟机,linux KVM

VMware ServerGSX)、WorkstationMicrosoft Virtual PCMicrosoft Virtual Server

 

                              (表格来源于网络)    

 


 

【参阅】

  【1】http://www.ibm.com/developerworks/cn/linux/l-hypervisor/

  【2】高级虚拟计划之Hypervisor