论数据中心虚拟化两大技术代表:容器和虚拟机

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介:

如今,虚拟化技术在数据中心内已经生根发芽,应用非常普及,无论是在服务器、还是网络、存储等设备中都是如此。虚拟化技术起源于服务器,后来在网络设备中也出现,虽然都叫虚拟化技术,但是实现的原理是完全不同的,网络设备中的虚拟化也不能像服务器中的虚拟化可以虚拟化出数百或上千的虚拟设备,实现的技术也完全不同。本文着重讲述的是服务器中的虚拟化技术。服务器是数据中心最为重要的组成部分,所有的应用服务都要安装在服务器上,并运行,所以服务器上的虚拟化技术与应用最为密切相关。从早年的虚拟机技术到如今的容器技术,都是虚拟化技术的典型代表。

 论数据中心虚拟化两大技术代表:容器和虚拟机

虚拟机技术,很多人可能都不陌生。不少人自己也在PC上安装过虚拟机,这也是实现虚拟化的一个实践。虚拟机技术可以分为两大类:硬件虚拟化技术和指令集虚拟化技术,硬件虚拟化技术的典型代表是VMware、Xen等,指令集虚拟化技术的典型代表时Qemu、Boch等。虚拟机技术在数据中心早已深入人心,在数据中心也已普及应用多年,正是应用普遍,可以衍生出了不少细分技术,俨然已经成为数据中心虚拟化技术的重要代表之一。通过虚拟机技术,可以在一台物理服务器上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。对于使用者而言,它只是运行在你物理计算机上的一个应用程序,但是对于在虚拟机中运行的应用程序而言,它就像是在真正的计算机中进行工作。因此,当在虚拟机中进行软件评测时,可能系统一样会崩溃,但是,崩溃的只是虚拟机上的操作系统,而不是物理计算机上的操作系统,并且使用虚拟机的恢复功能,可以马上恢复虚拟机到安装软件之前的状态。

容器技术是通过虚拟化操作系统的方式来管理代码和应用程序,是在2013年才开始出现并迅速兴起的一种虚拟化技术,容器技术主要是由一些技术型创新企业设计开发的,比如: BlueData、CoreOS、Docker、Kismatic、PortWorx等等,其中最为出名的要属Docker技术,Docker几乎成为了容器技术的代表。容器技术是让你可以将更多的计算工作负载塞入到单单一台服务器上,并且让你可以在一瞬间为新的计算任务提高增加容量。从理论上来说,这意味着你可以购买较少的硬件,自建或租赁较少的数据中心场地,并且雇用较少的人手来管理这些设备。每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。为了能达到这种效果,容器技术使用了一系列的系统级别的机制诸如利用Linux namespaces来进行空间隔离,通过文件系统的挂载点来决定容器可以访问哪些文件,通过cgroups来确定每个容器可以利用多少资源。此外容器之间共享同一个系统内核,这样当同一个库被多个容器使用时,内存的使用效率会得到提升。

虚拟机和容器两大技术,从描述上看目的都是虚拟化,但是技术热点和实现方式则完全不同。虚拟机提供了专用操作系统的安全性和更牢固的逻辑边界。如果是虚拟机,虚拟机管理程序与硬件对话,就如同虚拟机的操作系统和应用程序构成了一个单独的物理机。虚拟机中的操作系统可以完全不同于主机的操作系统。而容器具有轻量级特性,所需的内存空间较少,提供非常快的启动速度,创建容器的速度比虚拟机要快得多,那是由于虚拟机必须从存储系统检索10GB至20GB的操作系统。容器中的工作负载使用主机服务器的操作系统内核,避免了这一步,容器可以在二十分之一秒内启动完毕。拥有这么快的速度让开发团队可以激活项目代码,以不同的方式测试代码,或者在其网站上推出额外的电子商务容量――这一切都非常快。虚拟机和容器都具有高度可移植性,但方式不一样。就虚拟机而言,可以在运行同一虚拟机管理程序(通常是VMware的ESX、微软的Hyper-V或者开源Zen或KVM)的多个系统之间进行移植。而容器不需要虚拟机管理程序,因为它与某个版本的操作系统绑定在一起。但是容器中的应用程序可以移到任何地方,只要那里有一份该操作系统的副本。容器技术使得应用程序以标准方式进行了格式化,之后才放到容器中。开发人员可以使用同样的工具和工作流程,不管目标操作系统是什么。一旦在容器中,每种类型的应用程序都以同样的方式在网络上移动。这样一来,容器酷似虚拟机,它们又是程序包文件,可以通过互联网或内部网络来移动。当然,容器技术没有虚拟机技术那么成熟。虚拟机是一项高度发展、非常成熟的技术,事实证明可以运行在最关键的业务工作负载。容器技术也开始在谷歌、阿里等互联网公司中得到应用推广,随着技术的成熟与稳定,大有取代虚拟机技术之势。当然不能忽略的是,容器技术也面临着一些未解决的问题。比如:安全问题,相邻的容器共享处理器、内存和磁盘等资源,这种行为让安全专业人员深为担忧。容器技术在一个计算机上只能运行一个应用程序,限制了应用程序的处理规模。所以容器是值得使用的技术,不过要谨慎使用,需深思熟虑,而不是贸然行动。

在数据中心的虚拟化进程中,到底采用虚拟机还是容器?这最终还是取决于你的需求。如果你只是希望将应用运行的实例进行隔离,那么对于管理应用运行环境、启动应用实例以及控制资源 开销方面容器将是一个极为高效的工具。如果你从服务器虚拟化的角度来寻找最好的环境隔离方案,那么系统级的虚拟化是更好的方案:和容器相比,邻居租户对系统的影响在虚拟化的方案下将不是一个问题。尽管现在很多容器都在专注于提高其隔离能力,但是虚拟机的隔离还是要优于容器。从物理服务器过渡到虚拟服务器是一个很自然的过程,并且现在针对虚拟服务器的管理的生态系统也很完善。当然两者并不是对立的,我们可以在一个容器中运行一个虚拟机,也可以在一个虚拟机中运行一个容器,还可以在一个虚拟机中运行多个容器,两种技术走向融合,这样才能让两种虚拟化技术在数据中心里发挥更大的作用。



作者:何妍 

来源:51CTO

相关文章
|
6天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
8天前
|
运维 持续交付 Docker
深入理解Docker容器化技术
深入理解Docker容器化技术
|
4天前
|
安全 持续交付 云计算
揭秘云计算中的容器化技术及其优势
揭秘云计算中的容器化技术及其优势
10 1
|
5天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
7天前
|
Kubernetes Cloud Native Docker
云原生技术探索:容器化与微服务的实践之道
【10月更文挑战第36天】在云计算的浪潮中,云原生技术以其高效、灵活和可靠的特性成为企业数字化转型的重要推手。本文将深入探讨云原生的两大核心概念——容器化与微服务架构,并通过实际代码示例,揭示如何通过Docker和Kubernetes实现服务的快速部署和管理。我们将从基础概念入手,逐步引导读者理解并实践云原生技术,最终掌握如何构建和维护一个高效、可扩展的云原生应用。
|
8天前
|
Cloud Native 持续交付 Docker
Docker容器化技术:从入门到实践
Docker容器化技术:从入门到实践
|
8天前
|
数据中心 开发者 Docker
理解并实践Docker容器化技术
理解并实践Docker容器化技术
|
10天前
|
存储 SQL 数据库
虚拟化数据恢复—Vmware虚拟机误还原快照的数据恢复案例
虚拟化数据恢复环境: 一台虚拟机从物理机迁移到ESXI虚拟化平台,迁移完成后做了一个快照。虚拟机上运行了一个SQL Server数据库,记录了数年的数据。 ESXI虚拟化平台上有数十台虚拟机,EXSI虚拟化平台连接了一台EVA存储,所有的虚拟机都存放在EVA存储上。 虚拟化故障: 工组人员误操作将数年前迁移完成后做的快照还原了,也就意味着虚拟机状态还原到数年前,近几年数据都被删除了。 还原快照相当于删除数据,意味着部分存储空间会被释放。为了不让这部分释放的空间被重用,需要将连接到这台存储的所有虚拟机都关掉,需要将不能长时间宕机的虚拟机迁移到别的EXSI虚拟化平台上。
88 50
|
1月前
|
安全 虚拟化 数据中心
Xshell 连接 VMware虚拟机操作 截图和使用
Xshell 连接 VMware虚拟机操作 截图和使用
49 4
|
1月前
|
Linux 虚拟化
vmware虚拟机安装2024(超详细)
vmware虚拟机安装2024(超详细)
283 6