qemu 和 kvm 的关系, 使用 qemu 创建的虚拟机是否是直接使用 kvm?
QEMU和KVM之间的关系可以简单描述如下:
- QEMU:这是一个开源的虚拟机仿真器,可以模拟多种硬件平台。它负责设备仿真和虚拟机的运行管理。
- KVM (Kernel-based Virtual Machine) :这是Linux内核的一个模块,主要用于提供虚拟化支持。KVM将Linux内核转变为一个hypervisor,使得Linux可以直接执行虚拟机的指令。
在使用 QEMU 创建的虚拟机中,如果启用了 KVM ,QEMU 会利用 KVM 来加速虚拟机的性能。具体来说,运行qemu-system-x86_64
时,如果主机的 CPU 支持虚拟化(如 Intel 的 VT-x 或 AMD 的 AMD-V),并且 KVM 模块已加载,那么 QEMU 将会直接调用 KVM 来提高虚拟机的效率。
grep flag /proc/cpuinfo | uniq | grep -E "vmx|svm"
-
AMD 有支持 AMD-V技术的 cpu 应该会看到一个 svm 的 flag
-
Intel 的 VT-x 是 vmx
-
其他例如 ARM, PowerPC 可参考:
bash
▶ lsmod | grep kvm
kvm_intel 380928 0
kvm 1146880 1 kvm_intel
irqbypass 16384 1 kvm
总结
- QEMU 是一个仿真器,可以独立运行,但通常与KVM结合使用以提高性能。
- 使用 QEMU 创建的虚拟机 可以利用 KVM,如果条件允许的话,这样就能实现高效的虚拟化。