虚拟化的模型python
为何要使用虚拟化?linux
1)使硬件资源利用率最大化centos
2)云计算领域架构
虚拟化分类ide
1)软件级别,全部硬件经过模拟器模拟出来,如qemu工具
2)硬件级别,经过VMM(Virtual Machine Monitor,虚拟机监视器)管理和分配硬件资源,操做系统运行在vm上,如xen,vmware,kvm,virtualbox云计算
3)操做系统级别,虚拟机操做系统和宿主机操做系统共享,能够模拟上千台虚拟机,如openvzspa
半虚拟化(para-virtualization)操作系统
在半虚拟化中,宿主机和客户机都须要更改操做系统内核,客户机知道宿主机的存在,二者协同合做;blog
xen支持半虚拟化
全虚拟化(full virtualization)
全虚拟化为客户机提供了完整的虚拟硬件资源,客户机和宿主机内核不需更改,客户机不知道宿主机的存在
kvm,vmware
xen和lvm比较
1)xen不管cpu是否支持虚拟化,均可以安装;kvm须要cpu支持虚拟化技术
2)xen支持半虚拟化和全虚拟化,kvm支持半虚拟化
3)xen会替换原有的内核接管系统,较为“流氓”;kvm是linux内核的一个模块,不替代内核
4)xen被Ctrix收购,kvm被redhat收购
5)xen hypervisor至关于VMM,直接运行于硬件之上
KVM:kernel virtual machine是针对包含虚拟化扩展(Intel-VT或AMD-V)的x86硬件上,彻底原生的虚拟化解决方案。
KVM是以色列QUmranet开发,基于linux内核,2008年被radhat收购
rhel5/centos5默认支持xen;rhel6/centos6默认支持kvm
KVM架构
1)KVM驱动:linux内核的一个模块,主要负责建立虚拟机,分配虚拟内存,VCPU寄存器的读写
2)Qemu:用于模拟虚拟机的用户空间组件,提供I/O设备模型,访问外设的途径
3)libvirt,virsh:因为Qemu的效率不高,redhat为KVM开发了辅助工具,如libvirt,libguestfs;libvirt是一种提供多种语言接口的API,支持xen;virsh是一套基于文本的管理命令
4)vir-manager是一套python编写的虚拟机管理图形界面