使用基于容器的虚拟化技术提升虚拟机性能

日期: 2009-07-28 作者:Sander van Vugt翻译:李哲贤 来源:TechTarget中国 英文

在过去的几年中,基于管理程序(hypervisor-based)的虚拟化逐渐占据虚拟化市场的主导地位。这不难理解,因为这种技术的灵活性使得用户几乎可以安装所有类型的操作系统。然而,如果你并不需要在同时运行多种不同类型操作系统环境下工作,基于容器(container-based)的虚拟化也许是一个更佳的选择,它能为用户带来性能优势。     基于容器(container-based)的虚拟化技术的基本思想是在底层运行一个内核,其余多个不同的虚拟机运行于该内核之上。

相比基于管理程序(hypervisor-based)的虚拟化,每个虚拟机不是完整的操作系统实例,这种技术……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在过去的几年中,基于管理程序(hypervisor-based)的虚拟化逐渐占据虚拟化市场的主导地位。这不难理解,因为这种技术的灵活性使得用户几乎可以安装所有类型的操作系统。然而,如果你并不需要在同时运行多种不同类型操作系统环境下工作,基于容器(container-based)的虚拟化也许是一个更佳的选择,它能为用户带来性能优势。

    基于容器(container-based)的虚拟化技术的基本思想是在底层运行一个内核,其余多个不同的虚拟机运行于该内核之上。相比基于管理程序(hypervisor-based)的虚拟化,每个虚拟机不是完整的操作系统实例,这种技术仅安装每个操作系统实例的一部分,每个实例以智能的方式与安装在主操作系统内核中的虚拟化层协同工作。基于管理程序的虚拟化多用于Linux环境,现今最主要的两大阵营是商业化产品Parallels Virtuozzo和开源产品OpenVZ

  基于管理程序(hypervisor-based)的虚拟化VS基于容器(container-based)的虚拟化

    为了理解基于容器(container-based)的虚拟化,最好的办法就是跟基于管理程序(hypervisor-based)的虚拟化做对比。后者的工作方式是,通过管理程序层,来转发所有来自虚拟机的指令给底层硬件设备层。这个管理程序层是一个带有虚拟化功能特性的精简操作系统内核。在VMware ESX Server 和 思杰的XenServer产品中,管理程序层采用的是Linux内核,Windows Hyper-V采用微软内核完成这项工作。

    而虚拟机(VM)运行于管理程序层之上。这种模式下,每一个虚拟机就是一个完整的操作系统。这种技术最大的挑战来自于,在不提前虚拟化所有硬件的驱动的情况下,访问硬件设备。半虚拟化技术(paravirtualization)就是解决这个问题的方案;然而在另外一种全虚拟化的技术中,所有的硬件在分配给虚拟机(VM)使用前都必须首先进行虚拟化。虚拟机将运行的是一个完整的操作系统,应用程序也是被虚拟化的。

    基于容器(container-based)的虚拟化(也被称作操作系统虚拟化)使用了不用的方法来实现。标准的主机操作系统运行于底层,例如当使用Parallels Virtuozzo 虚拟化产品时,底层运行的是windows或Linux操作系统。在操作系统之上是虚拟化层,看起来就像虚拟化层是运行于操作系统上的一个应用程序一样。虚拟化层提供了自有的文件系统和内核服务提取能力,用来确保在所有虚拟机之间分割硬件资源,因此每个独立的虚拟机也被称为“容器“。虚拟化层保证了每一个容器对外成为一个独立的服务器。

    这两种虚拟化技术最大的不同就在于基于容器(container-based)的虚拟化技术中,每个虚拟机安装的不是完整的虚拟机。因此不需要安装一个完整安装的操作系统。部分虚拟化中,容器运行得更像一个完全独立的应用程序运行于操作系统中。虚拟化层保证它不合其他的容器相影响,然后容器本身呈现为一个虚拟机。这种方法的优点是不需要重复的功能,像硬件访问功能。只有一个操作系统关心硬件的访问。

    基于容器(container-based)的虚拟化同时也避免了传统方式下,由于通过虚拟驱动程序访问硬件设备所带来的性能问题。但是这种技术也有一项缺点,那就是灵活性受到限制,用户无法同时安装多种不同操作系统的虚拟机。然而,一般来讲,当用户需要的仅仅是在已经使用的某种操作系统基础上,再增加几个相同的实例时,为什么不选择基于容器(container-based)的虚拟化技术?

  基于容器(container-based)的虚拟化技术优势

    相比基于管理程序(hypervisor-based)的虚拟化,基于容器(container-based)的虚拟化提供了完全不同的虚拟化方法。它采用在一个OS中运行多个独立容器的方式,取代原有的在每个虚拟机中都安装完整操作系统的方式。因此在基于容器(container-based)的虚拟化设备中只需运行于一个完整操作系统环境,这种技术最大的优势就在于,无需安装重复的功能模块,从而提高了系统性能。

翻译

李哲贤
李哲贤

TT虚拟化特约作者

相关推荐