10.1虚拟化硬件和半虚拟化硬件

Qemu模拟的PC硬件设备包括主板、网卡控制器、scsi控制器、ide控制器、sata控制器、串口等(完整列表参见man kvm(1)手册),这些都是以软件模拟方式实现的虚拟化硬件。换句话说,这些虚拟化硬件都是和对应硬件设备完全相当的软件,如果客户机操作系统安装了对应的驱动程序,客户机就可以像驱动真实物理硬件一样驱动这些虚拟化硬件。这样,Qemu就可以直接运行客户机而无需修改客户机操作系统。

但这种方式的缺点就是性能损耗较大,因为CPU必须耗费大量计算能力才能以软件方式模拟硬件操作。为提高性能,可以Qemu还提供有半虚拟化硬件,这时客户机操作系统会感知到Qemu环境的存在,并直接和虚拟机管理器配合工作。

Qemu的半虚拟化硬件采用了virtio标准,并以virtio半虚拟化硬件形式实现,具体包括半虚拟化硬盘控制器,半虚拟化网卡,半虚拟化串口,半虚拟化SCSI控制器等。

鉴于其所提供的高性能,我们强烈推荐优先使用virtio半虚拟硬件。在使用bonnie++(8)进行的连续写测试中,virtio半虚拟磁盘控制器的性能是模拟IDE控制器的2倍。而在基于iperf的测试中,virtio半虚拟网卡的性能是模拟Intel E1000虚拟网卡的3倍。