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

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

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

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

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



来源:
全国咨询热线:0769-22321006 零风险购买软件 零风险购买软件 网上在线咨询 关闭
0769-22321006