服务器虚拟化技术 对比简介
目前主流的虚拟化平台有
VMWARE的 ESX
微软的Hyper-V
微软的Hyper-V
开源的XEN
开源的KVM
开源的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——>虚拟机
微软的Hyper-V架构 实体主机——>Windows Server 2008 R2及以上——>虚拟机
(hyper-v)
XEN架构 实体主机——>Linux(支持xen)——>Xen——>虚拟机
KVM架构 实体主机——>Linux(支持kvm)——>kvm——>虚拟机
详细介绍:
1.kvm
1.kvm
KVM (名称来自英语: Kernel-basedVirtual
Machine 的缩写,即基于内核的虚拟机) , 是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。
其基本结构由两部分组成:
一个是KVM Driver ,是Linux 内核的一个模块,负责虚拟机的创建,虚拟内存的分配,虚拟CPU寄存器的读写以及虚拟CPU的运行等;
其基本结构由两部分组成:
一个是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自己实现的。
当一起工作的时候,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操作虚拟机。