什么是QEMU指南
WIKI的定义如下:
QEMU(Quick Emulator的缩写)是一种免费的开源托管虚拟机管理程序,可以执行硬件虚拟化。
QEMU是主机上的VMM(虚拟机监视器),它通过动态二进制转换来模拟CPU,并提供了一系列硬件模型,因此来宾os认为它直接与硬件打交道。实际上是QEMU模拟的硬件。在处理时,QEMU会将这些指令转换为实际的硬件进行操作。
通过此模式,来宾操作系统可以与主机上的硬盘,网卡,CPU,CD-ROM,音频设备和USB设备进行交互。但是由于所有指令都需要QEMU进行翻译,因此性能会很差:
QEMU工作原理
运行模式
QEMU提供多种操作模式:
什么是KVM?
WIKI的定义如下:
基于内核的虚拟机(KVM)是用于Linux内核的虚拟化基础架构,它已进入虚拟机管理程序。
KVM实际上是Linux内核提供的虚拟化体系结构,可以直接用作管理程序。 KVM需要处理器硬件本身来支持虚拟化扩展,例如intel VT和AMD AMD-V技术。
自2. 6. 20版本以来,KVM已合并到主干中并已发布。另外,它也已经以模块的形式移植到了FreeBSD和illumos上。除了支持x86处理器外,它还支持S / 390,PowerPC,IA-61和ARM等平台。
工作原理
KVM包括用于实现核心虚拟化功能的内核模块kvm.ko,以及与处理器密切相关的模块,例如kvm-intel.ko或kvm-amd.ko。
KVM本身不执行任何模拟,仅公开/ dev / kvm接口,主机可以使用该接口主要负责vCPU的创建,虚拟内存地址空间的分配,读写vCPU寄存器的数量,并且vCPU运行。
使用KVM,来宾os的CPU指令可以直接运行,而无需QEMU进行翻译,从而大大提高了运行速度。但是KVM的kvm.ko本身仅提供CPU和内存的虚拟化,因此必须与QEMU结合以形成完整的虚拟化技术,这是下面要介绍的技术。
什么是QEMU-KVM
从前面的介绍中,我们可以看到KVM负责cpu虚拟化+内存虚拟化,这实现了cpu和内存的虚拟化,但是kvm无法模拟其他设备。还必须有一个在用户空间中运行的工具。 KVM的开发人员选择了更成熟的开源虚拟化软件QEMU作为此工具。 QEMU模拟IO设备(网卡,磁盘等)并对其进行修改。最后,形成QEMU-KVM。
具体架构如图所示
在QEMU-KVM中,KVM在内核空间中运行,QEMU在用户空间中运行,并实际上模拟各种虚拟硬件的创建和管理。 QEMU集成了KVM,并通过/ ioctl调用/ dev / kvm来转移CPU指令部分已移交给内核模块。 KVM实现了CPU和内存的虚拟化,但是kvm无法虚拟化其他硬件设备。因此,qemu还可以模拟IO设备(磁盘,网卡,图形卡等)。 KVM加QEMU后者是完全意义上的服务器虚拟化。
总而言之,QEMU-KVM具有两个主要功能:它提供cpu,内存(由KVM负责)和IO设备(由QEMU负责)的虚拟化,并且管理各种虚拟设备的创建和调用(QEMU)负责)
在此解决方案中,QEMU模拟其他硬件,例如网络和磁盘,这也会影响这些设备的性能。因此,创建了通过半虚拟化的设备virtio_blk和virtio_net来提高设备性能。
工作原理图
摘要
通过前面三节中的描述,每个人都应该能够基本掌握三种不同技术之间的区别和联系。
参考QEMU:KVM:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-366261-1.html
一帮SB水军
如果没有石油