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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 如今,虚拟化技术在数据中心内已经生根发芽,应用非常普及,无论是在服务器、还是网络、存储等设备中都是如此。

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


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


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


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


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

相关文章
|
2月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
13天前
|
存储 运维 数据挖掘
虚拟化数据恢复—误还原快照导致虚拟机上数据库丢失的数据恢复案例
虚拟化数据恢复环境&故障: vmfs文件系统,存储的数据是SqlServer数据库及其他办公文件。 工作人员误将快照还原,导致了SqlServer数据库数据的丢失,需要恢复原来的SqlServer数据库文件。
49 22
|
1月前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
122 12
|
2月前
|
存储 数据挖掘 数据库
虚拟化数据恢复—VMFS简介&误删除虚拟机的数据恢复案例
物理区:物理上连续的磁盘空间,即通常意义上的分区。 本地区:VMFS管理的物理区分为保留区和本地区,前面一部分是保留区,后面部分是本地区。本地区又分为元文件区和数据区。 元文件:与NTFS的元文件类似,属于FS的管理用数据。VMFS有6个元文件:.VH.SF/.FBB.SF/.FDC.SF/.SBC.SF/.PBC.SF/.PB2.SF。 元文件区:6个元文件占用的所有空间,在本地区的前面部分。 数据区:用于存放文件数据。 datastore:在ESX服务器上看到的VMFS存储空间。 LV:logical volume,所指的范围其实和本地区一样,即虚拟化卷。 LVM逻辑卷组:用来管理跨dis
|
2月前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
75 4
|
3月前
|
运维 Kubernetes Docker
深入理解容器化技术:Docker与Kubernetes的协同工作
深入理解容器化技术:Docker与Kubernetes的协同工作
103 14
|
2月前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
88 4
|
2月前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
128 3
|
3月前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
110 1
|
2月前
|
人工智能 Kubernetes Cloud Native
荣获2024年AI Cloud Native典型案例,阿里云容器产品技术能力获认可
2024全球数字经济大会云·AI·计算创新发展大会,阿里云容器服务团队携手客户,荣获“2024年AI Cloud Native典型案例”。