资源虚拟化(resource virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件。
下面介绍一下几个概念:半虚拟化,全虚拟化,硬件辅助虚拟化和操作系统级虚拟化。
1,半虚拟化(Para Virtualization)
半虚拟化是通过事先经过修改的客户机操作系统内核共享宿主底层硬件来实现的,优点是半虚拟化的虚拟机操作系统内核能够直接管理底层硬件,性能比全虚拟化技术更强,缺点是客户机操作系统内核需要事先进行修改,部署的便利性和灵活性都不够,兼容性不够好全虚拟化是通过客户机和宿主机直接的一个虚拟化逻辑层hypervisor来完全模拟底层硬件细节,优点是客户机的操作系统内核不需要做特殊配置,部署便利,灵活,兼容性好,缺点是客户机操作系统的内核不能够直接管理底层硬件,内核通过hypervisor管理底层硬件需要有转换开销,性能比半虚拟化略弱。
优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。
缺点:需要对Guest OS进行修改,所以在用户体验方面比较麻烦。
未来:我觉得其将来应该和现在的情况比较类似,在公有云(比如Amazon EC2)平台上应该继续占有一席之地,但是很难在其他方面和类似VMware vSphere这样的全虚拟化产品竞争,同时它也将会利用硬件辅助虚拟化技术来提高速度,并简化架构。
2,全虚拟化(Full Virtualization):
主要是在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,而且属于 Hosted 模式和 Hypervisor 模式的都有,知名的产品有IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX(它在其4.0版,被改名为VMware vSphere)。
优点:Guest OS无需修改,速度和功能都非常不错,更重要的是使用非常简单,不论是 VMware 的产品,还是Sun(Oracle)的 VirtualBox。
缺点:基于Hosted模式的全虚拟产品性能方面不是特别优异,特别是I/O方面。
未来:因为使用这种模式,不仅Guest OS免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,目前大部分cpu均支持虚拟化技术,所以在未来全虚拟化还是主流。
3,硬件辅助虚拟化(Hardware Assisted Virtualization):
Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox,KVM,VMware ESX和Xen。
优点:通过引入硬件技术,将使虚拟化技术更接近物理机的速度。
缺点:现有的硬件实现不够优化,还有进一步提高的空间。
未来:因为通过使用硬件技术不仅能提高速度,而且能简化虚拟化技术的架构,所以预见硬件技术将会被大多数虚拟化产品所采用。
4,操作系统级虚拟化(Operating System Level Virtualization):
这种技术通过对服务器操作系统进行简单地隔离来实现虚拟化,主要用于VPS。主要的技术有Parallels Virtuozzo Containers,Unix-like系统上的chroot和Solaris上的Zone等。
优点:因为它是对操作系统进行直接的修改,所以实现成本低而且性能不错。
缺点:在资源隔离方面表现不佳,而且对Guest OS的型号和版本有限定。
未来:不明朗,除非有革命性技术诞生,否则还应该属于小众,比如VPS。