组件原理

KVM

KVM基于Linux内核部分机制实现包括CPU虚拟化,内存虚拟化和外设虚拟化及虚拟机管理等主要功能,它是支撑软件模拟硬件以及连接各个模式间转换的桥梁。KVM架构如图1所示。

图1 KVM架构图

KVM作为Hypervisor运行在宿主机内核(Host OS Kernel),支持对CPU、内存、IO的模拟,对虚拟机的监测,并为QEMU提供实体支撑。

KVM的优势:

QEMU

QEMU是一个模拟器,为虚拟机提供运行的硬件环境。它作为进程运行在宿主机的用户态,基于KVM及内核的特性,能为Guest OS模拟出CPU、内存、IO等硬件,支撑Guest OS在进程中运行。QEMU支持全系统仿真、全虚拟化和半虚拟化模式。全系统仿真和全虚拟化是纯软件模拟,允许一个CPU构建的进程在另外一个CPU上执行,不同的是全系统仿真允许对整个系统进行仿真,包括CPU和配套的外围设备,而半虚拟化模式下QEMU和KVM配合使用,通过KVM硬件辅助虚拟化的方式模拟CPU,这种方式效率高,也是目前普遍使用的一种方式。QEMU架构如图2所示。

图2 QEMU架构图

QEMU和KVM配合使用,KVM运行在 内核态 ,完成CPU和内存模拟,而QEMU运行在用户态,负责IO设备虚拟化,并对外呈现模拟的虚拟设备,它对KVM来说,主要有三个作用: