[转帖]【KVM】KVM和QEMU的关系及区别

kvm,qemu,关系,区别 · 浏览次数 : 0

小编点评

**KVM 架构** KVM 是 Linux 内核中的一个内核模块,用于提供可加载的核心模块 kvm.ko,使用 QEMU(QEMU-KVM)作为虚拟机上层控制工具。 **关键组件** * **KVM 模块:** 提供虚拟化功能,模拟 CPU 和内存等硬件。 * **QEMU 模块:** 提供硬件虚拟化,实现虚拟机与硬件之间的通信。 **主要功能** * 支持 VMX 功能,允许虚拟机访问宿主机上的硬件。 * 通过 QEMU 模块模拟硬件,提供虚拟机的性能提升。 * 使用 KVM 模块模拟 CPU 和内存,支持用户空间管理工具的连接。 **区别** * QEMU 是一个纯软件的虚拟机实现,性能比 KVM 低。 * KVM 是内核模块,没有用户空间管理工具的管理界面。 **用途** * KVM 用于开发和测试虚拟化平台,如 KVM盖房子。 * QEMU 用于创建和管理虚拟机,如创建虚拟机模拟硬件。

正文

KVM架构

KVM(Kernel-based Virtual Machine)包含一个为处理器提供底层虚拟化、可加载的核心 模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层 控制工具。KVM无需改变Linux或Windows系统就能运行。
KVM就是内核的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,一台虚拟机就 是一个普通的Linux进程,通过对这个进程的管理,就可以完成对虚拟机的管理

qemu

QEMU本身并不是KVM的一部分,其本身是一个著名的开源虚拟机软件,与KVM不同, QEMU是一个纯软件的实现,所以性能低下。但是,其优点是可以模拟很多硬件
以盖房子为例,KVM可以理解为开发商,房子盖的很好,但是不会装修;QEMU可以理解为 装修公司,房子盖的不好,但是装修做的很好;所以我们采用KVM盖房子(硬件虚拟化,实 现CPU和内存计算资源的模拟),使用QEMU装修(软件模拟,实现网卡、显卡、存储控制器 和硬盘等)。
KVM只是一个内核的模块,没有用户控件的管理工具,KVM虚拟机可以借助QEMU的管理工 具来管理,QEMU也可以借助KVM来加速,提升虚拟机的性能

首先KVM(Kernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机成为一个Hypervisor(虚拟机监控器)。在支持VMX(Virtual Machine Extension)功能的x86处理器中,Linux在原有的用户模式和内核模式中新增加了客户模式,并且客户模式也拥有自己的内核模式和用户模式,虚拟机就是运行在客户模式中。KVM模块的职责就是打开并初始化VMX功能,提供相应的接口以支持虚拟机的运行。

QEMU(quick emulator)本身并不包含或依赖KVM模块,而是一套由Fabrice Bellard编写的模拟计算机的自由软件。QEMU虚拟机是一个纯软件的实现,可以在没有KVM模块的情况下独立运行,但是性能比较低。QEMU有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化以及I/O设备的虚拟化。QEMU是一个用户空间的进程,需要通过特定的接口才能调用到KVM模块提供的功能。从QEMU角度来看,虚拟机运行期间,QEMU通过KVM模块提供的系统调用接口进行内核设置,由KVM模块负责将虚拟机置于处理器的特殊模式运行。QEMU使用了KVM模块的虚拟化功能,为自己的虚拟机提供硬件虚拟化加速以提高虚拟机的性能。

KVM只模拟CPU和内存,因此一个客户机操作系统可以在宿主机上跑起来,但是你看不到它,无法和它沟通。于是,有人修改了QEMU代码,把他模拟CPU、内存的代码换成KVM,而网卡、显示器等留着,因此QEMU+KVM就成了一个完整的虚拟化平台。

KVM只是内核模块,用户并没法直接跟内核模块交互,需要借助用户空间的管理工具,而这个工具就是QEMU。KVM和QEMU相辅相成,QEMU通过KVM达到了硬件虚拟化的速度,而KVM则通过QEMU来模拟设备。对于KVM来说,其匹配的用户空间工具并不仅仅只有QEMU,还有其他的,比如RedHat开发的libvirt、virsh、virt-manager等,QEMU并不是KVM的唯一选择。

所以简单直接的理解就是:QEMU是个计算机模拟器,而KVM为计算机的模拟提供加速功能。

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览97830 人正在系统学习中

与[转帖]【KVM】KVM和QEMU的关系及区别相似的内容:

[转帖]【KVM】KVM和QEMU的关系及区别

KVM架构 KVM(Kernel-based Virtual Machine)包含一个为处理器提供底层虚拟化、可加载的核心 模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层 控制工具。KVM无需改变Linux或Windows系统就能运

[转帖]在 virt-manager 的主机和客户机之间共享文件夹

https://linux.cn/article-15470-1.html 在本指南中,你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。 virt-manager 应用或软件包使用 libvirt 库来提供虚拟机管理服务。它有一个桌面

[转帖]libvirt理解总结

一、libvit总结 libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API。Libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用,Libvirtd调用qemu-kvm操作虚拟机。 二、libvirt特点 •libvirt是用于管理虚拟化平

[转帖]IO虚拟化——SR-IOV 原理

摘要: 介绍SR-IOV 的概念、使用场景、VMware 和 KVM 中的配置方法。 第一部分:虚拟化通信延迟: 第二部分:IO 虚拟化 第三部分:SR-IOV 第四部分:Intel网卡在VMware 环境 实现 SR-IOV 需要的条件和配置方法 第五部分:SR-IOV 在Red Hat Virt

[转帖]virsh命令创建、还原和删除KVM虚拟机快照

https://www.jianshu.com/p/2afb0d9c2c41 在虚拟化平台上进行系统管理工作时,经常需要在开始重大操作比如部署补丁和代码前先设置一个虚拟机快照snapshot。虚拟机快照是特定时间点的虚拟机磁盘的副本。换句话说,快照保存了给定的时间点虚拟机的状态和数据。 我们可以在哪

[转帖]KVM与ESXi 对比

关于KVM KVM,深受开源、国产虚拟化、云计算厂家欢迎,费用可以无视,可定制,配合的开源云管平台很丰富,但是对入门用户不友好,第三方工具不够多,无代理备份方式受限于KVM所选择的Linux发行版本,导致各个版本的第三方工具支持力度不高。大厂喜欢,企业用户不喜欢。 关于Vmware ESXi,商业版

[转帖]KVM打快照

https://www.jianshu.com/p/98e12540d314 virsh snapshot-create-as +虚拟机名称+快照名 1.[root@localhost /]# virsh list #查看当前运行的虚拟机 2.[root@localhost /]# virsh sn

[转帖]KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware are not supported”

https://www.cnblogs.com/anderly/p/14977989.html KVM/QEMU创建虚拟机快照时,报如下错误: Operation not supported: internal snapshots of a VM with pflash based firmware

[转帖]KVM——以桥接的方式搭建虚拟机网络配置

https://www.cnblogs.com/weilu2/p/kvm_bridge_centos7.html 以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器。 在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentO

[转帖]KVM安装

https://www.cnblogs.com/weilu2/p/linux_kvm_install_config.html 检查CPU是否支持硬件虚拟化 在开始安装KVM之前,需要检查系统中的CPU是否支持硬件虚拟化的特性,执行下面的命令: grep -E '(vmx|svm)' /proc/cp