容器虚拟化与传统虚拟化技术在数据中心里的较量

云计算 虚拟化
虚拟化是新一代数据中心最为关键的技术之一,是实现云计算的基础。我们知道云计算的核心是资源的网络化共享与应用,实现人们访问网络资源就像是访问本地资源一样,所有应用都在虚拟的基础上而不是真实的基础上运行,要实现这些都要依仗虚拟技术。

[[190176]]

虚拟化是新一代数据中心最为关键的技术之一,是实现云计算的基础。我们知道云计算的核心是资源的网络化共享与应用,实现人们访问网络资源就像是访问本地资源一样,所有应用都在虚拟的基础上而不是真实的基础上运行,要实现这些都要依仗虚拟技术。数据中心引入虚拟化技术,可以节约成本开支,降低部署成本、提高工作效率。其中服务器虚拟化只需要较少的硬件资源就能运行多重应用程序和操作系统,能允许用户根据自身需求快速调配新的资源。还有存储虚拟化、内存虚拟化、操作系统虚拟化、网络虚拟化、数据中心虚拟化等等,不同的数据中心存在着对不同虚拟化技术的需求,才衍生出来这么多虚拟化技术。不管怎样,虚拟化已经成为云数据中心建设和发展不可或缺的技术。

虚拟化技术改变了现代计算方式,它能够提升系统资源使用效率、消除应用程序和底层硬件之间的依赖关系,同时加强负载的可移植性和安全性。虚拟化实质上再现了整个物理服务器作为一个虚拟机运行一个应用,作用是抽象服务器资源,每台虚拟机都能够获取唯一的操作系统和负载。不过虚拟机技术带来的麻烦是每个实例都需要运行客户端操作系统的完整副本以及其中包含的大量应用程序,由此会产生沉重的负载,这将会影响其工作效率及性能表现。在这样的需求背景下,容器技术出现了。容器要比传统虚拟化技术更高效,容器并非虚拟化或抽象整个硬件,而只是抽象应用或应用的部分,如此粒度的虚拟化意味着资源将不会浪费在冗余的部分,同时还可以降低CPU、内存和存储需求,所以容器技术也是一种虚拟化技术。

容器虚拟化具有轻量级特性,所需的内存空间较少,提供非常快的启动速度,创建容器的速度比虚拟机要快得多,那是由于虚拟机必须从存储系统检索10GB至20GB的操作系统,容器中工作负载使用主机服务器的操作系统内核,避免了这一步,容器可以在二十分之一秒内启动完毕;容器虚拟化实现应用程序以标准方式进行格式化,之后才放到容器中。在容器中,每种类型的应用程序都以同样的方式在网络上移动。这样一来,容器可以通过互联网或内部网络来移动;容器虚拟化提供了更高级的隔离机制,许多应用程序在主机操作系统下运行,所有应用程序共享某些操作系统库和操作系统的内核,避免运行中的容器彼此冲突;容器虚拟化可以将一个大型的应用程序分解成许多小型应用程序,每个小应用程序都在各自的容器里面。比如:打折奢侈品网站Gilt就把七个大型应用程序分解成了300个微服务,一支小队伍维护每个服务,如某一个微服务出现问题,可以迅速回滚/恢复。容器虚拟化技术安全度更高,容器之间可以彼此独立地访问。修改一层的代码更改可以在不影响其他层的情况下执行。这样一来,代码更改起来比在典型的整体式应用程序中来得安全。

数据中心引入容器虚拟化技术也有其固有弊端,就是单个操作系统有可能引起影响所有相关实例的单点事故。比如,恶意软件或者主机操作系统崩溃可能禁用或者影响所有容器,还有容器更容易完成迁移,但却只能被迁移到具有兼容操作系统内核的其他服务器当中,这样会无形中减少迁移选择;彼此邻近的容器共享处理器、内存和磁盘等资源,这种行为让安全专业人员深为担忧,与传统虚拟化相比,面临更为严峻的安全隐患。比如若允许两个容器彼此对话,其中一个容器被装入了恶意代码,窥视被允许查看的数据当中的加密密钥,各种机密数据可能会落到恶意软件的手中;还有容器虚拟化技术的代表当属Docker,Docker也不过才出现三年,在2014年Docker刚刚出来,所以到现在技术仍在不断完善之中,而传统虚拟机技术是一项高度发展、非常成熟的技术,早已在成千上万的数据中心里使用着,数据中心在引入容器技术时都会有所顾忌。现在,只有在一些技术积累雄厚的大型互联网公司才愿意尝鲜容器技术,并不具有普遍意义;正是因为是新技术,所以用于监控和管理容器的工具种类也十分缺乏,目前只有谷歌开源Docker管理工具Kubernetes,很多时候还有借助于传统虚拟化技术的工具,缺少容器专业管理工具。

容器技术为应用程序提供了隔离的运行空间,每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。一个数据中心是采用传统虚拟化技术还是容器技术,要考虑数据中心现实情况。如果从数据中心更关注服务器虚拟化的角度来寻找最好的环境隔离方案,那么传统的系统级虚拟化是更好的选择;如果数据中心需要将应用运行的实例进行隔离,那么对于管理应用运行环境、启动应用实例以及控制资源开销方面容器将是一个极为高效的工具,应该大胆选择容器技术。不过虽然容器技术拥有很强的兼容性,但仍然不能完全取代现有的虚拟机环境,容器并不是一种能够满足所有虚拟化任务的解决方案,只是虚拟化工具箱提供的另外一种工具。所以数据中心要采用哪种虚拟化技术,一定要权衡利弊,找最适合自己的技术。当然,在一个数据中心,也可以两种技术共存,这两种技术并不是互斥的,只是适用的场合有所差异,各有利弊。如此便可以在不同的服务器中去部署两种技术,以此来满足不同的应用需要,通常容器虚拟化可以和传统虚拟机很好地协同工作。

责任编辑:武晓燕 来源: 企业网D1Net
相关推荐

2009-01-05 18:14:29

虚拟化vmware思科

2009-01-12 17:23:14

服务器虚拟化思科

2013-08-19 16:37:59

虚拟化数据中心

2013-08-14 09:26:13

虚拟化数据中心

2015-10-09 17:01:08

数据中心网络虚拟化

2009-06-08 13:19:32

虚拟化数据中心服务器

2022-05-19 14:18:52

数据中心安全网络虚拟化

2009-02-17 17:49:47

虚拟化数据中心绿色

2017-11-01 09:03:08

2010-04-29 15:03:53

存储虚拟化数据中心

2011-02-25 11:02:06

虚拟化数据中心

2012-11-05 09:39:50

虚拟化

2010-08-20 09:50:53

数据中心虚拟化

2015-06-24 10:48:49

数据中心虚拟化

2010-11-23 14:31:21

数据中心虚拟化

2015-06-09 10:01:56

数据虚拟化数据中心

2010-06-12 21:56:21

数据中心网络架构博科

2009-06-02 08:41:40

虚拟化数据中心H3C

2019-05-21 13:52:20

虚拟化数据中心大二层

2012-10-30 14:59:26

点赞
收藏

51CTO技术栈公众号