zoukankan      html  css  js  c++  java
  • 服务器虚拟化技术 对比简介

    目前主流的虚拟化平台有


    VMWARE的 ESX  
    微软的Hyper-V
    开源的XEN  
    开源的KVM

    虚拟机架构分析:


    1.寄居架构:寄居在主机操作系统之上,依靠主机操作系统来模拟相关的硬件设备。

            此类架构多为个人计算机使用, 
           优点:简单,便于实现
       
           缺点:安装和运行应用程序依赖于主机操作系统对设备的支持

           例如 VMware  Workstation、


    2.原生架构(也叫裸机裸金属):直接在硬件上运行虚拟化管理层,性能比较好,相对稳定。

             多用于服务器
             优点:虚拟机不依赖于操作系统,可以支持多种操作系统,多种应用,更加灵 活
             缺点:虚拟层内核开发难度较大
          
         例如 
    VMware vsphere   微软的hyper-v   


    这里只讨论 原生架构
    vm  vsphere的架构     实体主机——>ESX——>虚拟机
    微软的Hyper-V架构   实体主机——>Windows Server 2008 R2及以上——>虚拟机
                                                                         (hyper-v)
    XEN架构              
    实体主机——>Linux(支持xen)——>Xen——>虚拟机 
    KVM架构              
    实体主机——>Linux(支持kvm)——>kvm——>虚拟机 



    详细介绍:
    1.kvm
            KVM (名称来自英语: Kernel-basedVirtual Machine 的缩写,即基于内核的虚拟机)  是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。
            
    其基本结构由两部分组成:
            一个是KVM Driver ,是Linux 内核的一个模块,负责虚拟机的创建,虚拟内存的分配,虚拟CPU寄存器的读写以及虚拟CPU的运行等;

            
            另一个部分是稍微修改过的Qemu,用于模拟PC硬件的用户空间组件,模拟I/O设备模型以及提供访问外设的途径
            qemu  全称 Quick Emulator 。 是独立虚拟软件,能独立运行虚拟机(根本不需要 kvm )。 kqemu 是该软件的加速软件。 kvm 并不需要 qemu 进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由 kvm 驱动。所以,大家不要把概念弄错了,盲目的安装 qemu  kqemu 
             
    当一起工作的时候,KVM管理CPU和MEM的访问,QEMU仿真硬件资源(硬盘,声卡,USB,等等)当QEMU单独运行时,QEMU同时模拟CPU和硬件。        
            从QEMU角度来看,也可以说QEMU使用了KVM模块的虚拟化功能,为自己的虚拟机提供硬件虚拟化的加速,从而极大地提高了虚拟机的性能。除此之外,虚拟机的配置和创建,虚拟机运行依赖的虚拟设备,虚拟机运行时的用户操作环境和交互,以及一些针对虚拟机的特殊技术(诸如动态迁移),都是由QEMU自己实现的。

            从QEMU和KVM模块之间的关系可以看出,这是典型的开源社区在代码共用和开发项目共用上面的合作。
           诚然,QEMU可以选择其他的虚拟机或技术来加速,比如Xen或者KQEMU;
            KVM也可以选择其他的用户空间程序作为虚拟机实现,只要它按照KVM提供的API来设计。但是在现实中,QEMU与KVM两者的结合是最成熟的选择,这对一个新开发和后起的项目(KVM)来说,无疑多了一份未来成功的保障。



            libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API。Libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用,Libvirtd调用qemu-kvm操作虚拟机。
  • 相关阅读:
    PAT 解题报告 1009. Product of Polynomials (25)
    PAT 解题报告 1007. Maximum Subsequence Sum (25)
    PAT 解题报告 1003. Emergency (25)
    PAT 解题报告 1004. Counting Leaves (30)
    【转】DataSource高级应用
    tomcat下jndi配置
    java中DriverManager跟DataSource获取getConnection有什么不同?
    理解JDBC和JNDI
    JDBC
    Dive into python 实例学python (2) —— 自省,apihelper
  • 原文地址:https://www.cnblogs.com/centos2017/p/7896685.html
Copyright © 2011-2022 走看看