欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    剖析系统虚拟化(17页).doc

    • 资源ID:35409252       资源大小:67KB        全文页数:17页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    剖析系统虚拟化(17页).doc

    -剖析系统虚拟化(1)- 简介作者:    厚朴教育来源:    点击数:712    更新时间:2010-5-20简单而言,虚拟化(Virtulization)是表示计算机资源的抽象方法。通过虚拟化可以对包括基础设施,系统和软件等计算机资源的表示,访问和管理进行简化,并为这些资源提供标准的接口来接受输入和提供输出。虚拟化技术有很多种,比如,网络虚拟化,内存的虚拟化,桌面虚拟化,应用虚拟化和虚拟内存等等。因为篇幅的原因,本系列将重点关注系统虚拟化,特别是X86平台。今后此系列当中提到的虚拟化皆指系统虚拟化。系统虚拟化的目的通过使用虚拟化管理器(Virtual Machine Monitor,简称VMM)是在一台物理机上虚拟和运行一台或多台虚拟机(Virtual Machine,简称VM)。VMM主要有两种形式:Hypervisor VM,它直接运行在硬件(Bare Metal)上面,提供接近于物理机的性能,并在I/O上面做了特别多的优化,主要用于服务器类的应用,也被称为“Type 1”。Hosted(托管)VM,它运行在物理机的操作系统上,虽然其本身性能不如Hypervisor(因为它和硬件之间隔了一层OS),但是其安装和使用非常方便,而且功能丰富,比如支持三维加速等特性,常用于桌面应用,也被称为“Type 2”。系统虚拟机的分类由于采用技术的不同,可以将系统虚拟化分为五大类:硬件仿真(Emulation)简介:属于Hosted模式,在物理机的操作系统上创建一个模拟硬件的程序(Hardware VM)来仿真所想要的硬件,并在此程序上跑虚拟机,而且虚拟机内部的客户操作系统(Guest OS)无需修改。知名的产品有Bochs,QEMU和微软的Virtual PC(它还使用少量的全虚拟化技术)。图1. 硬件仿真架构图优点:Guest OS无需修改,而且非常适合用于操作系统开发,也利于进行固件和硬件的协作开发。固件开发人员可以使用目标硬件 VM 在仿真环境中对自己的实际代码进行验证,而不需要等到硬件实际可用的时候。缺点:速度非常慢,有时速度比物理情况慢100倍以上。未来:因为速度的问题,渐趋颓势,但是还应该有一席之地。全虚拟化(Full Virtulization)简介:主要是在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,而且属于 Hosted 模式和 Hypervisor 模式的都有,知名的产品有IBM CP/CMS,VirtualBox,KVM,VMware Workstation和VMware ESX(它在其4.0版,被改名为VMware vSphere)。图2. 全虚拟化架构图优点:Guest OS无需修改,速度和功能都非常不错,更重要的是使用非常简单,不论是 VMware 的产品,还是Sun(Oracle?)的 VirtualBox。缺点:基于Hosted模式的全虚拟产品性能方面不是特别优异,特别是I/O方面。未来:因为使用这种模式,不仅Guest OS免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,我个人判断,在未来全虚拟化还是主流。半虚拟化(Parairtulization)简介:它与完全虚拟化有一些类似,它也利用Hypervisor来实现对底层硬件的共享访问,但是由于在Hypervisor 上面运行的Guest OS已经集成与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hyperivosr来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,使其性能非常接近物理机,其最经典的产品就是Xen,而且因为微软的Hyper-V所采用技术和Xen类似,所以也可以把Hyper-V归属于半虚拟化。图3. 半虚拟化架构图优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。缺点:需要对Guest OS进行修改,所以在用户体验方面比较麻烦。未来:我觉得其将来应该和现在的情况比较类似,在公有云(比如Amazon EC2)平台上应该继续占有一席之地,但是很难在其他方面和类似VMware vSphere这样的全虚拟化产品竞争,同时它也将会利用硬件辅助虚拟化技术来提高速度,并简化架构。硬件辅助虚拟化(Hardware Assisted Virtualization)简介:Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化(具体将在下文详述)来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox,KVM,VMware ESX和Xen。优点:通过引入硬件技术,将使虚拟化技术更接近物理机的速度。缺点:现有的硬件实现不够优化,还有进一步提高的空间。未来:因为通过使用硬件技术不仅能提高速度,而且能简化虚拟化技术的架构,所以预见硬件技术将会被大多数虚拟化产品所采用。操作系统级虚拟化(Operating System Level Virtualization)简介:这种技术通过对服务器操作系统进行简单地隔离来实现虚拟化,主要用于VPS。主要的技术有Parallels Virtuozzo Containers,Unix-like系统上的chroot和Solaris上的Zone等。图4. 操作系统级架构图优点:因为它是对操作系统进行直接的修改,所以实现成本低而且性能不错。缺点:在资源隔离方面表现不佳,而且对Guest OS的型号和版本有限定。未来:不明朗,我觉得除非有革命性技术诞生,否则还应该属于小众,比如VPS。五大类之间比较根据个人的经验,我在性能,用户体验和使用场景这三方面对这五大类进行了比较,具体请看下图:性能(和物理机速度之比)用户体验形式硬件仿真30%-简单Hosted全虚拟化30%-80%+简单Hosted/Hypervisor半虚拟化80%+困难Hypervisor硬件辅助虚拟化80%+一般Hosted/Hypervisor操作系统级虚拟化80%困难类似于Hypervisor表1. 系统虚拟化五大类之间的比较因为这表只是我笼统的经验之谈,仅供参考,特别在操作系统级虚拟化这块。系统虚拟化的用处主要有那些用处呢?软件测试,通过使用VirtualBox和VMware Workstation来配置测试环境,不仅比物理方式快捷很多,而且无需购买很多昂贵的硬件,更重要的是,通过它们自带的SnapShot/Pause功能可以非常方便地将错误发生的状态保存起来,这样将极有利于测试员和程序员之间的沟通。现在已经有很多软件都通过虚拟机的形式进行测试,最著名的例子,莫过于以VirtualBox虚拟机形式发布的Chrome OS测试版。我第一次接触到虚拟化技术强大威力就是在软件测试方面。桌面应用,通过诸如VirtualBox和VMware Workstation等桌面虚拟化软件能让用户使用其他平台的专属软件,比如使用Linux的用户能够通过VirtualBox上虚拟的Windows环境来访问使用ActiveX技术的网上银行。服务器整合,通过 VMware ESX 和 Xen 能够将多台物理机上的工作量整合到一台物理机上。现有普遍的整合率在1:8左右,也就是使用这些软件能将原本需要八台物理机的工作量整合到一台物理机上。服务器整合不仅能减低硬件,能源和场地等开支,还能极大地简化IT架构的复杂度。自动化管理,通过使用类似DRS(Distributed Resource Scheduling,分布式资源调度),Live Migration(动态迁移),DPM(Distributed Power Management,分布式电源管理)和HA(High Availability,高可用性) 等高级虚拟化管理技术,能极大地提高整个数据中心的自动化管理程度。加快应用部署,通过引入虚拟化应用发布格式OVF(Open Virtualization Format),不仅能使第三方应用供应商更方便地发布应用,而且使系统管理员非常简单地部署这个应用(大多数情况下只要轻轻一个点击就可以完成整套部署工作)。本篇结束,下篇将关注X86虚拟化技术的发展。 剖析系统虚拟化(2)- X86虚拟化技术作者:    厚朴教育来源:    点击数:889    更新时间:2010-5-22上个月,我曾经和一个龙芯的支持者聊过关于龙芯和云计算的关系。虽然我个人还是非常支持龙芯,但是在谈到龙芯的未来,我深有顾虑,原因有二:其一,是缺乏经验丰富的工程师团队,虽然胡老师研究毛选的水平相当顶尖,但是我个人觉得身为龙芯项目带头人的他在芯片设计上面的造诣很难列于世界顶尖。其二,和本文是密切相关的,就是在低功耗和移动方面,龙芯的MIPS架构好比RISC的代表IBM的Power,而ARM架构和CISC的代表Intel的X86有几分类似,虽然IBM的Power架构在早期由于RISC的原因,在速度上面极为领先,但是由于X86在所支持软件方面的优势,使Intel能投入几倍的资源在研发上面,使得它不仅在市场上处于垄断,而且在速度上面直追Power芯片。这个在PC时代发生的故事我希望不要在云计算时代重演。(因为在CPU产业上面的研究不是很深入,如果我说了什么不合适的,请见谅。我个人也希望龙芯能成功)接下来就跟大家讲解一下上面提到的X86架构的虚拟化技术。虚拟化的三大特征在1974年Popek和Goldberg发表的虚拟化名篇Formal Requirements for Virtualizable Third Generation Architectures中定义了虚拟机(VM)可以被认为是物理机的一种高效隔离的复制,并指出虚拟机应具有的三大特征:1.一致性, 一个运行于虚拟机上的程序,其行为应与直接运行于物理机上的同程序的行为基本一致,只允许有细微的差异,比如在系统时间方面。2.可控性,VMM(虚拟化管理器)对系统资源有完全的控制能力和管理权限,包括资源的分配,监控和回收。3.高效性,绝大多数的客户机指令应该由硬件直接执行而无需VMM的参与。但是要满足这三点,并非易事,因为系统的指令集架构(ISA)需要相应地满足四个的条件:1.CPU能支持多个特权级,并且VM上面运行的指令能在底特权级(比如Ring 3)下正确执行。2.非特权指令(允许用户直接使用的指令)的执行效果不依赖于CPU的特权级。3.敏感指令(对系统资源配置有影响的指令)都是特权指令(不允许用户直接使用的指令)。4.必须支持一种内存保护机制来保证多个虚拟机之间在内存方面的隔离,例如段保护或页保护。为什么X86架构很难被虚拟化?虽然X86架构在PC市场占据绝对的垄断地位,但是由于其在初始设计时,并没有考虑到虚拟化需求,所以它对虚拟化的支持不够,特别是它没有满足上面四个条件里面的第三个,其因为是X86的ISA有17条敏感指令(比如LGDT等)不属于特权指令。也就是说,当虚拟机执行到这些敏感指令的时候,很有可能出现错误,将会影响到整个机器的稳定。更困难的是,上面所提出的问题只是X86虚拟化所需要面对的问题的一小部分而已,还有许许多多的问题还未涉及。下面将分CPU虚拟化,内存虚拟化和I/O虚拟化这三部分来介绍全虚拟化,半虚拟化和硬件辅助虚拟化所采用的相关技术。CPU虚拟化CPU虚拟化的目标是使虚拟机上的指令能被正常地执行,而且效率接近物理机。全虚拟化:主要采用优先级压缩(Ring Compression)和二进制代码翻译技术(Binary Translation)这两个技术。优先级压缩能让VMM和Guest运行在不同的特权级下,对X86架构而言,就是VMM运行在特权级最高Ring 0下,Guest的内核代码运行在Ring 1下,Guest的应用代码运行在Ring 3下。通过这种方式能让VMM截获一部分在Guest上执行的特权指令,并对其进行虚拟化。但是有一些对虚拟化不友好的指令则需要二进制代码翻译来处理,它通过扫描并修改Guest的二进制代码来将那些难以虚拟化的指令转化为支持虚拟化的指令。半虚拟化:其通过修改Guest OS的代码,使其将那些和特权指令相关的操作都转换会发给VMM的Hypercall(超级调用),而且Hypercall支持Batch(批处理)和异步这两种优化方式,使得通过Hypercall能得到近似于物理机的速度,硬件辅助虚拟化:主要有Intel的VT-x和AMD的AMD-V这两种技术,而且这两种技术在核心思想上非常相似,都是通过引入新的指令和运行模式,来让VMM和Guest OS能分别运行在其合适的模式下。在实现方面,VT-X支持两种处理器工作方式:第一种称为Root模式(Operation),VMM运行于此模式,用于处理特殊指令,另一种称为Non-Root模式(Operation),Guest OS运行于此模式,当在Non-Root 模式Guest执行到特殊指令的时候,系统会切换到运行于Root模式VMM,让VMM来处理这个特殊指令。内存虚拟化内存虚拟化的目标是能做好虚拟机内存空间之间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,并且效率也能接近物理机。全虚拟化:影子页表 (Shadow Page Table),就是为每个Guest都维护一个“影子页表”,在这个表中写入虚拟化之后的内存地址映射关系,而Guest OS的页表则无需变动,最后,VMM将影子页表交给MMU进行地址转换。半虚拟化:页表写入法,当Guest OS创建一个新的页表时,其会向VMM注册该页表,之后在Guest运行的时候,VMM将不断地管理和维护这个表,使Guest上面的程序能直接访问到合适的地址。硬件辅助虚拟化:EPT(Extended Page Table,扩展页表),EPT通过使用硬件技术,使其能在原有的页表的基础上,增加了一个EPT页表,通过这个页表能够将Guest的物理地址直接翻译为主机的物理地址,从而减低整个内存虚拟化所需的Cost。还有,在EPT推出之前,硬件辅助虚拟化技术在内存虚拟化方面有一个TLB(Translation lookaside buffer) Miss的软肋。I/O虚拟化I/O虚拟化的目标是不仅让虚拟机访问到它们所需要的I/O资源,而且要做好它们之间的隔离工作,更重要的是,减轻由于虚拟化所带来的开销。全虚拟化:通过模拟I/O设备(磁盘和网卡等)来实现虚拟化。对Guest OS而言,它所能看到就是一组统一的I/O设备,同时Guest OS每次I/O操作都会陷入到VMM,让VMM来执行。这种方式,对Guest而言,非常透明,无需顾忌底层硬件,比如Guest操作的是SCSI的设备,但实际物理机只有SATA的硬盘。半虚拟化:通过前端(Front-End)/后端(Back-End)架构,将Guest的I/O请求通过一个环状队列传递到特权域(Privileged Domain,也被称为Domain-0)。因为这种方式的相关细节较多,所以会在后文进行深入分析。硬件辅助虚拟化:最具代表性莫过于Intel的VT-d,AMD的IOMMU和PCI-SIG的IOV(I/O Virtulization)这三个技术。在这里介绍一下VT-d,其核心思想就是让虚拟机能直接使用物理设备,但是这会牵涉到I/O地址访问和DMA的问题,而VT-d通过采用DMA重映射(Remapping)和I/O页表来解决这两个问题,从而让虚拟机能直接访问物理设备。还有,IOMMU和VT-d在技术上有很多相似之处。总结首先,通过一个表格来总结一下X86虚拟化技术:全虚拟化半虚拟化硬件辅助虚拟化CPU虚拟化二进制代码翻译HypercallVT-x内存虚拟化影子页表页表写入法EPTI/O虚拟化模拟I/O设备前端/后端架构VT-d表1. X86虚拟化技术总结其次,由于这三种虚拟化技术各有千秋,所以在取舍方面很让人为难,但是也是两个规则可循,其一是如果使用最新的芯片,比如45nm的Nehalem和32nm的Westmare,那么硬件虚拟化技术是一个比较不错的选择,甚至胜于半虚拟化技术。其二是如果是跑有很多TLB Miss的应用(比如Java应用),那么应避免使用硬件虚拟化技术。总体而言,就像VMware的白皮书Virtual Machine Monitor Execution Modes: in VMware vSphere 4.0(请见参【6】)总结的那样,如果是使用最新的45nm以下的Intel芯片和较新的操作系统(比如,Win 2000之后Windows和2.6之后的Linux)推荐使用硬件虚拟化技术,其他使用较旧的Intel的芯片和操作系统应使用全虚拟化技术,还有如果操作系统内置VMI(VMware的半虚拟化技术),也可使用半虚拟化技术。此外这本白皮书也介绍和AMD芯片相关的内容。最后,是我个人的预测:虽然现在硬件辅助虚拟化有TLB Miss这个软肋, 但是随着硬件辅助虚拟化技术不断地发展和优化,将使其在速度和架构方面的优势更明显,但是由于全虚拟化和半虚拟化的一些技术在某些方面还是保持了一定的优势,比如半虚拟化的前端和后端架构和全虚拟化的二进制代码翻译技术。所以,我个人认为今后X86虚拟化技术的发展将会以硬件辅助虚拟化技术为主,同时以全虚拟化和半虚拟化技术为辅。剖析系统虚拟化(3)- VMware vSphere 的简介作者:    厚朴教育来源:    点击数:795    更新时间:2010-5-23这篇本来是准备按照官方文档照猫画虎,但是因为官方文档太过抽象并晦涩难懂,所以重新组织结构,另写一篇。在上篇文章介绍了X86虚拟化技术的发展之后,本篇将把重点对准X86虚拟化技术的领导者VMware和它核心产品VMware vSphere。在某种意义上来说,VMware就是X86虚拟化技术的代名词,不论是从客户端的VMware Workstation系列,还是服务器端的VMware Infrastructure(最近改名为vSphere)系列,都属于X86虚拟化技术的代表之作。而且估计VMware也知道“不进则退”的道理,所以其在客户端和服务器都占据大半份额之后,VMware也已经做好向其他方面进军的努力,那么下面就和大家稍微聊一下VMware在发展方面的总体思路。VMware 的思路在VMworld2009大会上,VMware CTO Steve Herrod在提到VMware总体发展方向的时候,他主要提到了三个方面:1.vSphere,这系列之前的产品名称为 VMware Infrastructure,而且之前已经推出了3代产品,但在2009年初,为了烘托它的第4代产品在云计算所起的作用,将产品更名为“VMware vSphere”,同时官方也称其为Cloud OS或者VDC(Virtual Data Center)-OS。vSphere主要用于服务器端虚拟化,通过在一台物理服务器上虚拟出多台虚拟机来起到服务器整合和资源优化等目的。本篇的下半部分将重点介绍vSphere。2.vCloud,是VMware的云计算计划,旗下有两个分支,其一是名为VMware vCloud Express的IaaS(基础设施即服务)解决方案,其二是名为VMware Platform as a Service的PaaS(平台即服务)解决方案。3.VMware View,是VMware桌面虚拟化产品,通过VMware View能够在一台普通的物理服务器上虚拟出很多台(桌面整合率普遍为服务器整合率的两倍左右,一般为1:16)虚拟桌面(Virtual Desktop)来供远端的用户使用,这样做的优点是简化IT的管理,并节省了开支。图1 VMware 三大战略方向(参【3】)当然,在VMware产品库中还有客户端虚拟化产品的VMware Workstation,估计因为这块市场已经比较成熟的原因,所以Steve Herrord并没有在演讲中非常强调。当然除了云计算之外,智能手机也是业界另一个热门词汇,VMware也有一款名字为VMware Mobile的智能终端虚拟化产品,它的作用在一台智能终端上虚拟出多台虚拟机,以满足不同的需求,比如虚拟两台虚拟机,其一是用于打电话和玩游戏等个人事务,而另一台则是用于接入公司VPN,发Email和使用CRM等企业事务,通过隔离这两种事务并随时切换,来达到安全和方便的效果。 VMware vSphereVMware vSphere 主要可被为两部分:其一是VMM(虚拟化管理器)部分,VMware ESX 4,其二是用于整合和管理VMM的VMware vCenter。下面是vSphere的架构图:图1. VMware vSphere 架构图VMware ESX 4VMware ESX 4是属于本系列第一篇提到的Hyperviosr形式的VMM,是直接安装硬件(Bare Metal)上面,也称为“Type 1”。VMware ESX 4和之前VMware ESX 3.5/3相比,在功能和特性上有很多更新和扩展,其中最大的区别过于VMware ESX 4只支持64bit运行模式,所以其只能安装在支持64位计算的X86物理机上。除了ESX,VMware还推出了精简版的ESXi,ESXi与ESX的最大区别在于其去除Service Console。还有,本系列常使用“主机”来表示装有Hyperviosr形式的VMM的物理机。VMware ESX 4 主要有三方面功能:Infrastructure Service:就是VMM的功能,也是整个产品的基础。通过一个在物理机之上的虚拟层能抽象处理器,内存和I/O等资源来运行多个虚拟机。虚拟机能支持高达8个的vCPU和256GB内存,这样的资源配置能满足高性能应用程序的性能需求。还支持热添加功能,来向虚拟机热添加虚拟CPU、内存和网络设备,使应用程序能无缝扩展。增强型的Infrastructure Service:除了基本的Infrastructure Service之外,ESX 4还提供一些增强型的功能,以更好为虚拟化服务,比如,VMDirectPath能增强网络和存储I/O性能,vStorage的 Thin Provisioning和Linked Clone这两个技术可减少存储空间达50%左右。Application Service:主要作用是提供一个VMware vCenter Agent,来将本机的管理和性能信息上传给VMware vCenter,同时还能根据VMware vCenter 发来的指示来协助执行诸如vMotion和HA这类高级功能。VMware vCenterVMware vCenter是用于VMware vSphere环境的管理程序,它作为管理节点来控制和整合属于其域的vSphere主机,其既可以安装物理机的操作系统上,也可以安装在虚拟机的操作系统(官方推荐)。在实现上面,它是基于Java技术的,后台连接自带的微软SQL Server Express,也可以使用Oracle的数据库,并可以使用其“链接模式”来集群多个vCenter来支持大量用户的访问。在通信方面,它通过vSphere主机内部自带vCenter Server Agent来与ESX进行联系,并提供API供外部程序和vCenter客户端调用。在扩展性方面,它支持很多第三方的插件。图3 Virtual Center的架构图(参【2】)基本功能主要包括六项基本功能:1.资源和虚拟机的清单管理:通过这个功能能够列出和管理这个vCenter的管理域内所有的资源(比如存储,网络,CPU和Memory等)和虚拟机。2.任务调度:能够更好地支持那些定时或者立即执行的任务(比如vMotion),使各个任务之间不出现抢占资源或者冲突的情况。3.日志管理:通过记录任务和事件等日志,来更方便和更安全地管理。4.警告和事件管理:通过这个功能,能让用户及时获知系统出现新情况。5.虚拟机部署:通过Wizard,上传vApp和虚拟磁盘等方式部署虚拟机。6.主机和虚拟机的设置:通过这个功能,不仅能够让用户对一些主机和虚拟机的主要配置进行修改,而且还能对那些非常底层的特性进行设置,比如,是不是开启硬件辅助虚拟化。高级功能主要有七个方面:1.在动态迁移方面:VMware 提供了vMotion技术,这个技术能够在无需关机的情况下快速地将一台虚拟机从一台主机上迁移到另一台主机,但是虚拟机的虚拟磁盘不会被移动,还在存放在同一个存储上,但是访问和使用这个虚拟磁盘的主机已经做了相应地改变。为了也让虚拟磁盘做相应地迁移,VMware在VMware Infrastructure 3.5版中推出Storage vMotion,通过这个技术能够在移动虚拟机同时,移动虚拟磁盘从一个存储移到另一个存储。2.在资源优化方面:VMware提供了DRS(Distributed Resource Scheduler,分布式资源调度)技术,这个功能能在多个vSphere主机进行资源的优化,让每个虚拟机能找到其最合适的位置,比如,将一台虚拟机从一台资源紧张的主机迁移到另一台有剩余资源的主机。同时VMware也在VMware Infrastructure 3.5版中推出了DPM(Distributed Power Management),这个技术在DRS的基础上通过整合虚拟机来减少和关闭多余的主机,以达到节省资源的目的。3.在安全方面:VMware推出了两大技术来推进虚拟机的安全,其一是推出VMsafe API,通过这个API能够像X射线那样检测虚拟机的运行状况,并能及时发现和拦截之前无法检测到的病毒、rootkit和恶意软件等,以防止其感染系统。还有,Checkpoint、IBM、McAfee、Symantec和TrendMicro等安全巨头已经推出了基于VMSafe API的产品,通过这些产品能为虚拟机提供较物理机或其他虚拟化解决方案更优的保护。其二是VMware Shield Zones,它主要起到防火墙的作用,可监视、记录和阻止vSphere主机内部或集群中主机之间和虚拟机之间流量,从而保证了网络的安全。4.在容错方面:VMware Fault Tolerance是虚拟机“度身定做”的容灾技术,通过VMware的vLockstep技术来给运行中虚拟机创建一台Shadow虚拟机,并在这两台虚拟机之间保持同步,来保证所有应用程序的零宕机和零数据丢失,避免硬件故障,免去了硬件或软件等容灾解决方案的成本和复杂性。5.在高可用性方面,VMware High Availability提供了相关支持,这个技术通过heartbeat连检测虚拟机的运行状况,如果一台虚拟机不响应heartbeat或者是宕机了,程序将让这台虚拟机在另一台有空余空间的主机上重启。6.在备份方面,VMware推出了VMCB(VMware Consolidated Backup)技术,通过这种技术能够在没有安装Agent的情况下集中多个虚拟机的备份,这不仅能简化备份的工作,而且能减少由于备份而导致性能损失。7.在应用部署方面,vApp是VMware最新推出技术,它可以将新的或现有的应用程序转化为自描述和自管理型实体,并容纳了一个完整的多层应用的所有组件,以及与之相关的运行策略和服务级别。这项功能是基于开放式的OVF(Open Virtualization Format)协议。通过生成和部署vApp包能够非常方便地部署应用,并降低了相关的管理开支。插件主要有:1.vCenter ConfigControl可以为整个虚拟数据中心的各个方面提供基于策略的更改和配置管理,并辅以自动化的实施。2.vCenter CapacityIQ可以持续分析和规划容量,确保对虚拟机、资源池和整个数据中心提供最优的调配。3.vCenter Chargeback支持对企业成本和支出的自动化跟踪,使IT部门能够实时了解运营成本,并作为实体来运行。4.vCenter Orchestrator可以让用户能够通过简单的拖拉界面(无需编写脚本)实现运营任务自动化的定制流程开发。5.vCenter AppSpeed可以自动保证应用程序的性能级别。它能够监控最终用户对应用程序的响应时间,将这些响应时间与基础架构中不同的元素进行关联,并触发修补措施来解决遇到的瓶颈问题。6.vCenter插件的主要以模块的形式装置到vCenter进程中或者是以一台虚拟机的形式运行。还有,除了这些常见插件,VMware还提供一些基于vCenter技术的管理程序,比如,用于自动精简配置的VMware Lifecycle Manager,用于应用程序开发的Lab Manager及用于应用程序部署Stage Manager和用于容灾的Site Recovery Manager等 。剖析系统虚拟化(4)- VMware ESX架构作者:    厚朴教育来源:    点击数:741    更新时间:2010-5-25上篇文章已经向大家介绍了VMware vSphere,而本篇将继续把重点放在vSphere身上,并向介绍大家vSphere之核心ESX的架构,虽然关于ESX架构的公开资料较少,但是基于这些已公开的资料,并加上我的一些实际经验,我觉得还是能对ESX的架构有一个大致的描述,下图为ESX的架构:图1. ESX的架构图(点击可看大图)(参【2】)ESX主要可被分为两部分:其一是用于提供管理服务的Service Console,其二是ESX的核心,也是主要提供虚拟化能力的VMKernel。Service Console简单的来说,Service Console就是一个简化版Redhat Enterprise OS。虽然其不能实现任何虚拟化功能,但是对这个ESX架构而言,它却是一个不可分割的一部分。主要有五个方面功能:1.启动VMKernel,当ESX主机启动的时候,首先会启动Service Console,接着在Linux runlevel 3上启动VMKernel,之后将全部硬件资源的管理权移交给VMKernel。当VMKernel启动成功之后Service Console就成为运行VMKernel上面的第一个虚拟机。2.提供各种服务接口,比如命令行,Web接口,SDK接口等,并安装VirtualCenter Agent以支持很多需要和Virtual Center配合的高级服务,比如,vMotion和DRS等。3.性能检测,因为所有VMkernel的性能数据都会记录在Service Console的/proc目录下,所以不仅能够通过脚本来处理这些性能数据,而且还能使用Service Console自带的ESXTOP命令来观测。4.认证,Service Console提供多种认证机制。5.负责主机部分硬件的管理,比如,鼠标,键盘,显示屏和CD-ROM等等。注:虽然Service Console提供了许多功能,但因为其本身资源所限的原因(关于这点,我曾经和一位VMware工程师有过聊天,好像整个Service Console大概只能占有280MB内存和少量的I/O),所以不适合在Service Console中执行一些重量级的任务,比如:上传或者复制虚拟磁盘(Virtual Disk)。VMKernelVMKernel是由VMware开发的基于POSIX协议的操作系统,它提供了很多在其它操作系统中也能找到的功能,比如,创建和管理进程,信号(Signal),文件系统和多线程等。但它是为运行多个虚拟机而“度身定做”的。它的核心功能是资源进行虚拟化。下面将通过CPU,内存和I/O这三个方面,来讲解VMKernel是如何实现虚拟化的。CPU在CPU方面,ESX使用了在第二篇提到的两个全虚拟化技术:优先级压缩(Ring Compression)和二进制代码翻译(Binary Translation)。优先级压缩,指的是为了让VMKernel获得所有物理资源的控制权,比如CPU。这就需要让VMKernel运行在Ring 0,在其上面的虚拟机内核代码是运行在Ring 1,而虚拟机的用户代码只能运行在Ring 3上。这种做法不仅能让VMKernel安全地控制所有的物理资源,而且能让VMKernel截获部分在虚拟机上执行的特权指令,并对其进行虚拟化。二进制代码翻译,虽然上面的优先级压缩这个技术已经处理了很多特权指令引发的异常情况,但是由于X86架构在初始设计方面并没有考虑到虚拟化这个需求,所以有很多X86特权指令成了优先级压缩的漏网之鱼,虽然通过传统的Trap-Emulation技术也能处理这些指令,但是由于其不仅需要花时间观测有潜在影响的指令,而且还要监视那些非常普通的指令,导致Trap-Emulation的效率非常低,所以VMware引进了二进制代码翻译这个技术,这个技术能让那些非常普通的指令直接执行,不干涉,并提供接近物理机的速度,但会扫描并修改那些有嫌疑的代码,使其无法对虚拟机造成错误的影响。由于大多数代码都不属于有嫌疑的,所以二进制代码翻译的效率远胜Trap-Emulation。还有经过VMware长达十年的调优,使得二进制代码翻译这个技术越发优秀。接下来,谈一下的VMware的二进制代码翻译技术的特点:1.纯二进制:二进制翻译器的输入和输出都是二进制的X86代码,而不是文本形式的源代码。2.动态:二进制代码只会在运行时翻译,翻译器会在生成代码之间进行串联。随需应变:只有在代码即将执行时翻译,这样只有代码才会被翻译,从而避免对数据的进行翻译。3.基于底层:翻译器只会根据X86指令集进行翻译,而不是上层的二进制接口。4.子集:如果翻译器的输入是完整的X86指令集,但是它的生成的代码是X86的安全子集,同时意味着生成的代码能在低权限的用户模式运行。5.灵活:翻译的代码会根据虚拟机的运行状态来进行调整,从而提升效率。对于CPU虚拟化而言,只有上面这两种技术是远远不够的,还需要调度技术,也就是需要CPU调度器(Scheduler)。但是CPU的调度器和常见操作系统的调度器是很不同的,因

    注意事项

    本文(剖析系统虚拟化(17页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开