半虚拟化和全虚拟化最大的区别:

半虚拟化是需要更改系统内核才得以实现虚拟化,而完全虚拟化是不需要修改内核。


完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。

半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越。半虚拟化系统性能可以接近在裸机上的性能。


Xen是一款虚拟化软件,支持半虚拟化和完全虚拟化。它在不支持VT技术的cpu上也能使用,但是只能以半虚拟化模式运行。

VMware是一款完全虚拟化软件。完全虚拟的弱点是效率不如半虚拟化的高

KVM是Linux内核的一部分,KVM在Linux内核内部部署,可以很容易控制虚拟化进程。 由于操作系统直接和整合到Linux内核中的虚拟化管理程序交互,所以在任何场景下都可以直接和硬件进行交互,而不需要修改虚拟化的操作系统。KVM是一款完全虚拟化软件。KVM当前不支持半虚拟化


KVM详解


全虚拟化和半虚拟化_全虚拟化

全虚拟化和半虚拟化_半虚拟化_02

全虚拟化和半虚拟化_半虚拟化_03


全虚拟化和半虚拟化_全虚拟化_04





参考: http://www.cbdio.com/BigData/2016-04/01/content_4763208.htm