服务器虚拟化技术 对比简介

时间:2024-02-23 10:59:08

目前主流的虚拟化平台有


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操作虚拟机。