更新时间:2021-08-05 GMT+08:00
分享

组件原理

KVM

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

图1 KVM架构图

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

KVM的优势:

  • 兼容性好。
  • 内存易于管理,虚拟机就是一个进程。
  • 性能相对较高,KVM与OS内核的代码资源可直接调用。
  • 充分利用硬件支持的虚拟化,专注于虚拟化。
  • 可扩展性好,以原生使用Linux内核提供的内存管理、多处理器支持等功能。
  • 简单,目前KVM的I/O虚拟化工作是借助QEMU完成的,也显著地降低了实现的工作量。

QEMU

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

图2 QEMU架构图

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

  • 通过QMP接口与上层Libvirt交互。
  • 虚拟设备模拟。
  • 通过ioctl与下层KVM模块交互。
分享:

    相关文档

    相关产品

close