阅读更多

0顶
1踩

互联网

转载新闻 虚拟化 VS 容器化 哪家强?

2015-04-23 09:41 by 副主编 mengyidan1988 评论(0) 有6865人浏览
【编者的话】以 Docker 为代表的容器技术一度被认为是虚拟化技术的替代品,然而这两种技术之间并不是不可调和的。作者分别列举了容器技术以及虚拟化技术的优缺点,并提出将两者结合取长补短的解决方案。

容器为应用程序提供了隔离的运行空间:每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。为了能达到这种效果,容器技术使用了一系列的系统级别的机制诸如利用Linux namespaces来进行空间隔离,通过文件系统的挂载点来决定容器可以访问哪些文件,通过cgroups来确定每个容器可以利用多少资源。此外容器之间共享同一个系统内核,这样当同一个库被多个容器使用时,内存的使用效率会得到提升。

对于系统虚拟化技术来说,虚拟层为用户提供了一个完整的虚拟机:包括内核在内的一个完整的系统镜像。CPU虚拟化技术可以为每个用户提供一个独享且和其他用户隔离的系统环境,虚拟层可以为每个用户分配虚拟化后的CPU、内存和IO设备资源。
哪家强?

通常来说,这取决于你的需求。如果你只是希望将应用运行的实例进行隔离,那么对于管理应用运行环境、启动应用实例以及控制资源开销方面容器将是一个极为高效的工具。像Docker这一类的容器,其设计原则就是为了解决这种应用环境的修改以及应用部署的问题,并且这十分符合DevOps理念(你可能希望知道更多关于DevOps理念的内容)。

如果你从服务器虚拟化的角度来寻找最好的环境隔离方案,那么系统级的虚拟化是更好的方案:和容器相比,邻居租户(Noisy neighbours )对系统的影响在虚拟化的方案下将不是一个问题。尽管现在很多容器都在专注于提高其隔离能力,但是虚拟机的隔离还是要优于容器。从物理服务器过渡到虚拟服务器是一个很自然的过程,并且现在针对虚拟服务器的管理的生态系统也很完善。

在z系统中,Linux具有很好的伸缩性(运行容器),但是z是一个极度高效虚拟化(运行虚拟服务器)的平台,它继承了整个系统架构。尽管没有精确的测量,将虚拟化和容器技术相结合,在z系统中会比其他平台要容易。

还有第三条路:两者兼而有之。

有多种方式可以将系统虚拟化及容器技术相结合:

1.一个容器中运行一个虚拟机



Docker在部署容器方面十分灵活。其中一个选择(execution driver)是利用KVM镜像。这样就可以在最好的隔离性情况下发挥DevOps所擅长的使用Docker各种方式。但是这也付出了需要在启动容器时启动整个操作系统实例的代价。这也就意味着较长的启动时间以及低效的内存使用,只能通过内核共享内存(KSM)来提升内存利用率。这种方法效果和效率都不理想,但是这是一个好的开始。

2.一个虚拟机中运行一个容器



与之相反的,你一可以在虚拟机中启动一个容器。这里的虚拟机并不是由Docker控制,而是通过现有的虚拟化管理设施来控制。一旦系统实例启动,就可以通过Docker来运行容器而武器其他特殊的设置。同时,由于不同容器运行在不同的虚拟机上,容器之间也能有很好的隔离。而内存的使用率需要通过虚拟层的内存共享来提升。

2b.一个虚拟机中运行多个容器



对于多租户的情况,可以用另一种形式在虚拟机中运行Docker。这种情况下,我们假设在不同租户的容器之间需要强隔离,而对于同一用户的不同容器,简单的Linux容器隔离已经足够。这样我们就可以在减少虚拟机个数的情况下保证租户之间的隔离,同时可以利用Docker带来的各种便利。

总结来说:需要根据实际需求进行选择。

原文链接:Virtualization vs. Containerization?
  • 大小: 68.8 KB
  • 大小: 70.2 KB
  • 大小: 80.1 KB
0
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 容器与虚拟化的完美融合:VMwareProjectPacific

    对于IT管理员来说,ProjectPacific仍旧是vSphere,但是添加了以应用为边界的整体管理的能力,而不是单独管理许多个独立的组成应用的虚拟机或者容器。ProjectPacific可以利用企业现有的SDDC投资、人员技能和工具,...

  • 云计算虚拟化技术和容器技术详解

    虚拟化技术是云计算的重要技术,主要用于物理资源的池化,从而可以弹性地分配给用户。物理资源包括服务器、网络和存储。但是计算资源的池化不一定要用虚拟化技术,金属裸机也能池化,比如IBM的Softlayer就是直接使用...

  • 虚拟化与容器技术

    虚拟化与容器技术

  • Docker容器与虚拟化技术——部署KVM虚拟化平台

    (1)什么是虚拟化把硬件资源从物理方式转变为逻辑方式,打破原有物理结构,使用户可以灵活管理这些资源,并且允许1台物理机上同时运行多个操作系统,以实现资源利用率最大化和灵活管理的技术(2)虚拟化层①X86平台指令...

  • Android容器和虚拟化.pdf

    1. App多开技术介绍 2.VA变种,单一APK容器(移除插桩、server hook) 3.套壳容器 4.重打包,append MultiDex 5.重打包,修改DEX入口代码 6.痕迹对抗

  • 虚拟化和容器化

    虚拟化和容器化的概念 什么是虚拟化、容器化 案例 为什么要虚拟化、容器化? 二. 虚拟化实现方式 应用程序执行环境分层 虚拟化常见类别 虚拟机 容器 JVM 之类的虚拟机 三. 常见虚拟化实现 主机虚拟化(虚拟机)实现 ...

  • 服务器虚拟化组件有哪些?

    在云端,虚拟化属于基础设施层,具体包括服务器虚拟化、网络虚拟化和存储虚拟化,虚拟的目的是为了池化物理资源。在服务器虚拟化领域,VMware(现已被 EMC 收购)已耕耘了很多年,把持了大部分的市场。后来者微软、...

  • LXC容器虚拟化技术研究.docx

    LXC容器虚拟化技术研究性文档。

  • Docker技术 ( 容器虚拟化技术 )

    Docker虚拟化容器技术 第一章 Docker简介诞生背景Docker 介绍虚拟机技术容器虚拟化技术官方网址第二章 Docker安装前提条件安装DockerDocker底层原理Docker结构图工作原理Docker为什么比VM快第三章 Docker常用命令...

  • 虚拟化容器docker视频.zip

    03-容器和kvm虚拟化的区别.mp4 04-docker的安装和镜像管理.mp4 05-docker的容器日常命令.mp4 docker-day2 01-docker容器的网络访问.mp4 02-docker容器的端口映射.mp4 03-docker的数据卷.mp4 04-手动制作docker镜像...

  • Docker 容器虚拟化的实用技巧总结

    主要介绍了Docker 容器虚拟化的实用技巧总结的相关资料,需要的朋友可以参考下

  • 哪一种服务器最适合虚拟化技术,服务器虚拟化和容器技术,究竟哪种更有优势?...

    作者:智业云日期:2019-06-26热度:全虚拟化的系统分配到的是独有的一组资源有更强的隔离性,但是更加重了对总资源的占用和依赖程度。而容器的隔离性更弱,但是它们更加轻量,即使在有限的资源下,也可以毫不费力地...

  • Docker技术(容器虚拟化技术)

    诞生背景 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。 作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网...Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。

  • 基于java的贝儿米幼儿教育管理系统答辩PPT.pptx

    基于java的贝儿米幼儿教育管理系统答辩PPT.pptx

  • 课设毕设基于SpringBoot+Vue的养老院管理系统的设计与实现源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

  • 基于java的消防物资存储系统答辩PPT.pptx

    基于java的消防物资存储系统答辩PPT.pptx

  • 【java毕业设计】饮食营养管理信息系统源码(springboot+vue+mysql+说明文档).zip

    项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse

Global site tag (gtag.js) - Google Analytics