http://www.meiguoidc.com

容器与虚拟机,正在互相替代还是逐渐融合

最近一两年来,以容器为代表的云原生技术一直是IT行业最为热门的话题。随着云原生技术的崛起,有企业甚至跳过了IaaS层直接在物理机上部署容器。容器的风头几乎盖过云计算,甚至引发了OpenStack的未来堪忧的说法,容器与虚拟化谁将会是市场主流的话题时常被提起。有不少人认为,容器的普及对虚拟机形成了冲击,于是就有了早些年的容器与虚拟机之争。

事实上,虽然许多企业正在将基于虚拟机的应用程序迁移到容器,但事实上虚拟机在数据中心和公有云中仍然普遍存在。一方面,容器并没有完全替代虚拟机,另一方面虚拟机也在积极支持容器,两者共存的情形反而越来越普遍。

虚拟机和容器各有优势

虚拟机和容器诞生的初衷,都是为了更好的提高资源利用率,但两者的区别在于:虚拟机是操作系统级别的资源隔离,而容器本质上是进程级的资源隔离。

虚拟机(Virtual Machine),是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

虚拟机的出现,解决了早期在物理服务器上部署应用但无法为其应用程序定义资源边界而导致的资源分配问题。

但是在使用虚拟化一段时间后,会发现它存在一些问题,例如:虚拟机的系统层会占用比较多物理机的资源,需要更进一步提高服务器的资源利用率;当需要迁移虚拟机服务程序时,需要迁移整个虚拟机,迁移流程复杂。

为了解决这些问题,容器就出现了。

容器技术,可以理解为操作系统虚拟化技术,它是一种轻量级的虚拟化技术。通过内核创建多个虚拟的操作系统实例(内核和库),来隔离不同的进程(容器),不同的实例相互隔离,相互之间完全无感知。可以简单地理解为容器就是一个进程沙盒,来提供进程级的隔离。

相比于虚拟机,容器没有自己的操作系统,而是通过容器引擎来实现共享宿主机操作系统内核,从而减少需要运行多个操作系统的开销。

总的来说,容器和虚拟机具有相似的资源隔离和分配优势,但功能不同。容器虚拟化的是操作系统而不是硬件,因此容器更加轻便高效。但是如果用户需要使用在不同操作系统上运行的不同应用程序,虚拟机就能提供可靠的解决方案和更好的安全性。

因此,如今最有效和最常用的策略是,拥有一台具有多个虚拟机的物理机,每个虚拟机都有多个容器。容器和虚拟机一起使用,为部署和管理应用提供了极大的灵活性。

容器与虚拟机之争根本不存在

容器和虚拟机有着各自的优势,虽然在应用场景上有一些重叠,但主要应用场景还是有区别的,未来这种两种技术会长期共存,甚至走向融合。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。