G-Vmware与虚拟化技术

上传人:wux****ua 文档编号:22855619 上传时间:2021-06-01 格式:PPT 页数:33 大小:849KB
收藏 版权申诉 举报 下载
G-Vmware与虚拟化技术_第1页
第1页 / 共33页
G-Vmware与虚拟化技术_第2页
第2页 / 共33页
G-Vmware与虚拟化技术_第3页
第3页 / 共33页
资源描述:

《G-Vmware与虚拟化技术》由会员分享,可在线阅读,更多相关《G-Vmware与虚拟化技术(33页珍藏版)》请在装配图网上搜索。

1、Company LOGO Vmware与虚拟化技术 Company Logo preview Vmware的 I/O虚拟化 Vmware 的 CPU虚拟化 Vmware内存虚拟化 Vmware简介 虚拟化技术概述 Company Logo Vmm简介 Vmm就是虚拟机监视器( Virtual Machine Monitor),它是建立在虚 拟机和硬件中间的一层监控软件,负责对硬件资源以及各个虚拟机之 间进行协调,分配和管理。 Company Logo Vmm的发展历程 2005年 1990年代 1980 1990年代 1960年代 虚拟化技术重新流行 发掘 vmm新特性 硬件价格降低, vmm

2、不受重视 vmm产生,复用硬件资源 Company Logo VMM的特性 1 所有在 VMM上运 行的程序必须像在 原始硬件上运行的 效果一样,要高效 2 大多数的指令必须 直接在真实的处理 器上运行,而不需 要解释每条指令 3 VMM必须完全控 制硬件,任何 VM 不能穿越 VMM直 接控制硬件 Company Logo Vmware简介 VMWare是一款很流行的运行在 IA-32平 台上的虚拟机软件。其特点如下: vmm模型: 属于主机 os模型, Vmware的虚拟机安装在主机 os上,由主机 os来提供良好的设备驱动。 虚拟化方法: Vmware采用完全虚拟化技术,所以不需要修改

3、原来的操作系统,而且可以同时支持不同的操作系统。 主机和 vmm切换开销大,速度比较慢。 Company Logo Vmware内存虚拟技术 VMWare主要采用的内存虚拟技术: Balloon技术 基于内容的页共享技术 空闲内存缴税技术( idle memory tax) 动态再分配策略 Company Logo Balloon技术 VMM控制每个 vm得到多少内存,也必须周期性的换出 页面到磁盘,来回收内存。但客户 os可能比 vmm有更 好的调度算法。 VMware的 ESX server使用了一种气球“ balloon”进程。 气球( balloon)模块作为内核服务程序加载到 gue

4、st os中,通 过一个私有的信道与 ESX服务器通信。 如果 Vmm要回收内存,则询问 balloon进程,对其加压,使得 气球膨胀。在气球膨胀过程中,客户 os感受到了自己内存的压 力,很专业地选出适合换出的页面,并且告诉 balloon,这个 balloon再告诉 vmm换出哪些页面。 气球放气的过程与气球充气过程相反, guest os 给气球放气, 通知 Vmm要重新分配内存。 Company Logo 基于内容的页共享技术 现代 os和 app都比较大。运行多个 vm,意味着要使用 可观的内存来存储不同 vm中相似的冗余的多份代码、 数据的拷贝。 vmware使用基于内容的页面共享

5、来支持服务器。 Vmm追踪物理页面的内容,如果发现它们是相同的,那么 vmm修改 vm的影子页表来指向一个唯一的拷贝。这样 Vmm就 可以降低冗余度,节约出内存。 因为使用了 copy on write的页面共享模式, VMM在相应页面内容发 生改变之前,才为每个 VM拷贝一份。极大节约了物理内存的使用。 试想,一个 x86计算机上运行了 30台使用 window 2000的 vm,但内存 里面却只有一份 windows内核,将大大节约物理内存。 Company Logo 空闲内存缴税技术 ESX服务器通过引进空闲内存缴税技术 ( idle memory tax)解决内存管理。 该技术基本思想

6、就是不活动的客户程序的空 闲页面所收的税比活动的客户程序的空闲页 要多,当内存感到压力时,优先回收不活动 的客户程序的页。税率规定了可能从客户程 序回收的空闲页面的最大部分。 Company Logo 空闲内存缴税技术 有一个公式来计算每个页共享的比率 这里的 S是表示共享的页, P是表示分配的页, f是表示活动的部分。空闲页的开销是 , 其中 ,税率 控制回收空闲内存需要的 策略。极端情况下, 0说明这个策略纯粹 基于共享的隔离。 表示所有的客户程 序的空闲内存都可以回收。 Company Logo 空闲内存缴税技术 ESX 服务器的空闲页面税率参数默认配置为 75。这样允许回收系统中大多数

7、空闲内存, 而且也能提供一些缓冲,预防突发的大量请 求分配内存的状况,屏蔽系统回收的延迟。 Company Logo 动态再分配策略 大多数操作系统想要保持一个最小的空闲内存 的数量。例如 BSD Unix通常当内存小于 5时 开始回收内存,直到内存达到 7才停止回收 内存。 ESX服务器也是这样实现的,但它使用 了 4级回收入口来反应不同的回收状态: High:对应 6, high状态下,空闲内存充足,没有 执行回收的动作。 Soft:对应 4, soft状态,系统使用气球技术回收内 存,仅在气球机制回收力度不够才使用页面调度。 Hard:对应 2, hard状态下,系统主要依靠强制的 页面

8、调度来回收页面。 Low:对应 1 ,一旦空闲页面的数量达到 low标准,系 统通过页面调度持续的对内存进行回收,并且阻塞 所有正在执行着的且超过它们内存分配数量的 VM。 Company Logo Vmware的 CPU虚拟化 直接执行技术: 直接执行技术中, vm的特权指令和非特权指令都在 CPU的非特权模式下,而 VMM在特权模式下运行。 当 vm试着执行特权操作时, CPU捕捉异常( trap) 到 vmm,并使 vm中特权操作与 vmm控制时一样。 这种方式让 vmm得到对 CPU的最大控制。 例子: vmm处理一条关中断指令。如果让客户 os可 执行关中断是不安全的,如果这样 vm

9、m就无法重新 获得 CPU控制权。所以其做法是, vmm捕捉客户的 关中断操作,并且记录相应的 vm已经关中断。 Vmm只是延时发送中断结果,直到特定的 vm开中 断为止。 Company Logo Vmware的 CPU虚拟化 二进制翻译: 二进制翻译( BT)是从一种指令集到另一种指令集 的自动代码转换。 二进制翻译可以分为动态翻译和静态翻译,可以仅 翻译用户级代码也可以进行整系统翻译。静态翻译 是在脱机过程中进行翻译工作,然后在运行时执行 翻译过的代码。动态二进制翻译是在程序运行期间 把代码片段从旧指令集翻译到目标指令集。 Company Logo Vmware的 CPU虚拟化 二进制翻

10、译,输入的是二进制的代码,翻译出来的 是二进制指令的子集,翻译有一部分是将特权指令 转换为非特权指令, BT在翻译的同时,还使用了一 些虚拟的寄存器,供修改指令的时候使用,可以让 一些访问特殊寄存器的指令来访问虚拟寄存器。 BT 首先根据二进制代码生成 IR( intermediate representation)对象,然后将这些 IR分为翻译单元 TU, 12个指令一个单元,如果有控制流语句,比如 跳转语句等等也作为划分的依据。接着就对这样一 个单位进行翻译,生成 CCF( compiled code fragment), BT翻译出来的代码放在 TC ( translation cach

11、e)中替代原来的代码执行。执行 相同的代码,比如循环等,一段 CCF可以重复使用。 Company Logo Vmware的 CPU虚拟化 Vmware的做法 : 直接执行、快速二进制翻译结合:为了提供 一种快速、兼容的 x86虚拟化, Vmware研发 出一种新的虚拟化技术,这种技术将传统的 直接执行、快速二进制翻译结合。在现代 os 中,运行普通 app程序的处理器模式都是可 虚拟化的,于是可以使用直接执行方式。一 个二进制翻译器可以运行不可虚拟化的特权 模式,使用不可虚拟化的 x86指令集合。这 种 vm可以与硬件匹配,也可以保持软件兼容 性。 Company Logo Vmware的

12、CPU虚拟化 VMware的二进制译码源、目标指令集集合相同, 比较简单。在二进制翻译器的控制下运行特权指令 代码。译码器把内核码翻译成相似的块,使得翻译 后的模块直接在 CPU上运行,代替敏感的指令。二 进制翻译系统把已经翻译的块缓存到 trace cache, 这样在后续执行时就无需重复翻译了。 二进制翻译虽然要花费代价,但是其工作负荷可以 忽略。译码器只运行代码的一个片段,当 trace cache 热身后,其执行速度与直接执行几乎无异。 二进制翻译可以减少 trap捕捉带来的开销,是直接 执行的优化方法。 Company Logo Vmware的 I/O虚拟化 面临问题: 现在的计算环

13、境中有越来越多种类的 I/O 设备, I/O虚拟变得更难。 X86环境支持不同厂商的不 同程序接口, vmm需要与很多种类的设备通信,这个 编写工作很难。比如图形子系统和现代服务器的网络 接口都对性能要求很高,这对虚拟化的效率要求就更 高了。 Company Logo Vmware的 I/O虚拟化 Vmware的策略: VMWare针对这个问题把 VMM的层次搭在一 个操作系统之上,使用宿主机 os结构,宿主 机 os一般是 windows或者 linux,一般 I/O都有 这些 os 的驱动。对于 I/O的访问就可以使用 宿主操作系统中的驱动。 如果 VM上的操作系统要读取虚拟磁盘, VMM

14、就将它转化为宿主操作系统中读取文件 的工作,如果 VM上的操作系统要对显示设 备进行访问,就由操作系统对于 VM的虚拟 显示设备进行操作。 Company Logo Vmware的 I/O虚拟化 主机 os模式的好处: 容易安装,就像装个应用程序一样 很容易从宿主机上得到对 I/O设备的支持 还可以使用宿主机上的调度,资源管理等服 务 主机 os模式的缺点: 效率太低,虚拟机对 I/O的访问必须先传给宿 主机,然后还要通过宿主机的软件层。 宿主机的资源管理通常不会提供操作隔离和 服务保证 Company Logo Vmware的 I/O虚拟化 VMM世界和主机世界: Vmware的主机 vm模

15、式把虚拟软件分 为 2个部分 , 一部分是 vmm, 用于虚拟 CPU,另外一部分是一个使用 os进行设 备支持的 app以及一个置于 os内部的 VM driver 来作为 app和 os的中介 。 Company Logo Vmware的 I/O虚拟化 VMM世界和主机世界 Company Logo Vmware的 I/O虚拟化 VMM世界和主机世界: Vmware workstation 象普通程序一样安装在 os中 ( 宿主 ) , 运行时候 , vmapp部分使用 vmdriver把 自己加载到主 os中 , 从而建立起直接运行在硬件上 的特权 VMM。 于是 , 物理处理器要么运行

16、在 vmm世 界 , 要么运行在主机世界 , 而 vmdriver控制 2个世界 的转换 。 在 vmm和主机世界之间切换 , 包括保存和 重启 CPU上所有的用户和系统状态 。 在这种体系结 构中 , 当客户 os进行 I/O操作时 , VMM截取这个操 作 , 并且切换到主机世界 , 而不是直接访问本地硬 件 。 在主机世界 , vmapp会代替 vm使用适当的系统 调用以实现 I/O操作 。 比如 , 客户 os请求磁盘扇区的 操作 , 可能转换为主机 os中的 read( ) 调用来获取 相应数据 。 Company Logo Vmware的 I/O虚拟化 VmDriver : VMW

17、are并不完全在应用程序空间运行,它安装一个操 作系统驱动 VMDriver,这样可以很容易地访问设备。 Vmware的 Vm安装在主机 os上, VMdriver作为驱动保证 它能更快访问设备。 在网络接口的实现, VMDriver将物理网卡置为混杂模式, Vmware通过 VmDriver创建一种虚拟以太网桥,收取所 有的网络包, VmDriver分析所有的包,并且分发给每个 相应的虚拟机。 Vmdriver在虚拟网桥中可以实现 NAT (网络地址翻译),这样每个 vm都以为自己有独立的 IP。 Company Logo Vmware的 I/O虚拟化 虚拟化 I/O设备 为了虚拟化 I/O

18、设备, vmm必须截获所有的客户 os的 I/O操作。在 PC 机上,这些访问是通过特权的 IA-32 IN 和 OUT指令完成的。这些指 令被 VMM捕捉,并且在 vmm或者 vmapp中被相关软件模拟。任何与 物理 I/O硬件交互的行为都交给 vmapp来处理, vmm也可能处理那些 不与硬件交互的访问。 要提供完全的硬件虚拟比较困难,所以 VMWare提供一个通用的系 统虚拟, PS/2 键盘, PS/2 鼠标,软驱, IDE 控制器, ATAPI 光驱, Soundblaster 声卡,串口,并口,一个标准显卡和一些网卡。提供 一个通用的硬件虚拟大大简化了 VMWare的实现。少量的虚

19、拟设备 可以减轻 I/O虚拟化的工作量。 在主机体系结构下虚拟化 I/O设备的开销主要来自 vmm和主机世界的 切换,另外还来自处理与硬件通信的特权指令。对于持续高吞吐量 和低延迟的设备,这些开销非常显著。而对于键盘等设备,基本没 有影响。 Company Logo Vmware的 I/O虚拟化 虚拟网卡: 虚拟网卡在客户 os看来是功能齐全的 PCI以太网控制器,有它自己 的 MAC地址。虚拟的网卡用 2种方式与主机相连,一是它可以被桥 接到与物理网卡相同的物理网络,或者它可以被连接到一个建立在 主机上的虚拟网络。这 2种情况下的连接都是通过 VMNet driver(被 加载到主机 os里

20、面的一种驱动)实现的。 严格来说,被桥接到物理网卡的虚拟网卡其实是真实的以太网桥。 它的包都带有自己的 MAC地址,被发送。 VMNet driver把被桥接的 物理网卡设置为混合模式,这样来接收虚拟网卡的 MAC地址的响应。 这种方式下,虚拟网卡与真实网卡没有区别。 与桥接方式不同,虚拟网络是完全在主机内部的。如果需要,主机 os会进行路由或者 IP伪装来把虚拟网络连接到任何种类的外部网络。 Company Logo Vmware的 I/O虚拟化 虚拟网卡 Vmware的网络子系统提供虚拟以太网适配器, hub和网桥。 hub可以被 桥接到一个物理以太网适配器,也可以连接到主机 os内部的虚

21、拟网络 接口。虚拟网桥和 hub都是通过加载到主机 os中的 VMNet driver实现的。 Company Logo Vmware的 I/O虚拟化 通过虚拟网卡发送和接收数据包 Company Logo Vmware的 I/O虚拟化 通过虚拟网卡发送和接收数据包 : 上图描述了发包和收包的相关过程。客户 os运行设备驱 动作为控制器。驱动程序读写一系列虚拟 I/O端口来初始 化包的传送,每次读写都被传回 vmapp来模拟端口访问。 发包最后的 OUT指令,虚拟控制器对 vmnet driver进行 了 write()调用,这样就通过主机的网卡把数据包发到 网络,然后 vmapp再切换到 VMM世界,并且发起一个中 断来通知客户设备驱动程序 包已经送出。 包的接收是相反的。被桥接的主机网卡把包送到 VMNet。 VMApp定时地运行 select(), read(),看看有没有 来自 VMM的收包虚拟中断。 VMM发出虚拟中断请求 ( IRQ),客户驱动发起一系列的 I/O访问来作为对硬件 收包的响应。 Company LOGO

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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