参考网址:http://www.dedoimedo.com/computers/kvm-intro.html
概念:
KVM,即Kernel-basedvirtual machine,由redhat开发,是一中开源、免费的虚拟化技术。岁企业来说,是一种可选的虚拟化解决方案。
硬件基础:
KVM功能,是以扩展虚拟化CPU为硬件基础(如Intel-VT,AMD-V),利用CPU虚拟化技术。
实现方式:(模块化)
KVM作为内核的一个模块,来提供虚拟化功能。如果系统需要虚拟化功能,则KVM模块可以被linux内核按需动态加载到内存运行。如果不需要的KVM功能,可以动态卸载该模块。
KVM 和QEMU:
QEMU是一套模拟CPU的开源软件。KVM作为内核的一个模块,可以通过QEMU提供的模拟方式,来使用处理器。这样,KVM就提供了一个模拟的(虚拟的)硬件层,虚拟机就运行在这个模拟的硬件层之上。
上图,是KVM虚拟机的整体架构。KVM内核模块在运行时按需加载进入内核空间运行。KVM本身不执行任何硬件设备模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个虚拟客户机的地址空间,向它提供模拟的I/O等硬件设备。
KVM是以扩展虚拟化的CPU为硬件基础,但是KVM也可运行在不支持虚拟化技术的CPU之上。只不过,后者是使用QEMU提供的纯粹的模拟方式,性能较低。
KVM管理工具:
Virtual Machine Manager(VMM),由redhat开发的,是一个图形化管理工具。
KVM也有自己的语法规则,你可以使用KVM的语法规则编写命令,使用命令行方式来管理虚拟机。 For more information, reference to :
The Kernel VirtualMachine – Community Ubuntu Documentation
KVM tutorials onhowtoforge.com
KVM/Virsh -Community Ubuntu Documentation
KVM的优势和劣势:
优势:KVM是一个免费开源软件,提供了虚拟化解决方案;提供了强大的命令行接口。
劣势:KVM可以运行在不支持虚拟化的CPU硬件上,但是在这样的话,效率会很低;KVM也可能会和虚拟机virtualbox冲突; KVM只是提供命令行接口,用户可以写脚本来管理KVM,并没有一个友好的GUI。