有人可以澄清这一点吗?
我是 kvm 新手,创建了两个客户实例,一个是 Linux,一个是 Windows。
在两个 Guest 上,CPU 都显示为 QEMU 虚拟 CPU,为什么会这样?
如果 kvm 利用硬件虚拟化而 Qemu 利用模拟器,那么 kvm 在虚拟化中的作用是什么,因为在这种情况下它只显示模拟的 cpu,我相信这是 Qemu 的工作而不是 kvm。
在 xen 上,我熟悉的客户 CPU 就像实际的硬件一样显示,即使它使用 qemu 驱动程序。
答案1
默认情况下,QEMU/KVM 仅向客户机公开一部分 CPU 功能,这样 VM 就可以从一个 CPU 迁移到另一个 CPU(例如从 Intel Xeon 到 AMD Opteron)而不会产生任何不良影响。
如果你愿意,你可以覆盖此行为,方法是在 qemu 命令行上传递参数或者在 GUI/XML 前端中设置适当的 CPU 选项。您可以选择要显示的特定 CPU 功能,或传递所有 CPU 功能。
如果你选择覆盖任何的参数,那么您只能将虚拟机迁移到具有这些功能的另一个 CPU。如果您选择传递全部主机 CPU 功能传递给客户机,那么它也会暴露 CPU 的名称,并且您将无法将虚拟机迁移到不同类型的 CPU。
QEMU 和 KVM 之间的区别区别在于 QEMU 是完全处理器模拟,而 KVM 则使用处理器的原生虚拟化功能(Intel VT-x 或 AMD SVM)提供完全硬件虚拟化(HVM),以提供接近原生 CPU 的性能。因此,前者比后者慢得多。
答案2
名字意味着什么?我们称之为玫瑰
无论叫什么名字,都一样芬芳;
虚拟化 CPU 也是如此。
答案3
qemu 是一个用户空间程序,利用 /dev/kvm 接口模拟主机硬件。KVM 本身不具备任何模拟能力。