三种主要的虚拟化架构类型
- 格式:doc
- 大小:164.50 KB
- 文档页数:5
操作系统虚拟化技术操作系统虚拟化技术是一种基于硬件虚拟化技术之上的软件层虚拟化技术,它允许在一个物理主机上运行多个隔离的虚拟操作系统实例。
这些虚拟操作系统实例具有独立的资源管理、独立的系统调用和独立的进程空间,彼此之间相互隔离,互不影响。
操作系统虚拟化技术主要包括以下几种:1.容器虚拟化(Container Virtualization)2.操作系统级虚拟化(OS-Level Virtualization)3.全虚拟化(Full Virtualization)4.硬件虚拟化(Hardware-Assisted Virtualization)二、容器虚拟化容器虚拟化是基于操作系统内核实现的轻量级虚拟化技术。
它通过内核隔离机制(如cgroups和namespaces)实现资源的隔离和分配。
容器之间共享宿主机的内核,因此启动速度快,资源消耗低。
容器虚拟化技术的主要代表有Docker、Kubernetes等。
三、操作系统级虚拟化操作系统级虚拟化技术是将一个操作系统的内核进行虚拟化,使得多个虚拟操作系统实例可以在一个物理主机上运行。
这些虚拟操作系统实例具有独立的系统调用和独立的进程空间,但共享物理机的内核和其他硬件资源。
操作系统级虚拟化技术的主要代表有OpenVZ、LXC等。
四、全虚拟化全虚拟化技术是在虚拟机监控器(Virtual Machine Monitor,VMM)的基础上实现的虚拟化技术。
VMM负责模拟硬件资源,并将这些资源提供给虚拟机。
全虚拟化技术可以支持不同类型的操作系统,但虚拟机之间的资源隔离程度较低,性能开销较大。
全虚拟化技术的主要代表有VMware、VirtualBox等。
五、硬件虚拟化硬件虚拟化技术是利用处理器和其他硬件设备的虚拟化支持,实现虚拟化的一种高效方法。
通过硬件虚拟化技术,虚拟机可以在不牺牲性能的前提下,实现对不同操作系统的支持。
硬件虚拟化技术的主要代表有Intel VT、AMD-V等。
常用的虚拟化体系结构1. 完全虚拟化(Full Virtualization)完全虚拟化是一种将整个操作系统以及其运行的应用程序都虚拟化的方法。
在完全虚拟化中,虚拟机(Virtual Machine,VM)在物理硬件上运行,并模拟出一个完整的计算环境,包括处理器、内存、存储和网络等资源。
常用的完全虚拟化软件包括VMware和VirtualBox等。
2. 半虚拟化(Para-virtualization)半虚拟化是一种相对于完全虚拟化更轻量级的虚拟化方法。
在半虚拟化中,虚拟机需要对应用程序进行修改以与虚拟化层进行通信。
这种方式减少了虚拟化层和硬件之间的开销,提高了性能。
常用的半虚拟化软件包括Xen和KVM等。
3. 化虚拟化(Containerization)化虚拟化是一种将应用程序及其依赖项隔离在独立的中的虚拟化方法。
与完全虚拟化和半虚拟化不同,化虚拟化不需要模拟整个操作系统,而是共享宿主操作系统的内核,因此更加轻量级。
常用的化虚拟化技术包括Docker和Kubernetes等。
4. 硬件辅助虚拟化(Hardware-assisted Virtualization)硬件辅助虚拟化是一种利用处理器提供的虚拟化扩展指令集来加速虚拟化性能的技术。
这些指令集可以提供更低的虚拟化开销和更高的性能。
常用的硬件辅助虚拟化技术包括Intel的VT-x和AMD的AMD-V等。
虚拟化技术在云计算、服务器虚拟化和化等领域有着广泛的应用。
选择适合的虚拟化体系结构可以根据需求和目标来确定,以提高资源利用率、简化管理和提升性能效果。
以上是常用的虚拟化体系结构的简要介绍。
在实际应用中,可根据具体情况选择适合的虚拟化技术和体系结构。
简述虚拟化体系结构虚拟化技术是一种将物理资源通过软件隔离、抽象和重组,实现多个虚拟环境共享物理资源的技术。
虚拟化技术可以提高硬件资源的利用率,降低硬件成本,并且可以方便地部署和管理多个应用、操作系统和服务。
虚拟化体系结构是实现虚拟化技术的软件架构,它由多个层次组成,每个层次都有不同的功能和作用。
下面将详细介绍虚拟化体系结构的各个层次。
硬件层虚拟化技术的基础是硬件资源,包括处理器、内存、存储和网络等。
虚拟化技术需要通过硬件层来隔离和抽象物理资源,并为虚拟机提供虚拟的硬件环境。
在硬件层,虚拟化技术通过使用处理器的虚拟化扩展(如Intel VT 和AMD-V)来实现虚拟机的隔离和管理。
虚拟化技术还需要对内存、存储和网络进行虚拟化,以提供虚拟机所需的资源。
虚拟机监视器虚拟机监视器(VMM),也称为虚拟机管理程序(VMP),是虚拟化技术的核心组件,它负责管理和控制虚拟机。
虚拟机监视器在硬件层之上,通过使用处理器的虚拟化扩展来创建和管理虚拟机。
虚拟机监视器有两种实现方式,一种是基于裸机的实现方式,如VMware ESXi和Microsoft Hyper-V。
另一种是基于操作系统的实现方式,如KVM和Xen。
基于裸机的实现方式通常具有更好的性能和安全性,但需要更高的硬件支持。
虚拟机虚拟机是虚拟化技术的核心概念,它是通过虚拟化技术创建的一个软件环境,可以在其中运行一个或多个操作系统和应用程序。
虚拟机在虚拟机监视器的控制下,可以对物理资源进行隔离、抽象和重组。
虚拟机可以分为全虚拟化和半虚拟化两种类型。
全虚拟化是指虚拟机可以完全模拟物理硬件环境,不需要对应用程序进行修改,如VMware Workstation和VirtualBox。
半虚拟化是指虚拟机需要对应用程序进行修改,以适应虚拟化环境,如Xen和KVM。
虚拟设备虚拟设备是虚拟机的关键组成部分,它们是虚拟机对物理设备的一种抽象。
虚拟设备包括虚拟处理器、虚拟内存、虚拟存储和虚拟网络等。
虚拟化技术分类
1、硬件虚拟化:虚拟机管理系统(VMM)是将应用程序在虚拟机上运行,模拟物理计算机的那些功能,如处理器,内存,存储和网络适配器,常被称作虚拟机监视器(VMM)。
2、软件虚拟化:软件虚拟化不需要特殊的硬件协处理器,它可以通过模拟特定的计算机环境或操作系统,来实现虚拟机的堆叠。
它提供一种可以在多个操作系统上(如Windows,Linux,Mac OS X和Solaris)运行应用程序的多虚拟化平台。
3、存储虚拟化:存储虚拟化技术将物理存储设备完全虚拟化,使应用程序可以操纵它们,而无需关心它们的真实信息,从而实现更高的性能和可靠性。
4、应用虚拟化:应用虚拟化能够将整个系统收编到单一的容器中,作为单一的软件包部署。
它使得操作系统和应用程序的构建和部署,变得更加容易,避免操作系统之间应用程序不兼容的问题,跨操作系统迁移应用程序也变得容易。
简述虚拟化技术的分类虚拟化技术是一种将应用、资源和环境从物理环境中剥离,再重新在虚拟环境中构建的技术。
它的主要优势是可以更高效地利用硬件资源,节约成本,减少耗材,简化服务器部署和管理运行。
根据不同的需求,虚拟化技术可以分为三大类:计算虚拟化、存储虚拟化和网络虚拟化。
1. 计算虚拟化: 指通过虚拟化技术将一个物理服务器分割为多个虚拟服务器,从而使得一个物理服务器资源可以被多个客户分享,从而极大地提高服务器利用率,降低企业服务器库房的负担。
常见的计算虚拟化技术包括:虚拟机技术(如VMware,KVM,Virtualbox等);应用程序虚拟化技术(如Docker,OpenVZ);容器虚拟化技术(如LXC,LXD)。
2. 存储虚拟化: 是一种把实际存储设备虚拟成抽象的虚拟存储设备,并将其统一管理,以便更好地利用存储资源,提高存储性能,降低总体成本。
常见的存储虚拟化技术包括:分布式存储虚拟化(如StorAge Networking,Storage Virtualization,Cluster Storage);SAN(Storage Area Network)虚拟化(如Net App,IBM SAN);NAS (Network Attached Storage)虚拟化(如EQL,HPN)。
3. 网络虚拟化: 是一种把实际网络设备虚拟成抽象的虚拟网络设备,并将其统一管理,以便更好地利用网络资源,提高网络性能,降低总体成本。
常见的网络虚拟化技术包括:虚拟化交换机(如Cisco Nexus, Juniper OS);虚拟路由(如Brocade vRouter,Netscaler);虚拟网络接入(如OpenVSwitch, OpenFlow)。
主流四大虚拟化架构对比分析云计算平台需要有资源池为其提供能力输出,这种能力包括计算能力、存储能力和网络能力,为了将这些能力调度到其所需要的地方,云计算平台还需要对能力进行调度管理,这些能力均是由虚拟化资源池提供的。
云计算离不开底层的虚拟化技术支持。
维基百科列举的虚拟化技术有超过60 种,基于X86(CISC)体系的超过50 种,也有基于RISC体系的,其中有 4 种虚拟化技术是当前最为成熟而且应用最为广泛的,分别是:VMWAR的E ESX、微软的Hyper-V 、开源的XEN和KVM。
云计算平台选用何种虚拟化技术将是云计算建设所要面临的问题,文章就 4 种主流虚拟化技术的架构层面进行了对比分析。
形成资源池计算能力的物理设备,可能有两种,一种是基于RISC的大/ 小型机,另一种是基于CISC的X86 服务器。
大/小型机通常意味着高性能、高可靠性和高价格,而X86服务器与之相比有些差距,但随着Inter 和AMD等处理器厂商技术的不断发展,原本只在小型机上才有的技术已经出现在了X86 处理器上,如64 位技术、虚拟化技术、多核心技术等等,使得X86 服务器在性能上突飞猛进。
通过TPC组织在2011年3月份所公布的单机计算机性能排名中可以看出,4路32核的X86服务器性能已经位列前10名,更重要的是X86服务器的性价比相对小型机有约 5 倍的优势。
因此,选择X86服务器作为云计算资源池,更能凸显出云计算的低成本优势。
由于单机计算机的处理能力越来越大,以单机资源为调度单位的颗粒度就太大了,因此需要有一种技术让资源的调度颗粒更细小,使资源得到更有效和充分的利用,这就引入了虚拟化技术。
当前虚拟化技术中主流和成熟的有 4 种:VMWAR的E ESX、微软的Hyper-V、开源的XEN和KVM,下面将针对这 4 种虚拟化技术的架构进行分析1 虚拟化架构分析从虚拟化的实现方式来看,虚拟化架构主要有两种形式:宿主架构和裸金属架构。
云计算平台架构图随着数字化转型的趋势不断加强,企业对云计算平台的需求呈现出爆炸性增长。
云计算平台以其超高的计算、网络和存储能力,成为企业追求高效率、低成本的首选。
而理解云计算平台的架构,可以帮助我们更好地利用这一强大的工具。
一般来说,云计算平台架构可以分为三个主要部分:基础设施层(IaaS)、平台层(PaaS)和软件层(SaaS)。
这三个部分构成了云计算平台的骨架,为企业提供稳定、高效的IT服务。
1、基础设施层(IaaS)基础设施层是云计算平台的最底层,主要提供计算、存储和网络等基础设施服务。
这一层通过虚拟化技术,可以将物理硬件资源转化为虚拟资源,供上层使用。
企业可以根据实际需求,动态地获取所需的计算、存储和网络资源,实现按需使用,灵活扩展。
2、平台层(PaaS)平台层位于基础设施层之上,主要为企业提供应用程序开发和部署所需的平台和工具。
这一层集成了数据库、消息队列、缓存等中间件,为上层应用提供稳定、高效的支持。
企业可以利用这一层提供的工具和平台,快速开发、测试和部署应用程序,大大缩短了开发周期,提高了开发效率。
3、软件层(SaaS)软件层是云计算平台的最高层,主要为企业提供具体的软件应用和服务。
这些软件应用和服务包括但不限于客户关系管理(CRM)、企业资源规划(ERP)、数据分析等。
企业可以通过这一层,以低成本、高效率的方式获取所需的应用和服务,满足自身的业务需求。
以上就是云计算平台的基本架构。
可以看出,云计算平台是一个分层、模块化的结构,各层之间相互独立,互不影响。
这种架构使得企业可以根据自身的需求和特点,灵活地选择所需的服务和资源,实现按需使用,高效利用。
同时,云计算平台的可扩展性也非常强,企业可以根据业务的发展需求,随时增加或减少所需的资源和服务。
这种弹性的架构使得企业能够更好地应对市场变化和业务挑战。
云计算平台的开放性也是其重要特点。
通过开放的标准和接口,企业可以方便地集成第三方应用和服务,构建属于自己的云计算生态系统。
主流的四大虚拟化架构对比分析虚拟化技术是一种将物理计算资源划分为多个逻辑资源的技术,它可以提高硬件资源的利用率,降低成本,简化管理。
对于企业来说,选择适合自己需求的虚拟化架构非常重要。
本文将对主流的四大虚拟化架构进行对比分析,包括VMware vSphere、Microsoft Hyper-V、Citrix XenServer和KVM。
首先,我们来看一下VMware vSphere。
vSphere是目前最为流行和被广泛使用的虚拟化平台之一、它提供了丰富的功能和高度稳定性,支持多种操作系统和应用程序。
vSphere有一个成熟的生态系统,有大量的第三方软件和工具可以与之集成,可以满足不同的需求。
此外,vSphere还提供了高级的管理和监控工具,可以帮助管理员更轻松地管理虚拟化环境。
然而,vSphere需要付费许可证,这对一些小型企业来说可能是一个问题。
第二个是Microsoft Hyper-V。
作为微软的虚拟化平台,Hyper-V具有良好的集成性,可以与Windows Server和System Center等微软产品无缝配合。
Hyper-V支持广泛的操作系统和应用程序,并提供了丰富的功能。
与此同时,Hyper-V有一个庞大的用户社区,可以获取到大量的支持和资源。
另外,Hyper-V无需额外的许可证费用,对于使用Windows Server的企业来说,这是一个显著的优势。
然而,与vSphere相比,Hyper-V在一些高级功能和管理工具方面可能稍显不足。
第三个是Citrix XenServer。
XenServer是开源的虚拟化平台,它基于Xen虚拟化技术。
XenServer具有开放性和灵活性,可以与多种操作系统和应用程序兼容。
它提供了一些高级的功能,如高可用性、负载均衡和快速迁移等。
此外,XenServer还可以与Citrix的其他产品集成,如Citrix Workspace和Citrix ADC等,可以为企业提供全面的解决方案。
目前市场上各种x86 管理程序(hypervisor)的架构差异,三个最主要的架构类别包括:
? I型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”。
? II型:虚拟机运行在传统上,同样创建的是硬件全仿真实例,被称为“托管”hypervisor。
? 容器:虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例,指向底层托管操作系统,被称为“操作系统虚拟化”。
图1 三种主要的虚拟化架构类型
上图显示了每种架构使用的高层“堆栈”,应当指出,在每种模型中,虚拟层是在不同层实现的,因此成本和效益都会不一样。
除了上面的架构类别外,知道hypervisor的基本元素也同样重要,它包括:
? 虚拟机监视器(Virtual Machine Monitor,VMM):它创建、管理和删除虚拟化硬件。
?半虚拟化(Paravirtualization):修改软件,让它知道它运行在虚拟环境中,对于一个给定的hypervisor,这可能包括下面的一种或两种:
- 内核半虚拟化:修改操作系统内核,要求客户机操作系统/hypervisor兼容性。
- 半虚拟化:修改客户机操作系统I/O驱动(、等),如Vmware Tools,MS Integration Components。
操作系统虚拟化:容器
在容器模型中,虚拟层是通过创建虚拟操作系统实例实现的,它再指向根操作系统的关键系统文件,如下图所示,这些指针驻留在操作系统容器受保护的中,提供低内存开销,因此虚拟化实例的密度很大,密度是容器架构相对于I型和II型架构的关键优势之一,每个虚拟机都要求一个完整的客户机操作系统实例。
图2 容器型虚拟化架构
通过共享系统文件的优点,所有容器可能只基于根操作系统提供客户机,举一个简单的例子,一个基本的Windows Server 2003操作系统也可用于创建Windows Server 2003容器,同样,任何适用于根操作系统系统文件的补丁和更新,其子容器也会继承,提供了一个方便的维护方法。
但这也可能会造成损害,根操作系统收到破坏,客户机也会跟着被破坏。
在容器内,用户可以使用特定应用程序,热修复(但不是服务包)和操作系统服务组件自定义客户机实例,对那些在多数客户机容器中会使用到的服务或应用程序,它们所需要的功能应该安装到根操作系统中,在客户机实例中使用类似于模板的方法自动获得这些功能。
在大多数情况下,容器的数量仅受宿主操作系统可用资源的限制,每个客户机可能被配置为根操作系统限制的最大硬件资源,这些可扩展的特性与客户机管理的易用性,使容器方法成为需要高虚拟机密度的应用程序很有实力的候选者,如虚拟桌面。
Parallels Virtuozzo容器是当今业界领先的操作系统虚拟化产品,除了上述功能外,Virtuozzo提供了高可用和跨物理主机迁移客户机的功能(假设根操作系统和补丁级别相同),架构上,Virtuozzo实现了一个专有的内核服务抽象层(Kernal Service Abstract Layer,KSAL),保护宿主操作系统文件,在可写入文件系统上保存一份的副本,使单独修改客户机成为可能。
与混合hypervisor(本文后面会有介绍)中的父分区类似,第一个虚拟实例是一个简单的管理容器,它提供虚拟机监视功能。
在Parallels Virtuozzo容器的最新版本4.5中,包括在Hyper-V中嵌入Virtuozzo的支持,两者都在父分区中。
图3 Hyper-V中嵌入Virtuozzo容器
这种实现方式虽然复杂,但它展示了Virtuozzo架构的灵活性,提供高虚拟机密度,有关Parallels Virtuozzo容器的更多信息,请参考其网站(/products/pvc45/)。
II型hypervisor
II型或托管型hypervisor通过一个软件层在现有操作系统上实现硬件虚拟化,与容器架构不一样,II 型客户机提供了一个完整的、独立的、无依赖的客户机操作系统副本,通常利用半虚拟化驱动网络和I/O 提高客户机性能。
但由于虚拟化功能必须通过宿主操作系统,客户机的性能大大低于裸机hypervisor。
此外,还有一些高可用和企业管理功能。
由于这些原因,II型hypervisor最常用于开发/测试或桌面类应用程序。
流行的II型hypervisor包括Vmware Workstation,Sun VirtualBox和Microsoft Virtual Server R2,它们的功能都差不多,因为它们都不能胜任企业级工作量,因为后面我也不打算继续介绍它们。
I型hypervisor
I型或裸机hypervisor包括当今主流的企业级虚拟化产品,该类hypervisor直接运行在系统硬件上,提供了更好的客户机性能。
通过处理器虚拟化扩展增强,包括英特尔VT和AMD-V技术,I型hypervisor 甚至可以超越裸机操作系统性能。
使用这一类hypervisor,有几个子类型有必要详细介绍:
? 独立型:VMware vSphere
? 混合型:Microsoft Hyper-V,Citrix XenServer和Sun xVM
? KVM:Linux KVM
I型独立型:VMware vSphere
在一个独立型hypervisor中,所有硬件虚拟化和虚拟机监视器(VMM)功能由一个单一的,紧密集成的代码集提供,这种架构与Vmware vSphere和前几代ESX hypervisor的结构是相同的。
下图是Vmware vSphere 4.0(也称为ESX 4)的架构概述图,与一般看法相反,Vmware不是基于Linux的hypervisor,相反,ESX是由一个高度复杂的操作系统VMKernel组成的,并取得了专利权,提供所有虚拟机监控和硬件虚拟化功能。
ESX完整版提供了一个基于Linux的服务控制台,但ESXi不包含此服务控制台。
图4 VmwarevSphere 4.0架构
通常这种模式被称为“胖”或“瘦”hypervisor,但这种说法并不准确,虽然ESX架构经过长期发展变得更加复杂了,但Vmware在hypervisor性能和功能方面一直保持领先的行业地位,最近实现了处理器虚拟化扩展进一步巩固了领导地位。
Vmware在客户机内需要网络和I/O驱动半虚拟化,这些驱动通常包含在Vmware Tools中。
I型混合型:Citrix XenServer,Microsoft Hyper-V和OracleVM
混合I型架构包括一个软件模型,一个“瘦”hypervisor联合一个父分区提供硬件虚拟化,它提供了虚拟机监视功能,这类模型主要包括微软的Hyper-V和基于Xen的hypervisor,如Citrix XenServer和OracleVM。
图5 I型混合型hypervisor
父分区也叫做Dom0,它通常是一个运行在本地的完整操作系统虚拟机,并具有根权限,例如,开启Xen在Novell SUSE Linux Enterprise Server(SLES)上执行的Dom0将作为一个完整的SLES实例执行,提供虚拟机(VM)创建、修改、删除和其它类似配置任务的管理层,系统启动时,开启Xen的内核载入父分区,以VMM权限运行,作为VM管理的接口,管理I/O堆栈。
与Vmware类似,所有混合型产品都为客户机提供了半虚拟化驱动,从而提高网络和I/O性能,不实现半虚拟化驱动的客户机必须遍历父分区的I/O堆栈,因此客户机的性能会下降。
操作系统半虚拟化技术正变得越来越流行,以达到最佳的客户机性能,并改进跨hypervisor的互操作性。
例如,Microsoft Hyper-V/Windows Server 2008 R2为Windows Server 2008和SUSE Enterprise Linux客户机提供完整的操作系统半虚拟化支持。
虽然操作系统半虚拟化是操作系统发展的一种趋势,但应当指出的是操作系统半虚拟化目前还不是混合模型的一个要求,部分供应商,如VirtualIron(Sun/Oracle),的目标是SMB级负载,使用全硬件虚拟化实现可接受的客户机性能。
混合型架构起源于Xen项目,在性价比方面有很多供应商可供选择,这都得益于开源社区(Xen)的贡献,它能够很好地适应半虚拟化操作系统的未来发展。
I型组合型:基于Linux的内核虚拟机(KVM)
基于Linux的内核虚拟机(KVM)hypervisor模型提供了一个独一无二的I型架构,它不是在裸机上执行hypervisor,KVM利用开源Linux(包括RHEL,SUSE,Ubuntu等)作为基础操作系统,提供一个集成到内核的模块(叫做KVM)实现硬件虚拟化,KVM模块在用户模式下执行(与独立型和混合型hypervisor不一样,它们都运行在内核/根模式下),但可以让虚拟机在内核级权限使用一个新的指令执行上下文,叫做客户机模式。
图6 I型组合型架构
KVM使用一个经过修改的开源QEMU硬件仿真包提供完整的硬件虚拟化,这意味着客户机操作系统不需要操作系统半虚拟化,与Vmware类似,Linux KVM充分利用VirtIO作为实现IO半虚拟化的框架,它利用内置在内核/QEMU中的用户模式VirtIO驱动增强性能。
KVM现在已经成为很多Linux发行版的标准模块,包括但不限于Red Hat Enterprise Linux和SUSE Linux Enterprise Server,以及桌面类Linux,如Ubuntu,KVM现在已经成为一个流行的hypervisor。