您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 虚拟化数据中心的云操作系统
1Chapter3:VirtualMachinesandVirtualizationofClustersanddatacenters虚拟机和集群与数据中心虚拟化23.1虚拟化的实现层次虚拟化技术通过在同一个硬件主机上多路复用虚拟机的方式来共享昂贵的硬件资源,虚拟化的基本思想是分离软硬件以产生更好的系统性能虚拟化实现的层次引入虚拟化后,不同用户应用程序由自身的操作系统(即客户操作系统)管理,并且那些客户操作系统可以独立于主机操作系统同时运行在同一个硬件上,这通常是通过新添加一个称为虚拟化层的软件来完成,该虚拟化层称为hypervisor或虚拟机监视器(VirtualMachineMonitor,VMM)3图3-1虚拟化前后的计算机系统体系结构,其中,VMM代表虚拟机监视器4图3-2从硬件到应用程序的5个虚拟化抽象层次5Low-LevelVMMOperations(1)复用(CourtesyofMendelRosenblum,2006)6Low-LevelVMMOperations(2)挂起(CourtesyofMendelRosenblum,2006)7Low-LevelVMMOperations(3)供应(恢复)(CourtesyofMendelRosenblum,2006)8Low-LevelVMMOperations(4)动态迁移(CourtesyofMendelRosenblum,2006)9指令集体系结构级:代码解释和动态二进制翻译硬件抽象级:虚拟化一个计算机硬件资源操作系统级:在单一物理服务器上创建隔离的容器和操作系统实例库支持级:库接口的虚拟化应用程序级:进程级虚拟化、高级语言(HighLevelLanguage,HLL)虚拟机10VirtualizationatISAlevel:EmulatingagivenISAbytheISAofthehostmachine.Forexample,MIPSbinarycodecanrunonanx-86-basedhostmachinewiththehelpofISAemulation.Typicalsystems:Bochs,Crusoe,Quemu,BIRD,DynamoAdvantage:Itcanrunalargeamountoflegacybinarycodeswrittenforvariousprocessorsonanygivennewhardwarehostmachines;bestapplicationflexibilityShortcoming&limitation:Onesourceinstructionmayrequiretensorhundredsofnativetargetinstructionstoperformitsfunction,whichisrelativelyslow.V-ISArequiresaddingaprocessor-specificsoftwaretranslationlayerinthecomplier.11VirtualizationatHardwareAbstractionlevel:Virtualizationisperformedrightontopofthehardware.ItgeneratesvirtualhardwareenvironmentsforVMs,andmanagestheunderlyinghardwarethroughvirtualization.Typicalsystems:VMware,VirtualPC,Denali,XenAdvantage:hashigherperformanceandgoodapplicationisolationShortcoming&limitation:veryexpensivetoimplement(complexity)12VirtualizationatOperatingSystemlevel:ItisanabstractionlayerbetweentraditionalOSanduserplacations.ThisvirtualizationcreatesisolatedcontainersonasinglephysicalserverandtheOS-instancetoutilizethehardwareandsoftwareindatacenters.Typicalsystems:Jail/VirtualEnvironment/Ensim'sVPS/FVMAdvantage:haveminimalstarup/shutdowncost,lowresourcerequirement,andhighscalability;synchronizeVMandhoststatechanges.Shortcoming&limitation:allVMsattheoperatingsystemlevelmusthavethesamekindofguestOS;poorapplicationflexibilityandisolation.13LibrarySupportlevel:ItcreatesexecutionenvironmentsforrunningalienprogramsonaplatformratherthancreatingVMtoruntheentireoperatingsystem.ItisdonebyAPIcallinterceptionandremapping.Typicalsystems:Wine,WAB,LxRun,VisualMainWinAdvantage:IthasverylowimplementationeffortShortcoming&limitation:poorapplicationflexibilityandisolation14User-Applicationlevel:Itvirtualizesanapplicationasavirtualmachine.ThislayersitsasanapplicationprogramontopofanoperatingsystemandexportsanabstractionofaVMthatcanrunprogramswrittenandcompiledtoaparticularabstractmachinedefinition.Typicalsystems:JVM,NETCLI,PanotAdvantage:hasthebestapplicationisolationShortcoming&limitation:lowperformance,lowapplicationflexibilityandhighimplementationcomplexity.16VMM的设计需求和提供商硬件级虚拟化在真实硬件和传统操作系统之间插入一层软件,该层软件通常称为虚拟机监视器(VMM)对VMM有三个需求。第一,VMM应该为程序提供与原始硬件机器基本一致的环境;第二,运行在该环境中的程序的性能损失应较低;第三,系统资源应处于VMM的完全控制之中。由VMM完全控制这些资源包括以下方面:(1)VMM负责为应用程序分配硬件资源;(2)程序不能访问任何未分配给它的资源;(3)在某些情况下,VMM可以获得对已分配资源的控制权。MajorVMMandHypervisorProviders18操作系统级的虚拟化支持操作系统级虚拟化在一个操作系统中插入一个虚拟化层来划分机器的物理资源。它使得在一个操作系统内核中可以同时运行多个隔离的虚拟机。这种虚拟机也称为VE(VirtualExecutionEnvironment)、VPS(VirtualPrivateSystem,虚拟专用系统)或容器。从用户的视角来看,VE就像真实服务器。VE有自己的进程、文件系统、用户账号、带有IP地址的网络接口、路由表、防火墙规则及其他个人设置。尽管VE可为不同用户分别定制,但它们仍共享同一个操作系统内核。因此,操作系统级虚拟化也称为单操作系统镜像虚拟化。VirtualizationforLinuxandWindowsNTPlatforms2021虚拟化的中间件支持22图3.4vCUDA结构的基本概念233.2虚拟化的结构/工具与机制hypervisor与Xen体系结构图3-5Xen体系结构用于控制和I/O的特殊零域并用于用户应用程序的客户域24Xen是一个由剑桥大学开发的开源hypervisor程序。Xen属于微内核hypervisor提供了一种客户操作系统可以直接访问物理设备的机制Xen提供了一个处于硬件和操作系统之间的虚拟环境Xen系统的核心组件是hypervisor、内核和应用程序具有控制特权的客户操作系统称为Domain0,其他客户操作系统则称为DomainUDomain0被首先启动。Domain0可以直接访问硬件和管理设备。因此,Domain0的一个任务是为所有DomainU分配和映射硬件资源25全虚拟化的二进制翻译根据实现技术的不同,硬件虚拟化可以分为:全虚拟化和基于主机的虚拟化。全虚拟化不需要修改主机操作系统。它依赖于二进制翻译来陷入和虚拟化一些敏感、不可虚拟化的指令的执行。客户操作系统和它们的应用由非临界和临界指令构成。在基于主机的系统虚拟化中,主机操作系统和客户操作系统同时存在,虚拟化软件层处于两者之间。该主机操作系统仍旧负责管理硬件。客户操作系统安装并运行在虚拟化层之上。特定的应用可运行在虚拟机中。26图3-6复杂指令的间接执行,即使用VMM二进制翻译客户操作系统请求,并在同一台主机上直接执行简单指令27编译器支持的半虚拟化技术半虚拟化需要修改客户操作系统。半虚拟化虚拟机在用户程序中提供了特殊的API,要求真正修改操作系统。图3-7半虚拟化的虚拟机体系结构,其中包括为执行虚拟化进程而修改客户操作系统内核,将不可虚拟化的指令替换为对hypervisor或VMM的超级调用28图3-8半虚拟化的客户操作系统,由智能编译器辅助将不可虚拟化的操作系统指令替换为超级调用29图3-9使用半虚拟化的VMwareESXServer体系结构303.3CPU、内存和I/O设备的虚拟化为支持虚拟化,处理器利用硬件辅助虚拟化,引入一种特殊的运行模式和指令,使得VMM和客户操作系统可运行在不同模式中,客户操作系统及其应用程序的所有敏感指令会陷入到VMM中。虚拟化的硬件支持现代操作系统和处理器允许多个进程同时运行。如果处理器中没有保护机制,那么不同进程的所有指令都可以直接访问硬件,很容易导致系统崩溃。因此,所有处理器都至少需要两种模式(用户模式和管理模式)来确保对临界区硬件的受控访问。运行在管理模式的指令称为特权指令,其他指令为非特权指令。31图3-10Intel对处理器、内存和I/O设备虚拟化的硬件支持32CPU虚拟化虚拟机的非特权指令直接在物理主机中运行关键指令可以分为三类:特权指令、控制敏感指令和行为敏感指令。特权指令需要在特权模式中执行,当在特权模式之外执行特权指令时会发生陷入。控制敏感指令尝试改变使用资源的配置。行为敏感指令根据资源的配置情况会有不同的行为,包括在虚拟内存中进行的负载和存储操作。VMM运行在管理模式时,CPU支持在用户模式运行虚拟机的特权指令和非特权指令,则该CPU体系结构是可虚拟化的。RISC的所有控制敏感指令和行为敏感指令都是特权指令,因此,RISC的CPU体系结构是天然可虚拟化的。33图3-11Intel硬件辅助的CPU虚拟化34内存虚拟化客户操作系统和VMM分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。客户操作系统仍旧负责从虚拟地址到虚拟机的物理内存地址的映射,VMM负责将客户物理内存映射到实际的机器内存上图3-12两级内存映射过程35图3-13使用Intel的EPT的内存虚拟化(EPT也被称为影子页表)36I/O虚拟化I/
本文标题:虚拟化数据中心的云操作系统
链接地址:https://www.777doc.com/doc-5569309 .html