Difference with qemu kvm and libvirt: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Author:ChatGPT。本人排版了 wikitext 格式 | |||
本笔记梳理了 Linux 下常用虚拟化组件的概念、作用及关系,方便理解和实践。 | 本笔记梳理了 Linux 下常用虚拟化组件的概念、作用及关系,方便理解和实践。 | ||
Line 48: | Line 48: | ||
== 总结 == | == 总结 == | ||
* 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 = 内核虚拟化模块
- 物理主机 = 提供真实硬件