为什么”KVM vs QEMU”是一个有误导性的问题

搜索KVM vs QEMU时,经常会看到论坛讨论和对比指南将它们呈现为相互竞争的虚拟化技术。实际上,它们并非替代品,而是在同一个虚拟化技术栈中协同工作的互补组件。

理解它们关系的一个简单方式是将KVM看作引擎,将QEMU看作车身。引擎提供动力,而车身的其余部分使其可用。

  • KVM是Linux内核组件,支持硬件辅助虚拟化,使虚拟机能够高效地访问物理CPU。
  • QEMU运行在用户空间,创建并管理虚拟机,同时模拟其硬件。

它们共同提供了一种快速且灵活的虚拟化解决方案。

什么是KVM和QEMU

理解KVM vs QEMU要从它们各自的角色开始。尽管它们通常一起使用,但在虚拟化技术栈中服务于不同的目的。

kvm和qemu在hypervisor中的角色示意

什么是KVM?

Kernel-based Virtual Machine(KVM)是一个内置于Linux内核中的开源虚拟化模块。它使Linux能够作为hypervisor运行,允许虚拟机在硬件辅助虚拟化下运行。

KVM依赖于CPU虚拟化扩展,如Intel VT-x或AMD-V。它专注于虚拟化CPU和内存资源,为客户操作系统提供接近原生的性能。

什么是QEMU?

Quick Emulator(QEMU)是一个运行在用户空间的开源机器模拟器和虚拟化工具。它通过模拟处理器、存储设备、网络接口和输入设备等硬件组件来创建和管理虚拟机。

与KVM不同,QEMU可以完全通过软件模拟不同的CPU架构。例如,它可以在x86主机上运行ARM操作系统,因此非常适合跨平台开发和测试。

核心区别一览

下表总结了KVM和QEMU之间的主要区别。

特性 KVM QEMU
类型 内核虚拟化模块 机器模拟器
位置 Linux内核空间 用户空间
主要作用 CPU虚拟化 硬件和设备模拟
硬件加速 支持 可选
跨架构支持 有限 强大
性能 无KVM时较低
典型用途 生产环境虚拟化 测试和模拟

 

KVM和QEMU如何协同工作

尽管QEMU可以独立运行于软件模拟模式,但其性能远低于启用硬件辅助虚拟化的情况。在生产环境中,QEMU通常与KVM配对使用,以构成完整的虚拟化技术栈。QEMU创建并管理虚拟机,而KVM加速CPU执行,以提供接近原生的性能。

虚拟化工作流通常如下所示:

  1. 客户操作系统: 在虚拟机内部运行的操作系统发出指令。
  2. QEMU(用户空间): 创建并管理虚拟机,包括虚拟磁盘、设备模拟和硬件配置。
  3. KVM(内核空间): 使用硬件虚拟化扩展来执行CPU指令并高效管理内存。
  4. 物理硬件: 使用主机的CPU和内存执行工作负载。

当客户操作系统访问虚拟硬件(如磁盘或网络接口)时,QEMU模拟该设备,而KVM加速CPU执行。这种职责划分使虚拟机能够同时实现灵活性和高性能。

qemu-kvm vs qemu-system-x86_64

许多Linux用户对qemu-kvmqemu-system-x86_64之间的区别感到困惑,尤其是在阅读较旧的文档或社区论坛讨论时。

qemu-system-x86_64是x86_64系统的标准QEMU二进制文件。默认情况下,它使用软件模拟,除非通过诸如-enable-kvm-accel kvm等选项启用KVM加速。

从历史上看,qemu-kvm是一个独立的项目,将KVM支持集成到QEMU中。如今,大多数Linux发行版直接将KVM支持打包到QEMU中,而qemu-kvm通常是指向启用KVM的qemu-system-x86_64的符号链接或包装器。

libvirt和Proxmox在其中的位置

诸如libvirtvirt-manager、Proxmox和OpenStack等工具位于KVM/QEMU技术栈之上。它们并不取代KVM或QEMU,而是通过提供API、命令行工具和图形界面来简化虚拟机的部署和管理。

提示:直接从命令行管理QEMU可能很复杂。像virt-manager这样的工具可以自动化VM配置并在后台生成所需的命令。

职责划分

QEMU和KVM通过处理虚拟化过程的不同部分来协同工作。

QEMU负责:

  • 虚拟磁盘设备和控制器
  • 虚拟网络接口
  • BIOS和UEFI固件模拟
  • 虚拟机创建和配置
  • 硬件和设备模拟

KVM负责:

  • 硬件辅助的CPU虚拟化
  • 客户CPU指令的直接执行
  • 内存虚拟化和管理

KVM vs QEMU性能:实际变化是什么

在比较KVM vs QEMU性能时,重要的是要理解它们并非竞争技术。性能差异取决于是否启用KVM硬件加速,而非选择KVM还是QEMU。

QEMU性能(无KVM)

当没有KVM运行时,QEMU完全依赖软件模拟。它使用内置的Tiny Code Generator(TCG)在运行时将客户CPU指令转换为主机指令。

优点:

  • 支持多种CPU架构,非常适合跨平台开发、测试和调试。
  • 即使在硬件虚拟化不可用时也能运行客户操作系统。

缺点:

  • 软件指令转换会引入显著的CPU开销。
  • 性能远低于硬件辅助虚拟化,不适合大多数生产工作负载。

KVM性能(启用硬件加速)

启用KVM后,CPU指令使用Intel VT-x或AMD-V虚拟化扩展直接在主机处理器上运行。这显著降低了虚拟化开销,并提供接近原生的性能。

优点:

  • 接近原生的CPU性能,虚拟化开销低。
  • 为企业工作负载和云环境提供高效的资源利用率。

缺点:

  • 需要主机CPU支持硬件虚拟化。
  • 不提供跨架构模拟。例如,KVM无法在x86主机上运行ARM客户机。

生产环境中的QEMU + KVM性能

在生产环境中,QEMU和KVM几乎总是一起使用。QEMU管理虚拟机并模拟硬件设备,而KVM加速CPU和内存虚拟化。

虚拟机性能还取决于环境的配置方式。关键因素包括:

  • CPU分配: 使虚拟CPU与主机拓扑(如NUMA节点)对齐,以减少调度开销和延迟。
  • 内存配置: 在适当的情况下使用HugePages,以提高内存密集型工作负载的内存管理效率。
  • VirtIO驱动: 用VirtIO半虚拟化驱动替换完全模拟的存储和网络设备,以减少I/O开销并提高吞吐量。

KVM/QEMU vs VMware和VirtualBox

尽管KVM/QEMU、VMware ESXi、Hyper-V和VirtualBox都能运行虚拟机,但它们在架构、性能和典型使用场景上有所不同。

平台 Hypervisor类型 最佳适用场景 关键特性
KVM/QEMU Type-1(基于Linux) 生产Linux服务器、云平台 开源、接近原生性能、高度灵活
VMware ESXi Type-1 企业数据中心 成熟的生态系统、高级管理、商业许可
Hyper-V Type-1 Windows环境 与Windows Server和Active Directory紧密集成
VirtualBox Type-2 桌面开发和测试 易于使用、跨平台、性能较低

与VMware ESXi和Hyper-V相比,KVM/QEMU提供了一个直接集成到Linux中的开源虚拟化技术栈。它被云服务提供商和寻求高性能且无专有许可成本的企业广泛采用。

VirtualBox服务于不同的目的。作为一个宿主型hypervisor,它将易用性置于性能之上,因此非常适合开发、测试和学习,而非生产工作负载。

对于构建基于Linux的虚拟化基础设施的组织来说,KVM/QEMU通常是首选,因为它结合了硬件辅助虚拟化、灵活性和接近原生的性能。

使用i2Move简化虚拟机迁移

将KVM/QEMU工作负载迁移到另一个平台,或从VMware整合到基于Linux的技术栈,不是你想通过手动导出和大量停机时间来完成的事情。最安全的路径是使用专为跨平台迁移而构建的工具,而i2Move正是为此而生。

i2Move是英方软件用于在物理、虚拟和云环境之间迁移系统和数据的工具。它专为处理企业在KVM、VMware或Hyper-V等hypervisor之间迁移时遇到的那种异构过渡而设计。关键特性包括:

  • 整机迁移: 结合块级和文件级复制,在不停止生产工作负载的情况下迁移整个系统,支持P2V、V2V和混合云场景。
  • 遗留操作系统支持: 确保即使是较旧的Windows和Linux版本也能成功迁移,这在将混合环境整合到单个虚拟化技术栈时非常重要。
  • 数据库迁移: 使用重做日志解析实现接近实时的语义级复制,在迁移过程中保持数据库工作负载的一致性。
  • 高效安全的传输: 结合压缩、AES/SM4加密和断点续传,使大规模迁移在长距离传输中保持快速可靠。

无论您是在hypervisor之间迁移虚拟机,还是同时迁移数据库,i2Move都能在不延长停机时间的情况下完成过渡。

英方软件还提供其他数据韧性工具。对于迁移后的持续保护,i2Availability提供用于灾难恢复的实时复制,而i2Backup则涵盖虚拟和物理环境的集中备份。

常见问题解答

问1:KVM和QEMU是同一个东西吗?

不是。KVM是一个Linux内核虚拟化模块,提供硬件辅助虚拟化,而QEMU是一个用户空间应用程序,用于创建和管理虚拟机并模拟其硬件。

它们是独立的技术,通常作为单个虚拟化技术栈协同工作。

 

问2:QEMU可以在没有KVM的情况下运行吗?

可以。QEMU可以完全在软件模拟模式下运行,无需KVM。但是,由于所有客户CPU指令都需要通过软件翻译,性能会远低于启用硬件加速时。

 

问3:KVM可以在没有QEMU的情况下运行吗?

可以,但不能独立运行。KVM需要一个用户空间应用程序来创建和管理虚拟机。

尽管其他虚拟化工具也可以使用KVM内核模块,但QEMU是迄今为止使用最广泛的选择。

 

问4:KVM是Type-1还是Type-2 hypervisor?

KVM通常被认为是一个Type-1 hypervisor,因为它内置于Linux内核中,并使用硬件辅助虚拟化来运行虚拟机。

有些人将其描述为一种混合方法,因为Linux继续作为主机操作系统运行,但在实践中,KVM被广泛归类为Type-1 hypervisor。

 

问5:qemu-kvm和qemu-system-x86_64有什么区别?

qemu-system-x86_64是在x86_64系统上运行虚拟机的标准QEMU二进制文件。在大多数现代Linux发行版中,qemu-kvm只是一个符号链接或包装器,用于启动qemu-system-x86_64 并启用KVM加速。

 

问6:使用KVM和QEMU需要libvirt吗?

不需要。您可以直接从命令行运行KVM和QEMU,无需libvirt。然而,手动配置虚拟机可能很复杂,因此许多管理员使用libvirt以及诸如virt-manager之类的工具来简化部署和管理。

结论

KVM和QEMU并非竞争技术。KVM在内核层面处理CPU虚拟化,而QEMU模拟虚拟机运行所需的设备和硬件。

它们共同构成了大多数生产级Linux虚拟化技术栈的基础,无论是直接使用,还是通过libvirtvirt-manager、Proxmox或OpenStack等工具使用。

理解这种关系也有助于明确QEMU/KVM与VMware、Hyper-V和VirtualBox相比的位置。对于已经投资于Linux基础设施的企业来说,它是一个灵活、高性能的选择。如果未来需要跨平台迁移,英方软件的i2Move可以帮助在多个环境之间迁移系统和数据,而不需要长时间停机。

博客分类底部

准备好构建企业数据韧性了吗?

立即开启 60 天免费试用,或预约产品演示,了解英方软件如何为您的核心业务提供「零中断、零丢失」的数据保护。

请先完成图形验证

验  证  码:

英方官网验证码
第三方二维码 第三方二维码
英方公告铃铛图标
英方公告铃铛图标

公告

英方侧边栏向右箭头
英方高亮提示圆点
英方软件公告
各位求职者、合作伙伴:
近期有第三方冒用英方名义发布虚假招聘、不实业务信息。我司正规招聘全程零收费,非官网渠道信息均不作数。
信息核验热线:400-0078-655
遇诈骗请保留证据,及时联系我们并报警
英方软件
2026 年 6 月 23 日
英方邮件咨询图标
英方邮件咨询图标

邮件

英方销售支持图标
英方销售支持图标

销售

英方侧边栏向右箭头
联系销售:400-0078-655 转 1