zoukankan      html  css  js  c++  java
  • 虚拟机的实现原理

    虚拟机简介  

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

      

      每台虚拟机的组成要素:虚拟机的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就可以完全无关化。

                            二者各方面对比

    因素

    裸机型

    主机型

    性能

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

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

    硬件兼容性

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

    运行在经过认证的有限的软、硬件集合内

    易用性

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

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

    高可用性

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

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

    可靠性

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

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

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

    虚拟化hypervisor管理

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

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

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

    成本

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

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

    可扩展性

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

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

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

    产品

     XenOracle VM Server for SPARCOracle VM Server for x86, Microsoft Hyper-V and VMware ESX/ESXi.

    VMware WorkstationVMware PlayerVirtualBoxParallels Desktop for Mac and QEMU

     

                                  (表格来源于网络)    

     


     

    【参阅】

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

      【2】虚拟化技术分类

      【3】 https://en.wikipedia.org/wiki/Hypervisor

  • 相关阅读:
    使用git将本地代码上传到gitee【码云】
    .net设置实例字段在请求参数中不展示
    Springboot 操作Elasticsearch 方式一 【spring-data-elasticsearch】
    Java工具类 (3)------>WordUtils------>利用Poi根据模板生成新的word文档
    Java工具类 (2)------>TreeUtils------>树形结构生成类
    Java工具类 (1)------>IPUtils------>获取用户登录IP地址
    Idea安装MyBatisCodeHelper-Pro插件破解版以及去除mybatis的mapper.xml文件背景颜色
    Python 线程队列 LifoQueue – LIFO
    Python 线程队列 Queue – FIFO
    Python 线程障碍对象 Barrier
  • 原文地址:https://www.cnblogs.com/plxx/p/5461753.html
Copyright © 2011-2022 走看看