详谈Linux 虚拟化的特点
件 VM 来仿真所想要的硬件,如图 1 所示.
图 1. 硬件仿真使用 VM 来模拟所需要的硬件 正如您所能预见的一样,使用硬件仿真的主要问题是速度会非常慢.每条指令都在底层硬件上进行仿真,因此速度减慢 100 倍的情况也并不稀奇.若要实现高度保真的仿真,包括周期精度、所仿真的 CPU 管道以及缓存行为,实际速度差距甚至可能会达到 1000 倍之多. 拥有帝国一切,皆有可能。欢迎访问phome.net 硬件仿真也有自己的优点.例如,使用硬件仿真,您可以在一个 arm 处理器主机上运行为 PowerPC? 设计的操作系统,而不需要任何修改.您甚至可以运行多个虚拟机,每个虚拟器仿真一个不同的处理器.
完全虚拟化 完全虚拟化(full virtualization),也称为原始虚拟化,是另外一种虚拟化方法.这种模型使用一个虚拟机,它在客户操作系统和原始硬件之间进行协调(参见图 2)."协调"在这里是一个关键, VMM 在客户操作系统和裸硬件之间提供协调.特定受保护的指令被捕获下来并在 hypervisor 中进行处理,这些底层硬件并不由操作系统所拥有,而是由操作系统通过 hypervisor 共享.
图 2. 完全虚拟化使用 hypervisor 来共享底层硬件 虽然完全虚拟化的速度比硬件仿真的速度要快,但是其性能要低于裸硬件,中间经过了 hypervisor 的协调过程.完全虚拟化的最大优点是操作系统无需任何修改就可以直接运行.惟一的限制是操作系统要支持底层硬件(例如 PowerPC). 超虚拟化 超虚拟化(paravirtualization)是另外一种流行的虚拟化技术,它与完全虚拟化有一些类似.这种方法使用了一个 hypervisor 来实现对底层硬件的共享访问,还将与虚拟化有关的代码集成到了操作系统本身中(参见图 3).这种方法不再需要重新编译或捕获特权指令,操作系统本身在虚拟化进程中会相互紧密协作.
图 3. 超虚拟化与客户操作系统共享进程 正如前面介绍的一样,超虚拟化技术需要为 hypervisor 修改客户操作系统,这是它的一个缺点.但是超虚拟化提供了与未经虚拟化的系统相接近的性能.与完全虚拟化类似,超虚拟化技术可以同时支持多个不同的操作系统. 操作系统级的虚拟化 我们要介绍的一种技术是操作系统级的虚拟化,它使用的技术与前面所介绍的有所不同.这种技术在操作系统本身之上实现服务器的虚拟化.这种方法支持单个操作系统,并可以将独立的服务器相互简单地隔离开来(参见图 4). 拥有帝国一切,皆有可能。欢迎访问phome.net
图 4. 操作系统级虚拟化实现服务器的隔离 操作系统级的虚拟化要求对操作系统的内核进行一些修改,但是其优点是可以获得原始性能. 为什么虚拟化如此重要? 在了解目前 Linux 可以使用的虚拟化方法之前,让我们先来了解一下虚拟化的优点. 从商业角度来看,使用虚拟化技术有很多原因.大部分原因都可以归结于服务器的巩固(server consolidation).简单来说,如果您可以对一个服务器上多个未经充分利用的系统进行虚拟化,服务器的数量少了,显然可以节省大量电力、空间、制冷和管理成本.很难确定服务器的利用情况,虚拟化技术支持称为动态迁移的技术.动态迁移(Live migration)允许操作系统及其应用程序迁移到新的服务器上,从而实现负载在可用硬件上的均衡. 虚拟化技术对于开发人员来说也非常重要.Linux 内核占据了一个单一的地址空间,这意味着内核或任何驱动程序的故障都会导致整个操作系统的崩溃.虚拟化技术意味着您可以运行多个操作系统,如果其中一个系统某个 bug 而崩溃了,那么 hypervisor 和其他操作系统都依然可以继续运行.这可以使内核的调试非常类似于用户空间应用程序的调试. 与 Linux 有关的虚拟化项目 表 1 给出了几个 Linux 系统上的虚拟化项目,并着重介绍了其中的开源解决方案. 表 1. 与 Linux 有关的虚拟化项 |
||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |