火龙果软件漫谈vmware的虚拟化技术文档格式.docx

上传人:b****2 文档编号:4744783 上传时间:2023-05-04 格式:DOCX 页数:30 大小:344.16KB
下载 相关 举报
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第1页
第1页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第2页
第2页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第3页
第3页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第4页
第4页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第5页
第5页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第6页
第6页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第7页
第7页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第8页
第8页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第9页
第9页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第10页
第10页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第11页
第11页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第12页
第12页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第13页
第13页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第14页
第14页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第15页
第15页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第16页
第16页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第17页
第17页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第18页
第18页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第19页
第19页 / 共30页
火龙果软件漫谈vmware的虚拟化技术文档格式.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

火龙果软件漫谈vmware的虚拟化技术文档格式.docx

《火龙果软件漫谈vmware的虚拟化技术文档格式.docx》由会员分享,可在线阅读,更多相关《火龙果软件漫谈vmware的虚拟化技术文档格式.docx(30页珍藏版)》请在冰点文库上搜索。

火龙果软件漫谈vmware的虚拟化技术文档格式.docx

固件开发人员可以使用目标硬件VM在仿真环境中对自己的实际代码进行验证,而不需要等到硬件实际可用的时候。

缺点:

速度非常慢,有时速度比物理情况慢100倍以上。

未来:

因为速度的问题,渐趋颓势,但是还应该有一席之地。

全虚拟化(FullVirtulization)

主要是在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。

这种方式是业界现今最成熟和最常见的,而且属于Hosted模式和Hypervisor模式的都有,知名的产品有IBMCP/CMS,VirtualBox,KVM,VMwareWorkstation和VMwareESX(它在其4.0版,被改名为VMwarevSphere)。

图2.全虚拟化架构图

GuestOS无需修改,速度和功能都非常不错,更重要的是使用非常简单,不论是VMware的产品,还是Sun(Oracle?

)的VirtualBox。

基于Hosted模式的全虚拟产品性能方面不是特别优异,特别是I/O方面。

因为使用这种模式,不仅GuestOS免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,我个人判断,在未来全虚拟化还是主流。

半虚拟化(Parairtulization)

它与完全虚拟化有一些类似,它也利用Hypervisor来实现对底层硬件的共享访问,但是由于在Hypervisor上面运行的GuestOS已经集成与半虚拟化有关的代码,使得GuestOS能够非常好地配合Hyperivosr来实现虚拟化。

通过这种方法将无需重新编译或捕获特权指令,使其性能非常接近物理机,其最经典的产品就是Xen,而且因为微软的Hyper-V所采用技术和Xen类似,所以也可以把Hyper-V归属于半虚拟化。

图3.半虚拟化架构图

这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。

需要对GuestOS进行修改,所以在用户体验方面比较麻烦。

我觉得其将来应该和现在的情况比较类似,在公有云(比如AmazonEC2)平台上应该继续占有一席之地,但是很难在其他方面和类似VMwarevSphere这样的全虚拟化产品竞争,同时它也将会利用硬件辅助虚拟化技术来提高速度,并简化架构。

硬件辅助虚拟化(HardwareAssistedVirtualization)

Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化(具体将在下文详述)来提高性能。

硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于VMwareWorkstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x(intel运用Virtualization虚拟化技术中的一个指令集)和AMD的AMD-V。

现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox,KVM,VMwareESX和Xen。

通过引入硬件技术,将使虚拟化技术更接近物理机的速度。

现有的硬件实现不够优化,还有进一步提高的空间。

因为通过使用硬件技术不仅能提高速度,而且能简化虚拟化技术的架构,所以预见硬件技术将会被大多数虚拟化产品所采用。

操作系统级虚拟化(OperatingSystemLevelVirtualization)

这种技术通过对服务器操作系统进行简单地隔离来实现虚拟化,主要用于VPS(VirtualPrivateServer虚拟专用服务器)。

主要的技术有ParallelsVirtuozzoContainers,Unix-like系统上的chroot和Solaris上的Zone等。

图4.操作系统级架构图

因为它是对操作系统进行直接的修改,所以实现成本低而且性能不错。

在资源隔离方面表现不佳,而且对GuestOS的型号和版本有限定。

不明朗,我觉得除非有革命性技术诞生,否则还应该属于小众,比如VPS。

五大类之间比较:

根据个人的经验,我在性能,用户体验和使用场景这三方面对这五大类进行了比较,具体请看下图:

性能(和物理机速度之比)

用户体验

形式

硬件仿真

30%-

简单

Hosted

全虚拟化

30%-80%+

Hosted/Hypervisor

半虚拟化

80%+

困难

Hypervisor

硬件辅助虚拟化

一般

操作系统级虚拟化

80%

类似于Hypervisor

表1.系统虚拟化五大类之间的比较

因为这表只是我笼统的经验之谈,仅供参考,特别在操作系统级虚拟化这块。

系统虚拟化的用处:

主要有那些用处呢?

(1)软件测试,通过使用VirtualBox和VMwareWorkstation来配置测试环境,不仅比物理方式快捷很多,而且无需购买很多昂贵的硬件,更重要的是,通过它们自带的SnapShot/Pause功能可以非常方便地将错误发生的状态保存起来,这样将极有利于测试员和程序员之间的沟通。

现在已经有很多软件都通过虚拟机的形式进行测试,最著名的例子,莫过于以VirtualBox虚拟机形式发布的ChromeOS测试版。

我第一次接触到虚拟化技术强大威力就是在软件测试方面。

(2)桌面应用,通过诸如VirtualBox和VMwareWorkstation等桌面虚拟化软件能让用户使用其他平台的专属软件,比如使用Linux的用户能够通过VirtualBox上虚拟的Windows环境来访问使用ActiveX技术的网上银行。

(3)服务器整合,通过VMwareESX和Xen能够将多台物理机上的工作量整合到一台物理机上。

现有普遍的整合率在1:

8左右,也就是使用这些软件能将原本需要八台物理机的工作量整合到一台物理机上。

服务器整合不仅能减低硬件,能源和场地等开支,还能极大地简化IT架构的复杂度。

(4)自动化管理,通过使用类似DRS(DistributedResourceScheduling,分布式资源调度),LiveMigration(动态迁移),DPM(DistributedPowerManagement,分布式电源管理)和HA(HighAvailability,高可用性)等高级虚拟化管理技术,能极大地提高整个数据中心的自动化管理程度。

(5)加快应用部署,通过引入虚拟化应用发布格式OVF(OpenVirtualizationFormat),不仅能使第三方应用供应商更方便地发布应用,而且使系统管理员非常简单地部署这个应用(大多数情况下只要轻轻一个点击就可以完成整套部署工作)。

二、剖析系统虚拟化

(2)-X86虚拟化技术

上个月,我曾经和一个龙芯的支持者聊过关于龙芯和云计算的关系。

虽然我个人还是非常支持龙芯,但是在谈到龙芯的未来,我深有顾虑,原因有二:

其一,是缺乏经验丰富的工程师团队,虽然胡老师研究毛选的水平相当顶尖,但是我个人觉得身为龙芯项目带头人的他在芯片设计上面的造诣很难列于世界顶尖。

其二,和本文是密切相关的,就是在低功耗和移动方面,龙芯的MIPS(MillionInstructionsPerSecond)架构好比RISC的代表IBM的Power,而ARM架构和CISC的代表Intel的X86有几分类似,虽然IBM的Power架构在早期由于RISC的原因,在速度上面极为领先,但是由于X86在所支持软件方面的优势,使Intel能投入几倍的资源在研发上面,使得它不仅在市场上处于垄断,而且在速度上面直追Power芯片。

这个在PC时代发生的故事我希望不要在云计算时代重演。

(因为在CPU产业上面的研究不是很深入,如果我说了什么不合适的,请见谅。

我个人也希望龙芯能成功)

接下来就跟大家讲解一下上面提到的X86架构的虚拟化技术。

虚拟化的三大特征

在1974年Popek和Goldberg发表的虚拟化名篇《FormalRequirementsforVirtualizableThirdGenerationArchitectures》中定义了虚拟机(VM)可以被认为是物理机的一种高效隔离的复制,并指出虚拟机应具有的三大特征:

1、一致性,一个运行于虚拟机上的程序,其行为应与直接运行于物理机上的同程序的行为基本一致,只允许有细微的差异,比如在系统时间方面。

2、可控性,VMM(虚拟化管理器)对系统资源有完全的控制能力和管理权限,包括资源的分配,监控和回收。

3、高效性,绝大多数的客户机指令应该由硬件直接执行而无需VMM的参与。

但是要满足这三点,并非易事,因为系统的指令集架构(ISA)需要相应地满足四个的条件:

1、CPU能支持多个特权级,并且VM上面运行的指令能在底特权级(比如Ring3)下正确执行。

2、非特权指令(允许用户直接使用的指令)的执行效果不依赖于CPU的特权级。

3、敏感指令(对系统资源配置有影响的指令)都是特权指令(不允许用户直接使用的指令)。

4、必须支持一种内存保护机制来保证多个虚拟机之间在内存方面的隔离,例如段保护或页保护。

为什么X86架构很难被虚拟化?

虽然X86架构在PC市场占据绝对的垄断地位,但是由于其在初始设计时,并没有考虑到虚拟化需求,所以它对虚拟化的支持不够,特别是它没有满足上面四个条件里面的第三个,其因为是X86的ISA有17条敏感指令(比如LGDT等)不属于特权指令。

也就是说,当虚拟机执行到这些敏感指令的时候,很有可能出现错误,将会影响到整个机器的稳定。

更困难的是,上面所提出的问题只是X86虚拟化所需要面对的问题的一小部分而已,还有许许多多的问题还未涉及。

下面将分CPU虚拟化,内存虚拟化和I/O虚拟化这三部分来介绍全虚拟化,半虚拟化和硬件辅助虚拟化所采用的相关技术。

CPU虚拟化

CPU虚拟化的目标是使虚拟机上的指令能被正常地执行,而且效率接近物理机。

全虚拟化:

主要采用优先级压缩(RingCompression)和二进制代码翻译技术(BinaryTranslation)这两个技术。

优先级压缩能让VMM和Guest运行在不同的特权级下,对X86架构而言,就是VMM运行在特权级最高Ring0下,Guest的内核代码运行在Ring1下,Guest的应用代码运行在Ring3下。

通过这种方式能让VMM截获一部分在Guest上执行的特权指令,并对其进行虚拟化。

但是有一些对虚拟化不友好的指令则需要二进制代码翻译来处理,它通过扫描并修改Guest的二进制代码来将那些难以虚拟化的指令转化为支持虚拟化的指令。

半虚拟化:

其通过修改GuestOS的代码,使其将那些和特权指令相关的操作都转换会发给VMM的Hypercall(超级调用),而且Hypercall支持Batch(批处理)和异步这两种优化方式,使得通过Hypercall能得到近似于物理机的速度,

硬件辅助虚拟化:

主要有Intel的VT-x和AMD的AMD-V这两种技术,而且这两种技术在核心思想上非常相似,都是通过引入新的指令和运行模式,来让VMM和GuestOS能分别运行在其合适的模式下。

在实现方面,VT-X支持两种处理器工作方式:

第一种称为Root模式(Operation),VMM运行于此模式,用于处理特殊指令,另一种称为Non-Root模式(Operation),GuestOS运行于此模式,当在Non-Root模式Guest执行到特殊指令的时候,系统会切换到运行于Root模式VMM,让VMM来处理这个特殊指令。

内存虚拟化

内存虚拟化的目标是能做好虚拟机内存空间之间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,并且效率也能接近物理机。

影子页表(ShadowPageTable),就是为每个Guest都维护一个“影子页表”,在这个表中写入虚拟化之后的内存地址映射关系,而GuestOS的页表则无需变动,最后,VMM将影子页表交给MMU(MemoryManagementUnit内存管理单元)进行地址转换。

页表写入法,当GuestOS创建一个新的页表时,其会向VMM注册该页表,之后在Guest运行的时候,VMM将不断地管理和维护这个表,使Guest上面的程序能直接访问到合适的地址。

EPT(ExtendedPageTable,扩展页表),EPT通过使用硬件技术,使其能在原有的页表的基础上,增加了一个EPT页表,通过这个页表能够将Guest的物理地址直接翻译为主机的物理地址,从而减低整个内存虚拟化所需的Cost。

I/O虚拟化

I/O虚拟化的目标是不仅让虚拟机访问到它们所需要的I/O资源,而且要做好它们之间的隔离工作,更重要的是,减轻由于虚拟化所带来的开销。

通过模拟I/O设备(磁盘和网卡等)来实现虚拟化。

对GuestOS而言,它所能看到就是一组统一的I/O设备,同时GuestOS每次I/O操作都会陷入到VMM,让VMM来执行。

这种方式,对Guest而言,非常透明,无需顾忌底层硬件,比如Guest操作的是SCSI的设备,但实际物理机只有SATA的硬盘。

通过前端(Front-End)/后端(Back-End)架构,将Guest的I/O请求通过一个环状队列传递到特权域(PrivilegedDomain,也被称为Domain-0)。

因为这种方式的相关细节较多,所以会在后文进行深入分析。

最具代表性莫过于Intel的VT-d,AMD的IOMMU和PCI-SIG的IOV(I/OVirtulization)这三个技术。

在这里介绍一下VT-d,其核心思想就是让虚拟机能直接使用物理设备,但是这会牵涉到I/O地址访问和DMA的问题,而VT-d通过采用DMA重映射(Remapping)和I/O页表来解决这两个问题,从而让虚拟机能直接访问物理设备。

还有,IOMMU和VT-d在技术上有很多相似之处。

总结

二进制代码翻译

Hypercall

VT-x

影子页表

页表写入法

EPT

模拟I/O设备

前端/后端架构

VT-d

表1.X86虚拟化技术总结

X86虚拟化技术的未来

随着硬件辅助虚拟化技术不断地发展和优化,将使其在速度和架构方面的优势更明显,但是由于全虚拟化和半虚拟化的一些技术在某些方面还是保持了一定的优势,比如半虚拟化的前端和后端架构和全虚拟化的二进制代码翻译技术。

所以,我个人认为今后X86虚拟化技术的发展将会以硬件辅助虚拟化技术为主,同时以全虚拟化和半虚拟化技术为辅.

三、剖析系统虚拟化(3)-VMwarevSphere的简介

在上篇文章介绍了X86虚拟化技术的发展之后,本篇将把重点对准X86虚拟化技术的领导者VMware和它核心产品VMwarevSphere。

在某种意义上来说,VMware就是X86虚拟化技术的代名词,不论是从客户端的VMwareWorkstation系列,还是服务器端的VMwareInfrastructure(最近改名为vSphere)系列,都属于X86虚拟化技术的代表之作。

而且估计VMware也知道“不进则退”的道理,所以其在客户端和服务器都占据大半份额之后,VMware也已经做好向其他方面进军的努力,那么下面就和大家稍微聊一下VMware在发展方面的总体思路。

VMware的思路

在VMworld2009大会上,VMwareCTOSteveHerrod在提到VMware总体发展方向的时候,他主要提到了三个方面:

1、vSphere,这系列之前的产品名称为VMwareInfrastructure,而且之前已经推出了3代产品,但在2009年初,为了烘托它的第4代产品在云计算所起的作用,将产品更名为“VMwarevSphere”,同时官方也称其为CloudOS或者VDC(VirtualDataCenter)-OS。

vSphere主要用于服务器端虚拟化,通过在一台物理服务器上虚拟出多台虚拟机来起到服务器整合和资源优化等目的。

本篇的下半部分将重点介绍vSphere。

2、vCloud,是VMware的云计算计划,旗下有两个分支,其一是名为VMwarevCloudExpress的IaaS(基础设施即服务)解决方案,其二是名为VMwarePlatformasaService的PaaS(平台即服务)解决方案。

3、VMwareView,是VMware桌面虚拟化产品,通过VMwareView能够在一台普通的物理服务器上虚拟出很多台(桌面整合率普遍为服务器整合率的两倍左右,一般为1:

16)虚拟桌面(VirtualDesktop)来供远端的用户使用(使用RDP或ICA协议进行客户和服务器之间的连接),这样做的优点是简化IT的管理,并节省了开支。

图1VMware三大战略方向(参【3】)

当然,在VMware产品库中还有客户端虚拟化产品的VMwareWorkstation,估计因为这块市场已经比较成熟的原因,所以SteveHerrord并没有在演讲中非常强调。

当然除了云计算之外,智能手机也是业界另一个热门词汇,VMware也有一款名字为VMwareMobile的智能终端虚拟化产品,它的作用在一台智能终端上虚拟出多台虚拟机,以满足不同的需求,比如虚拟两台虚拟机,其一是用于打电话和玩游戏等个人事务,而另一台则是用于接入公司VPN,发Email和使用CRM等企业事务,通过隔离这两种事务并随时切换,来达到安全和方便的效果。

VMwarevSphere

VMwarevSphere主要可被为两部分:

其一是VMM(虚拟化管理器)部分,VMwareESX4,其二是用于整合和管理VMM的VMwarevCenter。

下面是vSphere的架构图:

图1.VMwarevSphere架构图

VMwareESX4

VMwareESX4是属于本系列第一篇提到的Hyperviosr(一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件)形式的VMM,是直接安装硬件(BareMetal)上面,也称为“Type1”。

VMwareESX4和之前VMwareESX3.5/3相比,在功能和特性上有很多更新和扩展,其中最大的区别过于VMwareESX4只支持64bit运行模式,所以其只能安装在支持64位计算的X86物理机上。

除了ESX,VMware还推出了精简版的ESXi,ESXi与ESX的最大区别在于其去除ServiceConsole。

还有,本系列常使用“主机”来表示装有Hyperviosr形式的VMM的物理机。

VMwareESX4主要有三方面功能:

1、InfrastructureService:

就是VMM的功能,也是整个产品的基础。

通过一个在物理机之上的虚拟层能抽象处理器,内存和I/O等资源来运行多个虚拟机。

虚拟机能支持高达8个的vCPU和256GB内存,这样的资源配置能满足高性能应用程序的性能需求。

还支持热添加功能,来向虚拟机热添加虚拟CPU、内存和网络设备,使应用程序能无缝扩展。

2、增强型的InfrastructureService:

除了基本的InfrastructureService之外,ESX4还提供一些增强型的功能,以更好为虚拟化服务,比如,VMDirectPath能增强网络和存储I/O性能,vStorage的ThinProvisioning和LinkedClone这两个技术可减少存储空间达50%左右。

3、ApplicationService:

主要作用是提供一个VMwarevCenterAgent,来将本机的管理和性能信息上传给VMwarevCenter,同时还能根据VMwarevCenter发来的指示来协助执行诸如vMotion和HA这类高级功能。

VMwarevCenter

VMwarevCenter是用于VMwarevSphere环境的管理程序,它作为管理节点来控制和整合属于其域的vSphere主机,其既可以安装物理机的操作系统上,也可以安装在虚拟机的操作系统(官方推荐)。

在实现上面,它是基于Java技术的,后台连接自带的微软SQLServerExpress,也可以使用Oracle的数据库,并可以使用其“链接模式”来集群多个vCenter来支持大量用户的访问。

在通信方面,它通过vSphere主机内部自带vCenterServerAgent来与ESX进行联系,并提供API供外部程序和vCenter客户端调用。

在扩展性方面,它支持很多第三方的插件。

图3VirtualCenter的架构图(参【2】)

基本功能

主要包括六项基本功能:

1、资源和虚拟机的清单管理:

通过这个功能能够列出和管理这个vCenter的管理域内所有的资源(比如存储,网络,CPU和Memory等)和虚拟机。

2、任务调度:

能够更好地支持那些定时或者立即执行的任务(比如vMotion),使各个任务之间不出现抢占资源或者冲突的情况。

3、日志管理:

通过记录任务和事件等日志,来更方便和更安全地管理。

4、警告和事件管理:

通过这个功能,能让用户及时获知系统出现新情况。

5、虚拟机部署:

通过Wizard,上传vApp和虚拟磁盘等方式部署虚拟机。

6、主机和虚拟机的设置:

通过这个功能,不仅能够让用户对一些主机和虚拟机的主要配置

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2