我知道 KVM 通过利用 CPU 芯片(如 Intel VT)中的虚拟化扩展来提供硬件加速功能。这样 VCPU 可以直接映射到物理 CPU 以达到几乎原生的速度。
由于 Linux 内核包含硬盘、网络和内存的驱动程序。为什么我们需要 QEMU 来进行服务器虚拟化?(假设我们不需要模拟显卡等设备)。
除此之外,还有由 virtio 驱动程序提供的准虚拟化支持。磁盘 I/O 和网络性能显着提高。为什么我们不能只使用 KVM 和 virtio。QEMU 在这种情况下的作用是什么?
我知道 KVM 通过利用 CPU 芯片(如 Intel VT)中的虚拟化扩展来提供硬件加速功能。这样 VCPU 可以直接映射到物理 CPU 以达到几乎原生的速度。
由于 Linux 内核包含硬盘、网络和内存的驱动程序。为什么我们需要 QEMU 来进行服务器虚拟化?(假设我们不需要模拟显卡等设备)。
除此之外,还有由 virtio 驱动程序提供的准虚拟化支持。磁盘 I/O 和网络性能显着提高。为什么我们不能只使用 KVM 和 virtio。QEMU 在这种情况下的作用是什么?
QEMU 是虚拟硬件。CPU、芯片组、I/O 总线、中断控制器、基本外设和其他使平台工作的零碎硬件 API。仿真足够好,可以在外星硬件上运行十几个平台。慢慢地,由于重写 CPU 指令的开销,但有可能。相对于本机来说速度较慢,也就是说,QEMU 是一个“快速仿真器”。
主机 Linux 内核类似于虚拟固件和驱动程序。低级刺激实际硬件以使其运行。Linux 当然可以自己运行用户空间程序,在这种情况下,这些程序是模拟硬件的虚拟机。
KVM 添加了利用硬件辅助虚拟化的加速驱动程序。消除仿真和其他开销使其更快。不再可能模拟任何硬件平台。但在实践中,购买 ARM、POWER 或 x86 并各自运行其本机架构的客户机更为有效。