实现虚拟化的方式不止一种,各类方式都可以通过不同层次的具象来实现相同的结果。本文将给你们介绍Linux中常用的4种虚拟化方式,以及它们相应的异同点。业界有时会使用不同的术语来描述相同的虚拟化方式。
(1)硬件仿真。毫无疑惑,最复杂的虚拟化实现技术就是硬件仿真。在这些方式中,可以在寄主系统上创建一个硬件VM仿真所想要的硬件。正如所能预见的一样,使用硬件仿真的主要问题是速率会特别慢。因为每条指令都必须在底层硬件上进行仿真,因而速率减低100倍的情况也并不稀奇。若要实现高度的仿真,包括周期精度、所仿真的CPU管线以及缓存行为,实际速率差别甚至可能会达到1000倍之多。
硬件仿真也有自己的优点。比如linux课程,使用硬件仿真,可以在一个ARM处理器主机上运行为PowerPC设计的操作系统,而不须要任何更改。甚至可以运行多个虚拟机linux服务器虚拟,每位虚拟器仿真一个不同的处理器。
(2)完全虚拟化。合称为原始虚拟化,是另外一种虚拟化方式。这些模型使用一个虚拟机,它在顾客操作系统和原始硬件之间进行协调。"协调"在这儿是一个关键,由于VMM在顾客操作系统和裸硬件之间提供协调。特定受保护的指令必须被捕获出来并在虚拟控制程序(hypervisor)中进行处理,由于这种底层硬件并不由操作系统所拥有,而是由操作系统通过虚拟控制程序(hypervisor)共享。
其实完全虚拟化的速率比硬件仿真的速率要快,而且其性能要高于裸硬件,由于中间经过了虚拟控制程序(hypervisor)的协调过程。完全虚拟化的最大优点是操作系统无需任何更改就可以直接运行。惟一的限制是操作系统必需要支持底层硬件(如PowerPC)。
(3)超虚拟化。是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似。这些方式使用了一个虚拟控制程序(hypervisor)来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中。这些方式不再须要重新编译或捕获特权指令,由于操作系统本身在虚拟化进程中会互相紧密协作。
正如上面介绍的一样,超虚拟化技术须要为虚拟控制程序(hypervisor)更改顾客操作系统linux是什么,这是它的一个缺点。并且超虚拟化提供了与未经虚拟化的系统相接近的性能。与完全虚拟化类似linux服务器虚拟,超虚拟化技术可以同时支持多个不同的操作系统。
(4)操作系统级的虚拟化。它使用的技术与上面所介绍的有所不同。此类技术在操作系统本身之上实现服务器虚拟化。这些方式支持单个操作系统,并可以将独立的服务器互相简单地隔离开来。操作系统级的虚拟化要求对操作系统的内核进行一些更改,而且其优点是可以获得原始性能。