kvm qemu libvirt的区别和联系
kvm是内核模块,负责CPU、内存的虚拟化。
qemu是运行在用户空间的软件,可以独立模拟出整台计算机,包括CPU,内存,IO设备。其中CPU、内存部分既可以独立实现(软件,性能较差),也可以利用KVM实现(硬件辅助,性能较高)。
qemu通过ioctl调用/dev/kvm这个接口与KVM交互,这样KVM在内核空间模拟虚拟机CPU,qemu-kvm负责模拟虚拟机I/O设备。
libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和应用程序接口(API),而且一些常用的虚拟机管理工具和云计算框架平台(如OpenStack、OpenNebula、Eucalyptus等)都在底层使用libvirt的应用程序接口,结构如下图