1、整合资源完成资源整合是服务器虚拟化的主要工作,在信息时代,各行各业在发展过程中,产生的数据呈现爆炸式增长,如何实现对这些数据和资源的综合利用,是各大行业亟需解决的问题。计算机服务器虚拟化技术的研发和应用,为实现资源整合提供技术支持和应用平台。尤其是近年来,云计算技术的不断普及,集中化资源管理愈发先进,为云技术的发展和推广提供了条件,目前各大企业对计算机硬件资源的利用率不足20%,资源浪费现象依然非常严重,通过服务器虚拟化技术可在原应用保持不变的基础上,集中在某一计算机服务器中,可促使企业的物力资源调利用率大大提升,从而降低了各项硬件的投入,节约了成本。
2、低能耗在信息时代,技术革新的重中之重,也是降低资源消耗的主要途径,云计算技术备受推广,在IT界大量推广云计算技术。计算机服务器虚拟化是提升资源利用率的主要途径,也可以对能耗进行合理的管理。虚拟化技术则可以模拟出不同场景,从而实现对计算机系统中各种硬件及软件进行全面系统的检查,发现问题立即显示在界面上,提醒相关人员及时处理,从而达到降低能耗,实现绿色发展的目的。
3、降低运营成本在信息化服务商不断经营转型的背景下,集约化对成本控制提出了更高的要求,投资愈发精细化,而企业实现IT化运行的关键自傲与集中对数据中心的投资,此项内容主要涉及到两方面内容;①计算机硬件和许可服务支持的投资。②计算机系统运维承的成本投资,通过计算机服务器虚拟化技术,能充分发挥服务器应的性能。
4、应用更加平坦化通过服务器虚拟化技术可促使计算机服务器应用平台更加平坦化和透明化,在信息时代,数据中心平台逐年增加,计算机服务器的应用愈发复杂,不同平台在具体运行过程中,需要充分考虑不同 *** 作系统和中间件的层面问题。通过服务器虚拟化技术可有效解决此类问题,将应用和硬件平台相互隔离,实现了跨越平台的限制。
如需了解更多,请访问蛙云官网wayuncn
专业领域十余载,倾情奉献
一次沟通,终生陪伴
各种虚拟化技术服务器虚拟化物理资源抽象成逻辑资源一台服务器变成多台,相互独立的虚拟服务器不局限物理的界限让硬件变成动态管理的资源池提高利用率,简化系统管理桌面虚拟化将计算机的终端系统进行虚拟化达到桌面使用的安全性和灵活性任何设备时间地方都能通过网络访问属于个人的桌面系统并非本地 *** 作系统提供的桌面应用程序虚拟化将应用程序与 *** 作系统解耦为应用程序提供了一个虚拟的环境(可执行文件+运行环境)本质是把应用程序对底层的系统和硬件的依赖抽象出来,可以解决程序版本不兼容的问题也在后台的数据中心里面存储虚拟化将异构的存储资源组成一个巨大的存储池对于用户,透明化了底层的磁盘磁带,直接使用存储资源即可管理变得方便,根据需要把存储资源分配给各个应用网络虚拟化一个物理网络支持多个逻辑网络保留了网络设计中原有的层次结构、数据通道和所能提供的服务使得最终用户的体验和独享物理网络一样提高了网络资源的利用率虚拟化技术的两种类型Type1:直接在物理硬件上运行,它控制硬件并管理虚拟机,又叫裸机虚拟机管理程序Linux KVM:开源的虚拟化平台,是为x86机器开发的基于内核的虚拟机,将Linux内核转变成虚拟机管理程序,因此虚拟机可以直接访问硬件,是一种全虚拟化的裸机虚拟化技术。Vmware ESXi:直接安装在底层物理硬件上的全虚拟化技术要了解详情,请加我的号,或照片上有我的照片,我们私聊。可以免费试用的哦!!!!!!!!!
自从虚拟化提出以后,至今虚拟化技术分类有很多,方法也有很多,下面来一起了解下什么是虚拟化技术,及分类和方法。
当今发达国家在设计、制造、加工技术等方面已经达到相当自动化的水平,其产品设计普遍采用CAD、CAM、CAE和计算机仿真等手段,企业管理也已采用了科学的规范化的管理方法和手段,目前其主要从制造系统自动化方面寻找出路,为此提出了一系列新的制造系统,如敏捷制造、并行工程、计算机集成制造系统等。近些年,从虚拟机的大量部署到成功案例逐渐涌现,越来越多的制造企业开始关注虚拟化技术给优化IT基础架构,推动业务创新带来的启发,希望将其与业务相结合,找到掌握新技术、革新先进制造系统和先进制造模式的方法。虚拟化目前应用于制造业信息化主要体现在IT整合和节约成本,在其他方面很少,而实际上由于虚拟化技术的特点,其应用价值可以在远程办公、虚拟制造、工业控制等制造业相关领域都能得到体现。本文主要对虚拟化技术及其在制造业的应用现状进行综述,提出虚拟化在制造业的应用框架,为相关人员提供该领域的应用研究进展与发展趋势方面的介绍。
1 虚拟化技术
虚拟化是指为运行的程序或软件营造它所需要的执行环境,在采用虚拟化技术后,程序或软件的运行不再独享底层的物理计算资源,它只是运行在一个完全相同的物理计算资源中,而底层的影响可能与之前所运行的计算机结构完全不同。虚拟化的主要目的是对IT基础设施和资源管理方式的简化。虚拟化的消费者可以是最终用户、应用程序、 *** 作系统、访问资源或与资源交互相关的其他服务。由于虚拟化能降低消费者与资源之间的耦合程度,消费者不再依赖于资源的特定实现,因此在对消费者的管理工作影响最小的基础上,可以通过手工、半自动、或者服务级协定(SLA)等来实现对资源的管理。
11 虚拟化的分类
从虚拟化的目的来看,虚拟化技术主要分为以下几个大类:
(1)平台虚拟化(Platform Virtualization),它是针对计算机和 *** 作系统的虚拟化,又分成服务器虚拟化和桌面虚拟化。服务器虚拟化是一种通过区分资源的优先次序,并将服务器资源分配给最需要它们的工作负载的虚拟化模式,它通过减少为单个工作负载峰值而储备的资源来简化管理和提高效率。桌面虚拟化是为提高人对计算机的 *** 控力,降低计算机使用的复杂性,为用户提供更加方便适用的使用环境的一种虚拟化模式。平台虚拟化主要通过CPU虚拟化、内存虚拟化和I/O接口虚拟化来实现。
(2)资源虚拟化(Resource Virtualization),针对特定的计算资源进行的虚拟化,例如,存储虚拟化、网络资源虚拟化等。存储虚拟化是指把 *** 作系统有机地分布于若干内外存储器,两者结合成为虚拟存储器。网络资源虚拟化最典型的是网格计算,网格计算通过使用虚拟化技术来管理网络上的数据,并在逻辑上将其作为一个系统呈现给消费者,它动态地提供了符合用户和应用程序需求的资源,同时还将提供对基础设施的共享和访问的简化。当前,有些研究人员提出利用软件代理技术来实现计算网络空间资源的虚拟化,如Gaia,Net Chaser[21],Spatial Agent。
(3)应用程序虚拟化(Application Virtualization),它包括仿真、模拟、解释技术等。Java 虚拟机是典型的在应用层进行虚拟化。基于应用层的虚拟化技术,通过保存用户的个性化计算环境的配置信息,可以实现在任意计算机上重现用户的个性化计算环境。服务虚拟化是近年研究的一个热点,服务虚拟化可以使业务用户能按需快速构建应用的需求,通过服务聚合,可屏蔽服务资源使用的复杂性,使用户更易于直接将业务需求映射到虚拟化的服务资源。现代软件体系结构及其配置的复杂性阻碍了软件开发生命周期,通过在应用层建立虚拟化的模型,可以提供最佳开发测试和运行环境。
(4)表示层虚拟化。在应用上与应用程序虚拟化类似,所不同的是表示层虚拟化中的应用程序运行在服务器上,客户机只显示应用程序的UI界面和用户 *** 作。表示层虚拟化软件主要有微软的Windows 远程桌面(包括终端服务)、Citrix Metaframe Presentation Server和Symantec PcAnywhere等。
12 虚拟化的方法
通常所说的虚拟化主要是指平台虚拟化,它通过控制程序隐藏计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境。通常虚拟化可以通过指令级虚拟化和系统级虚拟化来实现。
121 指令级虚拟化方法
在指令集层次上实现虚拟化,即将某个硬件平台上的二进制代码转换为另一个平台上的二进制代码,实现不同指令集间的兼容,也被称作“二进制翻译”。二进制翻译是通过仿真来实现的,即在一个具有某种接口和功能的系统上实现另一种与之具有不同接口和功能的系统。二进制翻译的软件方式,它可以有3 种方式实现:解释执行、静态翻译、动态翻译。
近年来,最新的二进制翻译系统的研究主要在运行时编译、自适应优化方面,由于动态翻译和执行过程的时间开销主要包括四部分:即磁盘访问开销、存储访问开销、翻译和优化开销、目标代码的执行开销,所以要提高二进制翻译系统的效率主要应减少后3个方面的开销。目前典型的二进制翻译系统主要有Daisy/BOA、Crusoe、Aeries、IA-32EL、Dynamo 动态优化系统和JIT编译技术等。
122 系统级虚拟化方法
系统虚拟化是在一台物理机上虚拟出多个虚拟机。从系统架构看,虚拟机监控器(VMM)是整个虚拟机系统的核心,它承担了资源的调度、分配和管理,保证多个虚拟机能够相互隔离的同时运行多个客户 *** 作系统。系统级虚拟化要通过CPU虚拟化、内存虚拟化和I/O虚拟化实现。
(1)CPU虚拟化
CPU虚拟化为每个虚拟机提供一个或多个虚拟CPU,多个虚拟CPU分时复用物理CPU,任意时刻一个物理CPU只能被一个虚拟CPU使用。VMM必须为各虚拟CPU合理分配时间片并维护所有虚拟CPU的状态,当一个虚拟CPU的时间片用完需要切换时,要保存当前虚拟CPU的状态,将被调度的虚拟CPU的状态载入物理CPU。X86 的CPU虚拟化方法主要有:二进制代码动态翻译(dynamic binary translation)、半虚拟化(para-virtualization)和预虚拟化技术。为了弥补处理器的虚拟化缺陷,现有的虚拟机系统都采用硬件辅助虚拟化技术。CPU虚拟化需要解决的问题是:①虚拟CPU的正确运行,虚拟CPU正确运行的关键是保证虚拟机指令正确执行,各虚拟机之间不互相影响,即指令的执行结果不改变其他虚拟机的状态,目前主要是通过模拟执行和监控运行;②虚拟CPU的调度。虚拟CPU的调度是指由VMM决定当前哪一个虚拟CPU实际在物理CPU上运行,保证虚拟机之间的隔离性、虚拟CPU的性能、调度的公平。虚拟机环境的调度需求是要充分利用CPU资源、支持精确的CPU分配、性能隔离、考虑虚拟机之间的不对等、考虑虚拟机之间的依赖。常见的CPU调度算法有BVT、SEDF、CB等。
(2)内存虚拟化
VMM通常采用分块共享的思想来虚拟计算机的物理内存。VMM将机器的内存分配给各个虚拟机,并维护机器内存和虚拟机内存之间的映射关系,这些内存在虚拟机看来是一段从地址0 开始的、连续的物理地址空间。在进行内存虚拟化后,内存地址将有机器地址、伪物理地址和虚拟地址三种地址。在X86 的内存寻址机制中,VMM能够以页面为单位建立虚拟地址到机器地址的映射关系,并利用页面权限设置实现不同虚拟机间内存的隔离和保护。为了提高地址转换的性能,X86 处理器中加入TLB,缓存已经转换过的虚拟地址,在每次虚拟地址空间切换时,硬件自动完成切块TLB。为了实现虚拟地址到物理地址的高效转换,通常采取复合映射的思想,通过MMU半虚拟化和影子页表来实现页表的虚拟化。虚拟机监控器的数据不能被虚拟机访问,因此需要一种隔离机制,这种隔离机制主要通过修改客户 *** 作系统或段保护来实现。内存虚拟化的优化机制,包括按需取页、虚拟存储、内存共享等。
(3)I/O虚拟化
由于I/O设备具有异构性强,内部状态不易控制等特点,VMM系统针对I/O设备虚拟化有全虚拟化、半虚拟化、软件模拟和直接I/O访问等设计思路。近年来,更多的学者将I/O虚拟化的研究放在共享的网络设备虚拟化研究,提出将IOVM结构映射到多核心服务器平台。I/O设备除了增加吞吐量和固有的并行数据流、联系串行特性以及基于分组的协议外,还应该考虑到传统的PCI 兼容的PCI Express的硬件,建立相应的总线适配器,以弥补象单一主机无专门的驱动程序时的需要。有些研究人员专注于外存储虚拟化的研究,提出让存储虚拟化系统上的SCSI目标模拟器运行在SAN上,存储动态的目标主机的物理信息,并使用映射表方法来修改SCSI命令地址,使用位图的技术来管理可用空间等思想。存储虚拟化系统应提供诸如逻辑卷大小、各种功能、数据镜像和快照,并兼容集群主机和多个 *** 作系统。由于外存储虚拟化能全面提升存储区域网络的服务质量,而带外虚拟化与带内虚拟化相比具有性能高和扩展性好等优点,通过运用按序 *** 作、Redo日志以及日志完整性鉴别,设计基于关系模型的磁盘上虚拟化元数据组织方式,可以形成一致持久的带外虚拟化系统。
13 虚拟化的管理
虚拟化的管理主要指多虚拟机系统的管理,多虚拟机系统是指在对多计算系统资源抽象表示的基础上,按照自己的资源配置构建虚拟计算系统,其主要包括虚拟机的动态迁移技术和虚拟机的管理技术。
(1)虚拟机之间的迁移
将虚拟化作为一种手段管理现有的资源和加强其在网络计算的利用率,通过构建分布式可重构的虚拟机,必要时在物理服务器运行时迁移服务。通过移动代理技术、分布式虚拟机等提高资源利用率和服务可用性,通过寻找服务最优的策略在可重构和分布式虚拟机上迁移。为了将虚拟机运行的 *** 作系统与应用程序从一个物理结点迁移到另外一个运行结点,同时保持客户 *** 作系统和应用程序不受干扰,有些研究者提出以数据为中心的可迁移的虚拟运行环境,使得用户 *** 作环境实现异地迁移、无缝重构;
也有研究人员提出程序执行环境的动态按需配置机制。在跨物理服务器迁移虚拟机,进行自动化的虚拟服务器的管理,必须考虑高层次的服务质量要求和资源管理成本。有些研究人员提出了通过管理程序控制的方法,以支持移动IP的实时迁移虚拟机在网络上,使虚拟机实时迁移其分布计算资源,从而改善迁移性能,降低网络恢复延迟,提供高可靠性和容错。有些研究机构通过设计一个通用的硬件抽象层,实现多个虚拟机的移植,具有高效率执行环境中的移动设备。虚拟机的迁移步骤一般有启动迁移、内存迁移、冻结虚拟机、虚拟机恢复执行。
(2)虚拟机的管理
对于多虚拟机来说,一个非常重要的方面是减少用户对动态的和复杂的物理设备的管理和维护,通过软件和工具来实现任务管理。当前典型的多虚拟机服务器管理软件是Virtual Infrastructure,它通过Virtual Center管理服务器的虚拟机池,通过VMotion完成虚拟机的迁移,通过VMFS管理多虚拟机文件系统。其次,Parallax 是针对Xen 的多虚拟机管理器,它通过采用消除写共享,增强客户端的缓存等方式并利用模板映像来建立整个系统;同时使用快照(snapshot)以及写时复制(copy-on-write)机制来实现块级共享,并使用副本来保证可用性。虚拟机监控器直接控制parallax 使用的物理盘,它们运行物理设备驱动器,并给虚拟磁盘镜像VDI 的本地虚拟机提供一个普通的块接口。
2 虚拟化在制造业信息化中的应用
21 虚拟化在制造业信息化中的应用框架
当今制造业正朝着精密化、自动化、柔性化、集成化、网络化、信息化和智能化的方向发展,在这种趋势下,诞生了许多先进制造技术和先进制造模式。这些先进制造技术和先进制造模式要求现有的IT基础设施能提供更高的计算服务水平,因此在制造业信息化中,需要建立以虚拟化为导向的资源分配体系结构,提供客户驱动的服务管理和计算风险管理,维持以服务水平协议(SLA)为导向的资源分配体系。虚拟化在制造业信息化中主要用于集中IT管理、应用整合、工业控制、虚拟制造等。
处在最底层的是制造业企业的虚拟计算资源池(VirtualCluster),它由多台物理服务器(PhysicsMachine)形成,各物理服务器上运行着虚拟化软件(VMM),虚拟化软件上运行着完成各种任务需求的虚拟机,虚拟计算资源池的虚拟化管理软件(VMS)为IT环境提供集中化、 *** 作自动化、资源优化的功能,可以快速部署向导和虚拟机模板。虚拟计算资源池中的虚拟机将不同类型的客户 *** 作系统(Guest OS)和运行其上的数据层、服务层应用程序(App)封装在一起,形成一个企业协同设计制造的完整系统,为表示层的用户提供多种形态的数据处理和显示功能。在图1 的框架中,虚拟计算资源池的动态资源调度(DRS)模块可以跨越物理机不间断地监控资源利用率,并根据反映业务需要和不断变化的优先级的预定规则,在多个虚拟机之间分配可用资源。在制造业信息化中,集中IT管理、应用整合、工业控制、虚拟制造等多种应用需求都将以各种服务的形式被封装到了虚拟机中,例如制造任务协同服务、资源管理服务、信息访问服务、>时代虚拟化技术特点
时代虚拟化技术是将底层物理设备与上层 *** 作系统、软件分离的一种“去耦合”技术,利用该可以将计算、存储、网络等IT基础资源整合起来,形成共享的虚拟资源池,把逻辑资源按实际需求同时提供给各个应用。当前,时代虚拟化技术主要包含以下三类:
1服务器虚拟化
通过服务器虚拟化技术,在一台物理服务器上建立多个虚拟服务器,在每个虚拟服务器中安装单独的业务系统,来实现服务器的优化整合。即通过在软件级别上的虚拟化技术将多台独立的物理服务器以虚拟服务器方式整合到一台或几台高端服务器上。服务器虚拟化不是简单的把一台物理机分成几个虚拟机,而是还要在多台物理机上提供与保证服务器的高可用性相关的服务,包括配置、管理高可用群集,对群集及节点状态进行监控,并在发现问题时进行自动的服务器切换、服务接管等。因此,在使用虚拟化之后,还可以在不增加任何第三方软件和硬件的情况下,实现对虚拟机中的业务系统的不中断连续性保护。
2存储虚拟化
通过在存储区域网络里部署虚拟化网关来实现整个存储系统的统一出入口,为了保障存储网络链路的安全性,虚拟化网关通常部署2台或成偶数数量的多台。虚拟化网关通过管理应用服务器与存储系统之间的I/O数据流,可以管理异构存储阵列,支持异构应用服务器环境,实现异构环境下的信息整合。
通过整合企业的存储系统,能够有效提高存储容量的利用率,可以根据性能差别对存储资源进行区分和利用。对用户屏蔽存储设备的物理差异,实现了数据在网络共享的一致性,并简化管理,降低存储成本。
3网络虚拟化
通过交换机的虚拟化功能,将多个网络交换机融合在一起,构成一个整体的虚拟交换机,在网络设计时,按照结构化、模块化、扁平化的设计原则,实现高可用、易扩展、易管理的目标。在数据中心的网络核心交换机上实现虚拟化,在服务器接入区的交换机也通过虚拟化技术将两台交换机合并。
在数据中心的网络设计中,我们把整体网络拓扑采用扁平化两层组网架构,从数据中心核心区直接到服务器接入,省去了中间的汇聚层。
时代企业虚拟化技术优势
1、灵活易用
通过我们对企业数据中心业务的理解,在整体设计方案上充分考虑了新老业务系统上线、测试、部署的灵活性,并对后期虚拟机的使用和管理提供了解决方案。
2、思路清晰
根据我们对此企业用户业务的普遍要求,我们在整体设计上本着管理域和功能域清晰划分的设计思路,使得整个网络管理上更加简便,使故障排查更清晰,结合各管理区域和安全区域划分的一目了然,实现故障的准确定位,以便快速解决故障,保证了网络高可靠性和安全性。
3、结构简单、易于管理
基于项目网络拓扑结构和具体应用需求,由于整体拓扑分区明确,边界接入区域也明确,内部各个区域之间连通经策略路由来实现。
4、虚拟资源库功能分区明确
在方案中为实现快速部署新业务系统,采用了虚拟化设计并明确划分各区的业务功能,使得物理设备的计算资源得到充分发挥,并由负载均衡设备实现计算资源的合理分配。负载均衡设备通过设置多虚拟服务器,达到负载均衡设备的资源共享。存储设备通过虚拟化后的SAN,和NAS功能,实现存储资源的共享。避免重复的投资。
5、资源的共享性、经济性和可扩展性
充分发挥负载均衡与虚拟化软件的配合能力,实现计算资源的动态扩展和虚拟机灵活动态扩展。网络设计按照业务分区进行,发生单个分区的网络资源需要增加或需增加分区的个数时,能够轻易实现扩展。安全设备的部署紧随着网络资源,可随时在网络中增加和扩展。存储的方式为虚拟化存储区域网的方式,容量的增加可以很平滑的实现。
6、网络可靠性、可用性和数据安全性
坚持五个九的设计原则,保证整体系统的可靠性。通过冗余的链路,冗余的部件,HA,DRS等技术,实现系统的高可用性。同时充分利用安全设备的自身特点,从病毒防护,到安全审计等,确保数据和应用系统的安全。虚拟化技术有哪些
1、CPU虚拟化
虚拟化在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。简单说来,CPU的虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个 *** 作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
2、网络虚拟化
网络虚拟化是目前业界关于虚拟化细分领域界定最不明确,存在争议较多的一个概念。微软眼中的“网络虚拟化”,是指虚拟专用网络()。对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样。网络虚拟化可以帮助保护IT环境,防止来自Internet的威胁,同时使用户能够快速安全的访问应用程序和数据。
3、服务器虚拟化
与网络虚拟化不同,服务器虚拟化却是虚拟化技术最早细分出来的子领域。根据2006年2月ForresterResearch的调查,全球范围的企业对服务器虚拟化的认知率达到了75%。三分之一的企业已经在使用或者准备部署服务器虚拟化。这个产生于20世纪60年代的技术日益显示出其重要价值。由于服务器虚拟化发展时间长,应用广泛,所以很多时候人们几乎把服务器虚拟化等同于虚拟化。
4、存储虚拟化
随着信息业务的不断运行和发展,存储系统网络平台已经成为一个核心平台,大量高价值数据积淀下来,围绕这些数据的应用对平台的要求也越来越高,不光是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因为这个原因,虚拟化技术又一子领域——虚拟存储技术,应运而生。
5、应用虚拟化
前面几种虚拟化技术,主要还专注于对硬件平台资源的虚拟优化分配,随着IT应用的日益广泛,应用虚拟化作为虚拟化家族的明日之星登上了历史舞台。2006年7月由Forrester咨询公司在美国对各种不同行业的高层IT管理人员所做的一项研究显示,当今的机构现在将应用虚拟化当作是业务上的一个必由之路,而不是一个IT决策。据统计,全世界目前至少有超过18万个机构在利用应用虚拟化技术进行集中IT管理、加强安全性和减少总体成本。
很早之前企业可能通过购买服务器实现横向扩展,来满足业务流量不断增长的需求。
这种方式虽然在一定程度上解决了一部分问题,当时成本及其昂贵。
1节约成本
阿里很早之前随着业务爆发式增长,购买了很多高性能设备仍无法解决问题,最终决定去IOE,通过自研+云计算的方式,最终解决问题,这其中少不了虚拟化的整体解决方案。随着当前公有云、私有云的解决方案的火爆,各种虚拟化技术也层出不穷,如vmwar、docker、openstack都在底层扮演者重要角色。
2快速交付
当前软件开发讲求高效的交付,通过频繁的版本迭代来满足用户需求。如果通过传统的交付流程:采购、上架、部署、交付,中间环节耗费太多精力,最终导致产品无法及时性交付。在此虚拟化技术给快速交付带来了希望,通过可靠的技术手段,可以在秒级或分钟级实现产品的快速交付,让用户能够优先体验到产品,从而带来用户增长。
3效率提升
其实虚拟机带来的远不止这些,还有开发、运维、测试各部门之间的催化作用,带来生生效率的提升。例如通过虚拟化,运维可以给开发、测试快速部署隔离的测试环境,在上线前通过充分的测试,来避免产品bug。注意这是在不增加成本的前提下就可以做到的,这在没有虚拟化前无法想象。
以上是虚拟化给企业带来的最明显的变化,当然还远不止这些,希望我的回答对你有帮助。
虚拟化可以减少企业成本,提高资源利用率。话是这样说,但具体是如何表现,下面给你三个图,你就看得出来了:
物理机、虚拟机、容器的区别:
一、物理机
二、虚拟机
三、容器
简单说来,物理机:资源可用性比较低,当然你可以放多个应用在上面,但如果是多个人管,那管理不方便。如果不同应用要用不同 *** 作系统,要求同一个对外端口,那就无法共同一台物理机虚拟机:可以在一台物理机上建多个虚拟机,这样就比物理机方便多,当然 在虚拟机上性能稍微差一点,但目前的技术,已经做得非常好了。
容器:大家会发现,采用虚拟机技术,每个虚拟机还要跑自己的 *** 作系统,而且分配硬盘空间可能用不完,那就造成浪费,所以采用容器技术,只需要跑一个 *** 作比较重的 *** 作 *** 作系统,各个容器跑在一个很轻量的 *** 作系统上,这个可以省好多CPU、内存等资源,共享硬盘空间、网络可以充分利用。
从上面三图可以看出,要实现容器技术,可以在物理机上先建虚拟机,再建容器,虽然这多一个中间环节,性能损失一点,但比较符合大家逐步采用容器化策略。当然更好的,是在物理机上直接建容器技术
虚拟化不是IT趋势。它也不是新事物,但在许多组织中却是新事物,因为各种规模的公司都投资于虚拟化技术以获取其许多好处:节能,服务器和桌面配置,减少物理服务器,增加正常运行时间和可用性,更好的灾难恢复…而这样的例子不胜枚举。
切换到虚拟化意味着服务器上发生的工作负载没有绑定到特定的物理硬件,并且多个虚拟工作负载可以在同一台机器上同时发生。虚拟化的直接好处包括更高的数据中心服务器利用率和更低的成本,但也有更先进的优势。
服务器虚拟化已被证明是IT管理的革命性技术解决方案,它提供了物理基础架构无法实现的功能。从经济角度来看,服务器虚拟化的好处集中在节省成本上,因为它允许在单个物理服务器上安装多个应用程序。
那么,您的公司如何从虚拟基础架构中受益呢?让我们看一下前五种方式:
1降低硬件成本据说,理论上人类仅使用其大脑命令的10%;在严格的物理环境中,大多数服务器未充分利用,估计使用了5-15%的容量。当您实施虚拟化服务器/云计算方法时,由于一台物理服务器现在可以容纳多个虚拟机,因此可以提高硬件利用率。应用程序不再需要它们自己的服务器,因为物理服务器上的每个虚拟机现在都在运行它们。2011年,IDC报告称,采用服务器虚拟化策略的IT部门的硬件和软件成本降低了40%。
2更快的服务器配置和部署服务器虚拟化可在几分钟之内完成系统的配置和部署,使您可以克隆现有虚拟机,而无需花费通常的时间和成本来安装新的物理服务器。拥有虚拟环境的公司已经回过头来,不厌其烦地填写采购订单,等待服务器到达,然后等待数小时以等待 *** 作系统和应用程序完成安装。
时间和成本的实质累加,更不用说您要购买的机架和电缆的数量要增加,以适应数量不断增加的物理服务器。对于大多数企业而言,数据中心虚拟化绝对必不可少,以跟上与竞争对手保持同步所需的数据资源的爆炸式增长。
3大大提高了灾难恢复能力服务器虚拟化的最大好处也许就是能够将虚拟机快速安全地从一台服务器移到另一台服务器。由于您的公司可以轻松地创建复制站点,因此可以快速有效地备份关键数据。大多数企业虚拟化平台都包含有助于在灾难期间自动进行故障转移的软件。该软件还允许您测试灾难恢复故障转移-将其视为数据中心自己的防火计划。如果发生数据中心灾难,则您的基础架构已设置为采取适当措施快速而安全地进行恢复。尝试通过物理服务器阵列实现这一目标-现在这是一场真正的灾难。
4节省大量能源成本除了将服务器虚拟化的其他好处外,将物理服务器迁移到虚拟机还可以将它们整合到更少的物理服务器上。结果?冷却和电力成本大大降低,这意味着您不仅将“走向绿色”,而且还将有更多的绿色可用于其他地方。据VMware称,服务器整合可将能源成本降低多达80%。另一个主要优点是能够关闭服务器电源,而不会影响应用程序或用户。
5提高生产力物理服务器越少,意味着要维护和管理的物理服务器就越少。如收益2所述,过去需要花费数天或数周的时间才能完成的应用现在只需数分钟即可完成。这使您的IT员工有更多时间花在更有生产力的任务上,例如推动新的业务计划,削减开支和增加收入。
服务器虚拟化带来了积极的转变,例如降低了硬件成本,改进了服务器配置和部署,更好的灾难恢复解决方案,能源的有效和经济利用以及员工生产率的提高。尽管如此,迁移到虚拟基础架构似乎是一项艰巨的任务,而且如果没有适当的专业知识,这可能是艰巨的任务!
企业是否用服务器虚拟化,考虑企业规模,如果客户端达到500台,必然用到虚拟化。使用到虚拟化有一下几个好处:
1以VMware虚拟化为例,使用虚拟化后,对服务器的管理将更加方便。
2使用虚拟化后,可减少后期增加服务器成本,如果没有使用虚拟化,每年需新增物理服务器,考虑到每年物理服务器的增加,中心机房又要增加机柜,还要考虑未来几年企业业务增量,增加的服务器目前中心机房是否有位置放置。使用了虚拟化后,只要规划好企业每年业务需求量和增加,随时可以分配一台服务器使用,既方便也快捷,同时也不占用数据中心位置。
3后期运维。使用虚拟化后,后期运维在一个界面可以同时管理所有虚拟的服务器,同时哪台服务器出现问题,都会在界面显示。减少了运维难度。
4使用虚拟化后,如果目前服务器已经不能满足当前业务需求,需要新增,实施起来也方便点。
以上就是个人对应企业服务器虚拟化的一点点意见。
服务器虚拟化技术的优点:1、提升资源利用率:通过服务器虚拟化的整合,提高了CPU、内存、存储、网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性能不受影响。2、提高服务可用性:用户可以方便地备份虚拟机,在进行虚拟机动态迁移后,可以方便的恢复备份,或者在其他物理机上运行备份,大大提高了服务的可用性。3、加速应用部署:采用服务器虚拟化技术只需输入激活配置参数、拷贝虚拟机、启动虚拟机、激活虚拟机即可完成部署,大大缩短了部署时间,免除人工干预,降低了部署成本。4、降低运营成本:服务器虚拟化降低了IT基础设施的运营成本,令系统管理员摆脱了繁重的物理服务器、OS、中间件及兼容性的管理工作,减少人工干预频率,使管理更加强大、便捷。5、降低能源消耗:通过减少运行的物理服务器数量,减少CPU以外各单元的耗电量,达到节能减排的目的。6、提高应用兼容性:服务器虚拟化提供的封装性和隔离性使大量应用独立运行于各种环境中,管理人员不需频繁根据底层环境调整应用,只需构建一个应用版本并将其发布到虚拟化后的不同类型平台上即可。7、 动态调度资源:在服务器虚拟化技术中,数据中心从传统的单一服务器变成了统一的资源池,用户可以即时地调整虚拟机资源,同时数据中心管理程序和数据中心管理员可以灵活根据虚拟机内部资源使用情况灵活分配调整给虚拟机的资源。
虚拟化的初衷,通俗一点儿,就是:成本,money~
很好理解~
1、硬件成本
很好理解,例如:买一个服务,64G + 1T,上面部署一个项目的所有的服务,资源占用率50%,剩下的50%浪费
如果我还需要部署一个项目,那么我还需要一个服务器,也许还会出现以上的资源浪费情况~
通过虚拟化技术,可以很好的提高服务器的资源利用率,可以在一个服务器上装多个项目的虚拟机,然后在虚拟机上面运行相应服务。
2、运维成本
原来是维护多个物理机,现在维护是一个物理机上面的虚拟机,虚拟机的所有 *** 作,通过虚拟化的客户端都能很好实现,例如:虚拟机的安装 *** 作系统,部署服务等,如果是原来的物理机,你需要用U盘,甚至光驱才能安装 *** 作系统,那个 *** 作,简直不能同日而语~
在虚拟化技术的加持下,运维成本大大降低~
3、折旧成本
字面理解,不多赘述~
如果控制好以上三点,基本就把服务器的成本控制的差不多了,所以企业都在用虚拟化,其实现在的容器(docker)也是基于以上三点,再加上技术的实现,一切的初衷,都是成本~
最大化的提高硬件利用率,节约成本,做到数据可管可控。
让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力,这就是服务器的虚拟化
好处如下:
降低能耗整合服务器通过将物理服务器变成虚拟服务器减少物理服务器的数量,可以在电力和冷却成本上获得巨大节省。数据中心里服务器和相关硬件的数量,企业可以从减少能耗与制冷需求中获益,从而降低IT成本。
使用虚拟化技术大大节省了所占用的空间,减少了数据中心里服务器和相关硬件的数量。避免过多部署在实施服务器虚拟化之前,管理员通常需要额外部署一下服务器来满足不时之需。利用服务器虚拟化,可以避免这种额外部署工作。
使用虚拟化技术大大削减了采购服务器的数量,同时相对应的占用空间和能耗都变小。
通过将基础架构资源池化并打破一个应用一台物理机的藩篱,虚拟化大幅提升了资源利用率。通过减少额外硬件的采购,企业可以获得大幅成本节约。
提高可用性,带来具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境。通过将 *** 作系统和应用从服务器硬件设备隔离开,病毒与其他安全威胁无法感染其他应用。
迁移虚拟机服务器虚拟化的一大功能是支持将运行中的虚拟机从一个主机迁移到另一个主机上,而且这个过程中不会出现宕机事件。有助于虚拟化服务器实现比物理服务器更长的运行时间。
通过动态资源配置提高IT对业务的灵活适应力,支持异构 *** 作系统的整合,支持老应用的持续运行,减少迁移成本。支持异构 *** 作系统的整合,支持旧应用的持续运行,支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案。
中小企业为了降低成本,实现服务器虚拟化,可以使用云服务器,即方便,费用低,还有专人进行维护和管理。安全等级也比较高。简单来说,就是让一台服务器变成几百甚至上万台虚拟服务器,让我们不再受限于物理资源,那么 服务器虚拟化 究竟都有什么好处呢 买服务器多少钱,租云主机和服务器价格的区别。
1、数据中心降低能耗
随着数据中心走向绿色环保,公司通过整合服务器通过将物理服务器变成虚拟服务器减少物理服务器的数量,可以在电力和冷却成本上获得巨大节省。据中心里服务器和相关硬件的数量,企业可以从减少能耗与制冷需求中获益,从而降低IT成本,数据中心也达成减排目标。
2、节省数据中心空间
比起一个机柜只放几台服务器相比,使用虚拟化技术将节省海量空间,为数据中心减负。避免过多部署在实施服务器虚拟化之前,管理员通常需要额外部署一下服务器来满足不时之需。利用服务器虚拟化,可以避免这种额外部署工作。
3、节约用户成本
使用虚拟化技术大大削减了采购服务器的数量,同时相对应的占用空间和能耗都变小了,这样用户租用的费用也降低了不少。
4、提高基础架构的利用率
服务器虚拟化将基础架构集中化不仅有利于管理,还大幅提升了资源利用率。通过减少额外硬件的采购,企业可以获得大幅成本节约,供应商管理成本降低,事故率也降低了不少。
5提高数据中心稳定性
服务器虚拟化具有透明负载均衡、动态迁移、故障自动隔离、系统自动重构的高可靠服务器应用环境。通过将 *** 作系统和应用从服务器硬件设备隔离开,病毒与其他安全威胁无法感染其他应用。减少宕机事件、提高灵活性
通过动态资源配置提高IT对业务的灵活适应力,支持异构 *** 作系统的整合,支持老应用的持续运行,减少迁移成本。支持异构 *** 作系统的整合,支持老应用的持续运行,支持快速转移和复制虚拟服务器,提供一种简单便捷的灾难恢复解决方案。
服务器虚拟化又分为软件虚拟化和硬件虚拟化
IBM/HP小型机上的硬件分区就是所谓的硬件虚拟化。此处对x86架构下的虚拟化技术进行说明。从技术实现上来讲,在OS之上的虚拟化有Virtual PC、Vmware Workstation;裸金属架构的半虚拟化技术xen;裸金属架构的全虚拟化有VMware ESX、KVM等。楼主问的amazon EC2使用的是开源的Xen,Xen也是公有云中唯一被广泛使用并得到成功验证的平台。heroKu是个PaaS平台,PaaS不关心底层IaaS使用哪种虚拟化软件,故heroKu没有虚拟化软件一说。
服务器虚拟化即将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器或者多台服务器虚拟成一台服务器,不再受限于物理上的界限,让CPU、内存、磁盘、I/O等硬件变成可以动态管理的“资源池”,从而提高资源的利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力,这就是服务器虚拟化的意义。
1、整合资源完成资源整合是服务器虚拟化的主要工作,在信息时代,各行各业在发展过程中,产生的数据呈现爆炸式增长,如何实现对这些数据和资源的综合利用,是各大行业亟需解决的问题。计算机服务器虚拟化技术的研发和应用,为实现资源整合提供技术支持和应用平台。尤其是近年来,云计算技术的不断普及,集中化资源管理愈发先进,为云技术的发展和推广提供了条件,目前各大企业对计算机硬件资源的利用率不足20%,资源浪费现象依然非常严重,通过服务器虚拟化技术可在原应用保持不变的基础上,集中在某一计算机服务器中,可促使企业的物力资源调利用率大大提升,从而降低了各项硬件的投入,节约了成本。
2、低能耗在信息时代,技术革新的重中之重,也是降低资源消耗的主要途径,云计算技术备受推广,在IT界大量推广云计算技术。计算机服务器虚拟化是提升资源利用率的主要途径,也可以对能耗进行合理的管理。虚拟化技术则可以模拟出不同场景,从而实现对计算机系统中各种硬件及软件进行全面系统的检查,发现问题立即显示在界面上,提醒相关人员及时处理,从而达到降低能耗,实现绿色发展的目的。
3、降低运营成本在信息化服务商不断经营转型的背景下,集约化对成本控制提出了更高的要求,投资愈发精细化,而企业实现IT化运行的关键自傲与集中对数据中心的投资,此项内容主要涉及到两方面内容;①计算机硬件和许可服务支持的投资。②计算机系统运维承的成本投资,通过计算机服务器虚拟化技术,能充分发挥服务器应的性能。
4、应用更加平坦化通过服务器虚拟化技术可促使计算机服务器应用平台更加平坦化和透明化,在信息时代,数据中心平台逐年增加,计算机服务器的应用愈发复杂,不同平台在具体运行过程中,需要充分考虑不同 *** 作系统和中间件的层面问题。通过服务器虚拟化技术可有效解决此类问题,将应用和硬件平台相互隔离,实现了跨越平台的限制。
如需了解更多,请访问蛙云官网wayuncn
专业领域十余载,倾情奉献
一次沟通,终生陪伴
近年来,云原生 (Cloud Native)可谓是 IT 界最火的概念之一,众多互联网巨头都已经开始积极拥抱云原生。而说到云原生,我们就不得不了解本文的主角 —— 容器(container)。容器技术可谓是撑起了云原生生态的半壁江山。容器作为一种先进的虚拟化技术,已然成为了云原生时代软件开发和运维的标准基础设施,在了解它之前,我们不妨从虚拟化技术说起。
何谓虚拟化技术
1961 年 —— IBM709 机实现了分时系统
计算机历史上首个虚拟化技术实现于 1961 年,IBM709 计算机首次将 CPU 占用切分为多个极短 (1/100sec) 时间片,每一个时间片都用来执行着不同的任务。通过对这些时间片的轮询,这样就可以将一个 CPU 虚拟化或者伪装成为多个 CPU,并且让每一颗虚拟 CPU 看起来都是在同时运行的。这就是虚拟机的雏形。
容器的功能其实和虚拟机类似,无论容器还是虚拟机,其实都是在计算机不同的层面进行虚拟化,即使用逻辑来表示资源,从而摆脱物理限制的约束,提高物理资源的利用率。虚拟化技术是一个抽象又内涵丰富的概念,在不同的领域或层面有着不同的含义。
这里我们首先来粗略地讲讲计算机的层级结构。计算机系统对于大部分软件开发者来说可以分为以下层级结构:
应用程序层
函数库层
*** 作系统层
硬件层
各层级自底向上,每一层都向上提供了接口,同时每一层也只需要知道下一层的接口即可调用底层功能来实现上层 *** 作(不需要知道底层的具体运作机制)。
但由于早期计算机厂商生产出来的硬件遵循各自的标准和规范,使得 *** 作系统在不同计算机硬件之间的兼容性很差;同理,不同的软件在不同的 *** 作系统下的兼容性也很差。于是,就有开发者人为地在层与层之间创造了抽象层:
应用层
函数库层
API抽象层
*** 作系统层
硬件抽象层
硬件层
就我们探讨的层面来说,所谓虚拟化就是在上下两层之间,人为地创造出一个新的抽象层,使得上层软件可以直接运行在新的虚拟环境上。简单来说,虚拟化就是通过模访下层原有的功能模块创造接口,来“欺骗”上层,从而达到跨平台开发的目的。
综合上述理念,我们就可以重新认识如今几大广为人知的虚拟化技术:
虚拟机:存在于硬件层和 *** 作系统层间的虚拟化技术。
虚拟机通过“伪造”一个硬件抽象接口,将一个 *** 作系统以及 *** 作系统层以上的层嫁接到硬件上,实现和真实物理机几乎一样的功能。比如我们在一台 Windows 系统的电脑上使用 Android 虚拟机,就能够用这台电脑打开 Android 系统上的应用。
容器:存在于 *** 作系统层和函数库层之间的虚拟化技术。
容器通过“伪造” *** 作系统的接口,将函数库层以上的功能置于 *** 作系统上。以 Docker 为例,其就是一个基于 Linux *** 作系统的 Namespace 和 Cgroup 功能实现的隔离容器,可以模拟 *** 作系统的功能。简单来说,如果虚拟机是把整个 *** 作系统封装隔离,从而实现跨平台应用的话,那么容器则是把一个个应用单独封装隔离,从而实现跨平台应用。所以容器体积比虚拟机小很多,理论上占用资源更少。
JVM:存在于函数库层和应用程序之间的虚拟化技术。
Java 虚拟机同样具有跨平台特性,所谓跨平台特性实际上也就是虚拟化的功劳。我们知道 Java 语言是调用 *** 作系统函数库的,JVM 就是在应用层与函数库层之间建立一个抽象层,对下通过不同的版本适应不同的 *** 作系统函数库,对上提供统一的运行环境交给程序和开发者,使开发者能够调用不同 *** 作系统的函数库。
在大致理解了虚拟化技术之后,接下来我们就可以来了解容器的诞生历史。虽然容器概念是在 Docker 出现以后才开始在全球范围内火起来的,但在 Docker 之前,就已经有无数先驱在探索这一极具前瞻性的虚拟化技术。
容器的前身 “Jail”
1979 年 —— 贝尔实验室发明 chroot
容器主要的特性之一就是进程隔离。早在 1979 年,贝尔实验室在 Unix V7 的开发过程中,发现当一个系统软件编译和安装完成后,整个测试环境的变量就会发生改变,如果要进行下一次构建、安装和测试,就必须重新搭建和配置测试环境。要知道在那个年代,一块 64K 的内存条就要卖 419 美元,“快速销毁和重建基础设施”的成本实在是太高了。
开发者们开始思考,能否在现有的 *** 作系统环境下,隔离出一个用来重构和测试软件的独立环境?于是,一个叫做 chroot(Change Root)的系统调用功能就此诞生。
chroot 可以重定向进程及其子进程的 root 目录到文件系统上的新位置,也就是说使用它可以分离每个进程的文件访问权限,使得该进程无法接触到外面的文件,因此这个被隔离出来的新环境也得到了一个非常形象的命名,叫做 Chroot Jail (监狱)。之后只要把需要的系统文件一并拷贝到 Chroot Jail 中,就能够实现软件重构和测试。这项进步开启了进程隔离的大门,为 Unix 提供了一种简单的系统隔离功能,尤其是 jail 的思路为容器技术的发展奠定了基础。但是此时 chroot 的隔离功能仅限于文件系统,进程和网络空间并没有得到相应的处理。
进入21世纪,此时的虚拟机(VM)技术已经相对成熟,人们可以通过虚拟机技术实现跨 *** 作系统的开发。但由于 VM 需要对整个 *** 作系统进行封装隔离,占用资源很大,在生产环境中显得太过于笨重。于是人们开始追求一种更加轻便的虚拟化技术,众多基于 chroot 扩展实现的进程隔离技术陆续诞生。
2000 年 —— FreeBSD 推出 FreeBSD Jail
在 chroot 诞生 21 年后,FreeBSD 40 版本推出了一套微型主机环境共享系统 FreeBSD Jail,将 chroot 已有的机制进行了扩展。在 FreeBSD Jail 中,程序除了有自己的文件系统以外,还有独立的进程和网络空间,Jail 中的进程既不能访问也不能看到 Jail 之外的文件、进程和网络资源。
2001 年 —— Linux VServer 诞生
2001年,Linux 内核新增 Linux VServer(虚拟服务器),为 Linux 系统提供虚拟化功能。Linux VServer 采取的也是一种 jail 机制,它能够划分计算机系统上的文件系统、网络地址和内存,并允许一次运行多个虚拟单元。
2004 年 —— SUN 发布 Solaris Containers
该技术同样由 chroot 进一步发展而来。2004 年 2 月,SUN 发布类 Unix 系统 Solaris 的 10 beta 版,新增 *** 作系统虚拟化功能 Container,并在之后的 Solaris 10 正式版中完善。Solaris Containers 支持 x86 和 SPARC 系统,SUN 创造了一个 zone 功能与 Container 配合使用,前者是一个单一 *** 作系统中完全隔离的虚拟服务器,由系统资源控制和 zones 提供的边界分离实现进程隔离。
2005 年 —— OpenVZ 诞生
类似于 Solaris Containers,它通过对 Linux 内核进行补丁来提供虚拟化、隔离、资源管理和状态检查 checkpointing。每个 OpenVZ 容器都有一套隔离的文件系统、用户及用户组、进程树、网络、设备和 IPC 对象。
这个时期的进程隔离技术大多以 Jail 模式为核心,基本实现了进程相关资源的隔离 *** 作,但由于此时的生产开发仍未有相应的使用场景,这一技术始终被局限在了小众而有限的世界里。
就在此时,一种名为“云”的新技术正悄然萌发……
“云”的诞生
2003 年至 2006 年间,Google 公司陆续发布了 3 篇产品设计论文,从计算方式到存储方式,开创性地提出了分布式计算架构,奠定了大数据计算技术的基础。在此基础上,Google 颠覆性地提出“Google 101”计划,并正式创造“云”的概念。一时间,“云计算”、“云存储”等全新词汇轰动全球。随后,亚马逊、IBM 等行业巨头也陆续宣布各自的“云”计划,宣告“云”技术时代的来临。
也是从这时期开始,进程隔离技术进入了一个更高级的阶段。在 Google 提出的云计算框架下,被隔离的进程不仅仅是一个与外界隔绝但本身却巍然不动的 Jail,它们更需要像一个个轻便的容器,除了能够与外界隔离之外,还要能够被控制与调配,从而实现分布式应用场景下的跨平台、高可用、可扩展等特性。
2006 年 —— Google 推出 Process Containers,后更名为 Cgroups
Process Container 是 Google 工程师眼中“容器”技术的雏形,用来对一组进程进行限制、记账、隔离资源(CPU、内存、磁盘 I/O、网络等)。这与前面提到的进程隔离技术的目标其实是一致的。由于技术更加成熟,Process Container 在 2006 年正式推出后,第二年就进入了 Linux 内核主干,并正式更名为 Cgroups,标志着 Linux 阵营中“容器”的概念开始被重新审视和实现。
2008 年 —— Linux 容器工具 LXC 诞生
在 2008 年,通过将 Cgroups 的资源管理能力和 Linux Namespace(命名空间)的视图隔离能力组合在一起,一项完整的容器技术 LXC(Linux Container)出现在了 Linux 内核中,这就是如今被广泛应用的容器技术的实现基础。我们知道,一个进程可以调用它所在物理机上的所有资源,这样一来就会挤占其它进程的可用资源,为了限制这样的情况,Linux 内核开发者提供了一种特性,进程在一个 Cgroup 中运行的情况与在一个命名空间中类似,但是 Cgroup 可以限制该进程可用的资源。尽管 LXC 提供给用户的能力跟前面提到的各种 Jails 以及 OpenVZ 等早期 Linux 沙箱技术是非常相似的,但伴随着各种 Linux 发行版开始迅速占领商用服务器市场,包括 Google 在内的众多云计算先锋厂商得以充分活用这一早期容器技术,让 LXC 在云计算领域获得了远超前辈的发展空间 。
同年,Google 基于 LXC 推出首款应用托管平台 GAE (Google App Engine),首次把开发平台当做一种服务来提供。GAE 是一种分布式平台服务,Google 通过虚拟化技术为用户提供开发环境、服务器平台、硬件资源等服务,用户可以在平台基础上定制开发自己的应用程序并通过 Google 的服务器和互联网资源进行分发,大大降低了用户自身的硬件要求。
值得一提的是,Google 在 GAE 中使用了一个能够对 LXC 进行编排和调度的工具 —— Borg (Kubernetes 的前身)。Borg 是 Google 内部使用的大规模集群管理系统,可以承载十万级的任务、数千个不同的应用、同时管理数万台机器。Borg 通过权限管理、资源共享、性能隔离等来达到高资源利用率。它能够支持高可用应用,并通过调度策略减少出现故障的概率,提供了任务描述语言、实时任务监控、分析工具等。如果说一个个隔离的容器是集装箱,那么 Borg 可以说是最早的港口系统,而 LXC + Borg 就是最早的容器编排框架。此时,容器已经不再是一种单纯的进程隔离功能,而是一种灵活、轻便的程序封装模式。
2011 年 —— Cloud Foundry 推出 Warden
Cloud Foundry 是知名云服务供应商 VMware 在 2009 年推出的一个云平台,也是业内首个正式定义 PaaS (平台即服务)模式的项目,“PaaS 项目通过对应用的直接管理、编排和调度让开发者专注于业务逻辑而非基础设施”,以及“PaaS 项目通过容器技术来封装和启动应用”等理念都出自 Cloud Foundry。Warden 是 Cloud Foundry 核心部分的资源管理容器,它最开始是一个 LXC 的封装,后来重构成了直接对 Cgroups 以及 Linux Namespace *** 作的架构。
随着“云”服务市场的不断开拓,各种 PaaS 项目陆续出现,容器技术也迎来了一个爆发式增长的时代,一大批围绕容器技术进行的创业项目陆续涌现。当然,后来的故事很多人都知道了,一家叫 Docker 的创业公司横空出世,让 Docker 几乎成为了“容器”的代名词。
Docker 横空出世
2013 年 —— Docker 诞生
Docker 最初是一个叫做 dotCloud 的 PaaS 服务公司的内部项目,后来该公司改名为 Docker。Docker 在初期与 Warden 类似,使用的也是 LXC ,之后才开始采用自己开发的 libcontainer 来替代 LXC 。与其他只做容器的项目不同的是,Docker 引入了一整套管理容器的生态系统,这包括高效、分层的容器镜像模型、全局和本地的容器注册库、清晰的 REST API、命令行等等。
Docker 本身其实也是属于 LXC 的一种封装,提供简单易用的容器使用接口。它最大的特性就是引入了容器镜像。Docker 通过容器镜像,将应用程序与运行该程序需要的环境,打包放在一个文件里面。运行这个文件,就会生成一个虚拟容器。
更为重要的是,Docker 项目还采用了 Git 的思路 —— 在容器镜像的制作上引入了“层”的概念。基于不同的“层”,容器可以加入不同的信息,使其可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。通过制作 Docker 镜像,开发者可以通过 DockerHub 这样的镜像托管仓库,把软件直接进行分发。
也就是说,Docker 的诞生不仅解决了软件开发层面的容器化问题,还一并解决了软件分发环节的问题,为“云”时代的软件生命周期流程提供了一套完整的解决方案。
很快,Docker 在业内名声大噪,被很多公司选为云计算基础设施建设的标准,容器化技术也成为业内最炙手可热的前沿技术,围绕容器的生态建设风风火火地开始了。
容器江湖之争
一项新技术的兴起同时也带来了一片新的市场,一场关于容器的蓝海之争也在所难免。
2013 年 —— CoreOS 发布
在 Docker 爆火后,同年年末,CoreOS 应运而生。CoreOS 是一个基于 Linux 内核的轻量级 *** 作系统,专为云计算时代计算机集群的基础设施建设而设计,拥有自动化、易部署、安全可靠、规模化等特性。其在当时有一个非常显眼的标签:专为容器设计的 *** 作系统。
借着 Docker 的东风,CoreOS 迅速在云计算领域蹿红,一时间,Docker + CoreOS 成为业内容器部署的黄金搭档。同时,CoreOS 也为 Docker 的推广与社区建设做出了巨大的贡献。
然而,日渐壮大的 Docker 似乎有着更大的“野心”。不甘于只做“一种简单的基础单元”的 Docker,自行开发了一系列相关的容器组件,同时收购了一些容器化技术的公司,开始打造属于自己的容器生态平台。显然,这对于 CoreOS 来说形成了直接的竞争关系。
2014 年 —— CoreOS 发布开源容器引擎 Rocket
2014 年末,CoreOS 推出了自己的容器引擎 Rocket (简称 rkt),试图与 Docker 分庭抗礼。rkt 和 Docker 类似,都能帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。rkt 和 Docker 不同的地方在于,rkt 没有 Docker 那些为企业用户提供的“友好功能”,比如云服务加速工具、集群系统等。反过来说,rkt 想做的,是一个更纯粹的业界标准。
2014 年 —— Google 推出开源的容器编排引擎 Kubernetes
为了适应混合云场景下大规模集群的容器部署、管理等问题,Google 在 2014 年 6 月推出了容器集群管理系统 Kubernetes (简称 K8S)。K8S 来源于我们前面提到的 Borg,拥有在混合云场景的生产环境下对容器进行管理、编排的功能。Kubernetes 在容器的基础上引入了 Pod 功能,这个功能可以让不同容器之间互相通信,实现容器的分组调配。
得益于 Google 在大规模集群基础设施建设的强大积累,脱胎于 Borg 的 K8S 很快成为了行业的标准应用,堪称容器编排的必备工具。而作为容器生态圈举足轻重的一员,Google 在 Docker 与 rkt 的容器之争中站在了 CoreOS 一边,并将 K8S 支持 rkt 作为一个重要里程碑。
2015 年 —— Docker 推出容器集群管理工具 Docker Swarm
作为回应,Docker 公司在 2015 年发布的 Docker 112 版本中也开始加入了一个容器集群管理工具 Docker swarm 。
随后,Google 于 2015 年 4 月领投 CoreOS 1200 万美元, 并与 CoreOS 合作发布了首个企业发行版的 Kubernetes —— Tectonic 。从此,容器江湖分为两大阵营,Google 派系和 Docker 派系。
两大派系的竞争愈演愈烈,逐渐延伸到行业标准的建立之争。
2015 年 6 月 —— Docker 带头成立 OCI
Docker 联合 Linux 基金会成立 OCI (Open Container Initiative)组织,旨在“制定并维护容器镜像格式和容器运行时的正式规范(“OCI Specifications”),围绕容器格式和运行时制定一个开放的工业化标准。
2015 年 7 月 —— Google 带头成立 CNCF
而战略目标聚焦于“云”的 Google 在同年 7 月也联合 Linux 基金会成立 CNCF (Cloud Native Computing Foundation)云原生计算基金会,并将 Kubernetes 作为首个编入 CNCF 管理体系的开源项目,旨在“构建云原生计算 —— 一种围绕着微服务、容器和应用动态调度的、以基础设施为中心的架构,并促进其广泛使用”。
这两大围绕容器相关开源项目建立的开源基金会为推动日后的云原生发展发挥了重要的作用,二者相辅相成,制定了一系列行业事实标准,成为当下最为活跃的开源组织。
Kubernetes 生态一统江湖
虽然这些年来 Docker 一直力压 rkt,成为当之无愧的容器一哥,但作为一个庞大的容器技术生态来说,Docker 生态还是在后来的容器编排之争中败给了 Google 的 Kubernetes 。
随着越来越多的开发者使用 Docker 来部署容器,编排平台的重要性日益突出。在 Docker 流行之后,一大批开源项目和专有平台陆续出现,以解决容器编排的问题。Mesos、Docker Swarm 和 Kubernetes 等均提供了不同的抽象来管理容器。这一时期,对于软件开发者来说,选择容器编排平台就像是一场豪赌,因为一旦选择的平台在以后的竞争中败下阵来,就意味着接下来开发的东西在未来将失去市场。就像当初 Android、iOS 和 WP 的手机系统之争一样,只有胜利者才能获得更大的市场前景,失败者甚至会销声匿迹。容器编排平台之争就此拉开帷幕。
2016 年 —— CRI-O 诞生
2016 年,Kubernetes 项目推出了 CRI (容器运行时接口),这个插件接口让 kubelet(一种用来创建 pod、启动容器的集群节点代理)能够使用不同的、符合 OCI 的容器运行时环境,而不需要重新编译 Kubernetes。基于 CRI ,一个名为 CRI-O 的开源项目诞生,旨在为 Kubernetes 提供一种轻量级运行时环境。
CRI-O 可以让开发者直接从 Kubernetes 来运行容器,这意味着 Kubernetes 可以不依赖于传统的容器引擎(比如 Docker ),也能够管理容器化工作负载。这样一来,在 Kubernetes 平台上,只要容器符合 OCI 标准(不一定得是 Docker),CRI-O 就可以运行它,让容器回归其最基本的功能 —— 能够封装并运行云原生程序即可。
同时,CRI-O 的出现让使用容器技术进行软件管理和运维的人们发现,相对于 Docker 本身的标准容器引擎, Kubernetes 技术栈(比如编排系统、 CRI 和 CRI-O )更适合用来管理复杂的生产环境。可以说,CRI-O 将容器编排工具放在了容器技术栈的重要位置,从而降低了容器引擎的重要性。
在 K8S 顺利抢占先机的情况下,Docker 在推广自己的容器编排平台 Docker Swarm 时反而犯下了错误。2016 年底,业内曝出 Docker 为了更好地适配 Swarm,将有可能改变 Docker 标准的传言。这让许多开发者在平台的选择上更倾向于与市场兼容性更强的 Kubernetes 。
因此,在进入 2017 年之后,更多的厂商愿意把宝压在 K8S 上,投入到 K8S 相关生态的建设中来。容器编排之争以 Google 阵营的胜利告一段落。与此同时,以 K8S 为核心的 CNCF 也开始迅猛发展,成为当下最火的开源项目基金会。这两年包括阿里云、腾讯、百度等中国科技企业也陆续加入 CNCF ,全面拥抱容器技术与云原生。
结语
从数十年前在实验室里对进程隔离功能的探索,再到如今遍布生产环境的云原生基础设施建设,可以说容器技术凝聚了几代开发者的心血,才从一个小小的集装箱发展到一个大型的现代化港口。可以预见的是,从现在到未来很长一段时间里,容器技术都将是软件开发和运维的重要基础设施。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)