Vmware与虚拟化技术_第1页
Vmware与虚拟化技术_第2页
Vmware与虚拟化技术_第3页
Vmware与虚拟化技术_第4页
Vmware与虚拟化技术_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vmware与虚拟化技术previewVmware的I/O虚拟化

Vmware

的CPU虚拟化

Vmware内存虚拟化

Vmware简介

虚拟化技术概述

CompanyLogoVmm简介Vmm就是虚拟机监视器(VirtualMachineMonitor),它是建立在虚拟机和硬件中间的一层监控软件,负责对硬件资源以及各个虚拟机之间进行协调,分配和管理。CompanyLogoVmm的发展历程2005年1990年代1980-1990年代1960年代虚拟化技术重新流行发掘vmm新特性硬件价格降低,vmm不受重视vmm产生,复用硬件资源CompanyLogoVMM的特性1所有在VMM上运行的程序必须像在原始硬件上运行的效果一样,要高效2大多数的指令必须直接在真实的处理器上运行,而不需要解释每条指令3VMM必须完全控制硬件,任何VM不能穿越VMM直接控制硬件CompanyLogoVMM三种模型根据VMM在物理系统中实现位置不同,主要分为三种监控模式:就是说VMM完全安装在裸机上,拥有最高控制权,客户os处于低特权级别,VMM可以干涉客户os的任何行为。主机模式:虚拟机安装在主机os上,这样不用修改原来的操作系统,并且主机os可以提供良好的设备驱动,但是这种方式性能比较低下。比如vmware就是使用了主机模式。混合模式:结合了以上两种模式的好处,性能比主机模式好,也可以利用原有os

的设备驱动,比如XEN就是混合模式的虚拟机的例子。CompanyLogo虚拟化技术分类虚拟化技术主要分为完全虚拟化和半虚拟化。完全虚拟化方法:不需要修改客户os,可以同时支持不同的os。完全虚拟化方法的代表是vmware。现在Inter的Vanderpool技术,AMD的Pacifica技术已经对完全虚拟化方法提供硬件支持。半虚拟化方法:需要修改客户os来适应新的体系结构,产生对现有os

的兼容问题,不过由于半虚拟化方法可以修改客户机的体系结构,这样总体性能还是可以提高。半虚拟化方法的代表是XEN。CompanyLogoVmware简介VMWare是一款很流行的运行在IA-32平台上的虚拟机软件。其特点如下:vmm模型:属于主机os模型,Vmware的虚拟机安装在主机os上,由主机os来提供良好的设备驱动。虚拟化方法:

Vmware采用完全虚拟化技术,所以不需要修改原来的操作系统,而且可以同时支持不同的操作系统。主机和vmm切换开销大,速度比较慢。CompanyLogoVmware内存虚拟技术VMWare主要采用的内存虚拟技术:Balloon技术基于内容的页共享技术空闲内存缴税技术(idlememorytax)动态再分配策略CompanyLogoBalloon技术VMM控制每个vm得到多少内存,也必须周期性的换出页面到磁盘,来回收内存。但客户os可能比vmm有更好的调度算法。VMware的ESXserver使用了一种气球“balloon”进程。气球(balloon)模块作为内核服务程序加载到guestos中,通过一个私有的信道与ESX服务器通信。如果Vmm要回收内存,则询问balloon进程,对其加压,使得气球膨胀。在气球膨胀过程中,客户os感受到了自己内存的压力,很专业地选出适合换出的页面,并且告诉balloon,这个balloon再告诉vmm换出哪些页面。气球放气的过程与气球充气过程相反,guestos

给气球放气,通知Vmm要重新分配内存。CompanyLogo基于内容的页共享技术

现代os和app都比较大。运行多个vm,意味着要使用可观的内存来存储不同vm中相似的冗余的多份代码、数据的拷贝。vmware使用基于内容的页面共享来支持服务器。Vmm追踪物理页面的内容,如果发现它们是相同的,那么vmm修改vm的影子页表来指向一个唯一的拷贝。这样Vmm就可以降低冗余度,节约出内存。因为使用了copyonwrite的页面共享模式,VMM在相应页面内容发生改变之前,才为每个VM拷贝一份。极大节约了物理内存的使用。试想,一个x86计算机上运行了30台使用window2000的vm,但内存里面却只有一份windows内核,将大大节约物理内存。CompanyLogo空闲内存缴税技术ESX服务器通过引进空闲内存缴税技术(idlememorytax)解决内存管理。该技术基本思想就是不活动的客户程序的空闲页面所收的税比活动的客户程序的空闲页要多,当内存感到压力时,优先回收不活动的客户程序的页。税率规定了可能从客户程序回收的空闲页面的最大部分。CompanyLogo空闲内存缴税技术有一个公式来计算每个页共享的比率这里的S是表示共享的页,P是表示分配的页,f是表示活动的部分。空闲页的开销是,其中,税率控制回收空闲内存需要的策略。极端情况下,=0说明这个策略纯粹基于共享的隔离。表示所有的客户程序的空闲内存都可以回收。CompanyLogo空闲内存缴税技术ESX服务器的空闲页面税率参数默认配置为75%。这样允许回收系统中大多数空闲内存,而且也能提供一些缓冲,预防突发的大量请求分配内存的状况,屏蔽系统回收的延迟。CompanyLogo动态再分配策略大多数操作系统想要保持一个最小的空闲内存的数量。例如BSDUnix通常当内存小于5%时开始回收内存,直到内存达到7%才停止回收内存。ESX服务器也是这样实现的,但它使用了4级回收入口来反应不同的回收状态:High:对应6%,high状态下,空闲内存充足,没有执行回收的动作。Soft:对应4%,soft状态,系统使用气球技术回收内存,仅在气球机制回收力度不够才使用页面调度。Hard:对应2%,hard状态下,系统主要依靠强制的页面调度来回收页面。Low:对应1%,一旦空闲页面的数量达到low标准,系统通过页面调度持续的对内存进行回收,并且阻塞所有正在执行着的且超过它们内存分配数量的VM。CompanyLogoVmware的CPU虚拟化直接执行技术:直接执行技术中,vm的特权指令和非特权指令都在CPU的非特权模式下,而VMM在特权模式下运行。当vm试着执行特权操作时,CPU捕捉异常(trap)到vmm,并使vm中特权操作与vmm控制时一样。这种方式让vmm得到对CPU的最大控制。例子:vmm处理一条关中断指令。如果让客户os可执行关中断是不安全的,如果这样vmm就无法重新获得CPU控制权。所以其做法是,vmm捕捉客户的关中断操作,并且记录相应的vm已经关中断。Vmm只是延时发送中断结果,直到特定的vm开中断为止。CompanyLogoVmware的CPU虚拟化二进制翻译:二进制翻译(BT)是从一种指令集到另一种指令集的自动代码转换。二进制翻译可以分为动态翻译和静态翻译,可以仅翻译用户级代码也可以进行整系统翻译。静态翻译是在脱机过程中进行翻译工作,然后在运行时执行翻译过的代码。动态二进制翻译是在程序运行期间把代码片段从旧指令集翻译到目标指令集。CompanyLogoVmware的CPU虚拟化二进制翻译,输入的是二进制的代码,翻译出来的是二进制指令的子集,翻译有一部分是将特权指令转换为非特权指令,BT在翻译的同时,还使用了一些虚拟的寄存器,供修改指令的时候使用,可以让一些访问特殊寄存器的指令来访问虚拟寄存器。BT首先根据二进制代码生成IR(intermediaterepresentation)对象,然后将这些IR分为翻译单元TU,12个指令一个单元,如果有控制流语句,比如跳转语句等等也作为划分的依据。接着就对这样一个单位进行翻译,生成CCF(compiledcodefragment),BT翻译出来的代码放在TC(translationcache)中替代原来的代码执行。执行相同的代码,比如循环等,一段CCF可以重复使用。CompanyLogoVmware的CPU虚拟化Vmware的做法:直接执行、快速二进制翻译结合:为了提供一种快速、兼容的x86虚拟化,Vmware研发出一种新的虚拟化技术,这种技术将传统的直接执行、快速二进制翻译结合。在现代os中,运行普通app程序的处理器模式都是可虚拟化的,于是可以使用直接执行方式。一个二进制翻译器可以运行不可虚拟化的特权模式,使用不可虚拟化的x86指令集合。这种vm可以与硬件匹配,也可以保持软件兼容性。CompanyLogoVmware的CPU虚拟化VMware的二进制译码源、目标指令集集合相同,比较简单。在二进制翻译器的控制下运行特权指令代码。译码器把内核码翻译成相似的块,使得翻译后的模块直接在CPU上运行,代替敏感的指令。二进制翻译系统把已经翻译的块缓存到tracecache,这样在后续执行时就无需重复翻译了。二进制翻译虽然要花费代价,但是其工作负荷可以忽略。译码器只运行代码的一个片段,当tracecache热身后,其执行速度与直接执行几乎无异。二进制翻译可以减少trap捕捉带来的开销,是直接执行的优化方法。CompanyLogoVmware的I/O虚拟化面临问题:现在的计算环境中有越来越多种类的I/O设备,I/O虚拟变得更难。X86环境支持不同厂商的不同程序接口,vmm需要与很多种类的设备通信,这个编写工作很难。比如图形子系统和现代服务器的网络接口都对性能要求很高,这对虚拟化的效率要求就更高了。CompanyLogoVmware的I/O虚拟化Vmware的策略:VMWare针对这个问题把VMM的层次搭在一个操作系统之上,使用宿主机os结构,宿主机os一般是windows或者linux,一般I/O都有这些os

的驱动。对于I/O的访问就可以使用宿主操作系统中的驱动。如果VM上的操作系统要读取虚拟磁盘,VMM就将它转化为宿主操作系统中读取文件的工作,如果VM上的操作系统要对显示设备进行访问,就由操作系统对于VM的虚拟显示设备进行操作。

CompanyLogoVmware的I/O虚拟化主机os模式的好处:容易安装,就像装个应用程序一样很容易从宿主机上得到对I/O设备的支持还可以使用宿主机上的调度,资源管理等服务主机os模式的缺点:效率太低,虚拟机对I/O的访问必须先传给宿主机,然后还要通过宿主机的软件层。宿主机的资源管理通常不会提供操作隔离和服务保证

CompanyLogoVmware的I/O虚拟化VMM世界和主机世界:Vmware的主机vm模式把虚拟软件分为2个部分,一部分是vmm,用于虚拟CPU,另外一部分是一个使用os进行设备支持的app以及一个置于os内部的VMdriver来作为app和os的中介。CompanyLogoVmware的I/O虚拟化VMM世界和主机世界CompanyLogoVmware的I/O虚拟化VMM世界和主机世界:Vmwareworkstation象普通程序一样安装在os中(宿主),运行时候,vmapp部分使用vmdriver把自己加载到主os中,从而建立起直接运行在硬件上的特权VMM。于是,物理处理器要么运行在vmm世界,要么运行在主机世界,而vmdriver控制2个世界的转换。在vmm和主机世界之间切换,包括保存和重启CPU上所有的用户和系统状态。在这种体系结构中,当客户os进行I/O操作时,VMM截取这个操作,并且切换到主机世界,而不是直接访问本地硬件。在主机世界,vmapp会代替vm使用适当的系统调用以实现I/O操作。比如,客户os请求磁盘扇区的操作,可能转换为主机os中的read()调用来获取相应数据。CompanyLogoVmware的I/O虚拟化VmDriver

:VMWare并不完全在应用程序空间运行,它安装一个操作系统驱动VMDriver,这样可以很容易地访问设备。Vmware的Vm安装在主机os上,VMdriver作为驱动保证它能更快访问设备。在网络接口的实现,VMDriver将物理网卡置为混杂模式,Vmware通过VmDriver创建一种虚拟以太网桥,收取所有的网络包,VmDriver分析所有的包,并且分发给每个相应的虚拟机。Vmdriver在虚拟网桥中可以实现NAT(网络地址翻译),这样每个vm都以为自己有独立的IP。CompanyLogoVmware的I/O虚拟化虚拟化I/O设备为了虚拟化I/O设备,vmm必须截获所有的客户os的I/O操作。在PC机上,这些访问是通过特权的IA-32IN和OUT指令完成的。这些指令被VMM捕捉,并且在vmm或者vmapp中被相关软件模拟。任何与物理I/O硬件交互的行为都交给vmapp来处理,vmm也可能处理那些不与硬件交互的访问。要提供完全的硬件虚拟比较困难,所以VMWare提供一个通用的系统虚拟,PS/2键盘,PS/2鼠标,软驱,IDE控制器,ATAPI光驱,Soundblaster

声卡,串口,并口,一个标准显卡和一些网卡。提供一个通用的硬件虚拟大大简化了VMWare的实现。少量的虚拟设备可以减轻I/O虚拟化的工作量。在主机体系结构下虚拟化I/O设备的开销主要来自vmm和主机世界的切换,另外还来自处理与硬件通信的特权指令。对于持续高吞吐量和低延迟的设备,这些开销非常显著。而对于键盘等设备,基本没有影响。CompanyLogoVmware的I/O虚拟化虚拟网卡:虚拟网卡在客户os看来是功能齐全的PCI以太网控制器,有它自己的MAC地址。虚拟的网卡用2种方式与主机相连,一是它可以被桥接到与物理网卡相同的物理网络,或者它可以被连接到一个建立在主机上的虚拟网络。这2种情况下的连接都是通过VMNetdriver(被加载到主机os里面的一种驱动)实现的。严格来说,被桥接到物理网卡的虚拟网卡其实是真实的以太网桥。它的包都带有自己的MAC地址,被发送。VMNetdriver把被桥接的物理网卡设置为混合模式,这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论