Difference with qemu kvm and libvirt: Difference between revisions

From 清冽之泉
Jump to navigation Jump to search
Tag: Manual revert
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Author:ChatGPT
Author:ChatGPT。本人排版了 wikitext 格式


本笔记梳理了 Linux 下常用虚拟化组件的概念、作用及关系,方便理解和实践。
本笔记梳理了 Linux 下常用虚拟化组件的概念、作用及关系,方便理解和实践。
Line 48: Line 48:


== 总结 ==
== 总结 ==
* KVM + QEMU = 虚拟机的核心运行时,负责实际运行 guest。
* libvirt = 虚拟机管理器 / API。
* virt-manager = 图形界面,方便操作 libvirt。
: 总结比喻:**KVM 是发动机,QEMU 是车身,libvirt 是车库管理员,virt-manager 是你操作的方向盘界面**。
== 记忆图 ==
<pre>
virt-manager  ──> 方向盘界面
    │
libvirt      ──> 车库管理员
    │
QEMU          ──> 车身和控制装置
    │
KVM          ──> 发动机
    │
物理主机      ──> 土地和资源
</pre>
: 快速记忆:
* virt-manager = 操作虚拟机的 GUI
* virt-manager = 操作虚拟机的 GUI
* libvirt = 管理和调度虚拟机
* libvirt = 管理和调度虚拟机

Latest revision as of 23:03, 18 August 2025

Author:ChatGPT。本人排版了 wikitext 格式

本笔记梳理了 Linux 下常用虚拟化组件的概念、作用及关系,方便理解和实践。

KVM

  • 本质:Kernel-based Virtual Machine。Linux 内核模块,提供硬件虚拟化能力(CPU + 内存虚拟化)。
  • 作用:把物理 CPU 转变为虚拟 CPU,让 guest OS 可以像在真实硬件上一样运行。
  • 特点:仅提供虚拟化能力,不负责虚拟机管理或硬件模拟。
比喻:KVM 就像发动机,你有一辆车的发动机,但还没有车身,也没人开。

QEMU

  • 本质:用户态程序,提供完整的硬件模拟(CPU、内存、硬盘、网卡等)。
  • 作用:
    • 当没有 KVM 时,QEMU 可以完全模拟 CPU(速度慢)。
    • 当有 KVM 时,QEMU 仅模拟外围设备,CPU 部分由 KVM 加速。
  • 特点:可以运行几乎任何架构的虚拟机(x86、ARM 等)。
比喻:QEMU 是车身和方向盘,它负责把发动机(KVM)装好,能开车。

libvirt

  • 本质:虚拟化管理框架 / API。
  • 作用:
    • 提供统一接口管理不同虚拟化技术(KVM、Xen、VMware 等)。
    • 管理虚拟机生命周期(创建、启动、暂停、快照等)。
  • 特点:可以通过命令行工具 `virsh` 或程序调用 libvirt API,无需直接操作 QEMU/KVM。
比喻:libvirt 是车库管理员,帮你调度发动机和车身,让你不用手动装配每辆车。

virt-manager

  • 本质:图形化管理工具。
  • 作用:通过 libvirt 管理虚拟机。
  • 特点:
    • 提供图形界面创建、启动、快照、查看虚拟机。
    • 底层仍由 libvirt + QEMU + KVM 驱动虚拟机运行。
比喻:virt-manager 是你在电脑上开车的方向盘界面,你看得见车并能操作,但发动机是 KVM,车身是 QEMU,车库管理员是 libvirt。

层级关系

物理主机 (Linux)
 └─ KVM (内核模块, CPU/内存虚拟化)
 └─ QEMU (用户态, 硬件模拟)
      └─ libvirt (API/管理框架)
           └─ virt-manager (图形界面, 调用 libvirt)

总结

  • virt-manager = 操作虚拟机的 GUI
  • libvirt = 管理和调度虚拟机
  • QEMU = 模拟硬件
  • KVM = 内核虚拟化模块
  • 物理主机 = 提供真实硬件