了解-QEMU-模拟器以及其和-KVM-的关系

QEMU 是 quick emulator 的简称.

KVM 是 Kernel base Virtual Machina 的简称.

KVM 可以看作是 QEMU 的加速器, 利用真实硬件的性能来提高模拟软件的性能. 其连接了虚拟机和物理硬件.

KVM 是基于内核的虚拟机, 是内置于 Linux 内核的 hypervisor.

KVM 是 QEMU 的一种特殊的运行模式, 这种模式通过内核模块使用 CPU 扩展进行虚拟化.

KVM 是内核的一部分.

更多关于 QEMU 模拟器及其底层

参考 知乎

QEMU 是纯软件实现的虚拟化模拟器, 几乎可以模拟任何硬件设备.

正因为 QEMU 是纯软件实现的, 所有的指令都要经 QEMU 过一手, 性能非常低, 所以, 在生产环境中, 大多数的做法都是配合 KVM 来完成虚拟化工作.

kvm 负责 cpu 虚拟化 + 内存虚拟化, 实现了 cpu 和内存的虚拟化, 但 kvm 不能模拟其他设备. qemu 来模拟 IO 设备 (如网卡, 磁盘, qemu 当然也可以模拟 cpu, 内存, 但是比较低效), kvm 加上 qemu 之后就能实现真正意义上服务器虚拟化. 因为用到了上面两个软件, 所以一般都称之为 qemu-kvm. libvirt 则是调用 kvm 虚拟化技术的接口用于管理的, 用 libvirt 管理方便, 直接用 qemu-kvm 的接口太繁琐。

总体结构图:

几个安装 qemu 后的命令:

先创建虚拟机镜像, 也就是用来模拟虚拟机的硬盘, 启动虚拟机也就是 qemu 在这个硬盘上进行模拟.

qcow2 是 QEMU 最常用的镜像格式, 采用写时复制技术来优化性能.

在启动一个虚拟机时,需要先在硬盘 (也就是这个虚拟机镜像) 中安装一个系统.

步骤

创建虚拟机硬盘:

1
$ qemu-img create -f qcow2 test.qcow2 10G

安装操作系统:

1
$ qemu-system-x86_64 -m 2048 -enable-kvm test.qcow2 -cdrom ubuntu.iso

启动虚拟机:

1
$ qemu-system-x86_64 -m 2048 -enable-kvm test.qcow2

了解-QEMU-模拟器以及其和-KVM-的关系
http://example.com/2022/10/01/了解-QEMU-模拟器以及其和-KVM-的关系/
作者
Jie
发布于
2022年10月1日
许可协议