1. KVM是什么
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
2. KVM的历史
- 以色列的创业公司Qumrane创建了KVM
早期的主要开发者Avi Kivity
2006年10月,在完成基本功能、动态迁移、主要的性能优化后,正式宣布了KVM的诞生
2007年2月发布的内核2.6.20中,开始正式包括了KVM - 2008年9月,Redhat 1.7亿美金收购
RHEL 5.4,在集成Xen的基础上,又将KVM添加进来
2011年11月,RHEL6使用KVM彻底替换了Xen - QEMU
QEMU是一个通用的开源的硬件模拟器,可以模拟多种硬件
QEMU-KVM从分支到主干合并,QEMU成立KVM在用户空间的管理工具
3. KVM体系结构
- KVM
初始化CPU硬件,打开虚拟化模式,以支持虚拟机的运行
负责CPU、内存、中断控制器、时钟 - QEMU
模拟网卡、显卡、存储控制器和硬盘 - libvirt
它提供统一API、守护进程libvirtd和一个默认命令行管理工具virsh
Qemu与KVM
Qemu通过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由KVM来做
Qemu还是模拟网卡、显卡、存储控制器和硬盘等,会影响这些设备的性能
通过pass throuth半虚拟化设备virtio_blk,virtio_net,提高设备性能
libvirt与KVM
image.pngKVM集中管理与控制
http://www.linux-kvm.org/page/Management_Tools
示例:
- Ovirt
功能强大,是Redhat虚拟化管理平台RHEV的开源版本
http://www.ovirt.org/ - WebVirtMgr
https://www.webvirtmgr.net
virt-manager的Web模式的替代品 - ConVirt
http://www.convirture.com/
分开源版本和商业版本
Hypervisor与VMM的选择
- 电信/IPS公共云
单一hypervisor
KVM - 互联网公司
单一hypervisor
KVM - Web托管和SAS细分市场
单一或多个hypervisor
容器(LXC,Parallels,Docker)
KVM - 企业
多种Hypervisor
KVM和vCenter/ESXi
国产虚拟化解决方案概述
- Stop Trying to Reinvent the Wheel,不要重复造轮子
- 国产虚拟化解决方案重点在虚拟化的管理与桌面协议
- Hypervisor/VMM选择:
H3:KVM
红山:Xen
华为:Xen→KVM→Xen
浪潮:Xen
普华:KVM
锐捷:KVM
深信服:KVM
...其他KVM居多
网友评论