全面分析微软虚拟化技术Hyper.docx

上传人:小飞机 文档编号:5036100 上传时间:2023-05-31 格式:DOCX 页数:11 大小:470.75KB
返回 下载 相关 举报
全面分析微软虚拟化技术Hyper.docx_第1页
第1页 / 共11页
全面分析微软虚拟化技术Hyper.docx_第2页
第2页 / 共11页
全面分析微软虚拟化技术Hyper.docx_第3页
第3页 / 共11页
全面分析微软虚拟化技术Hyper.docx_第4页
第4页 / 共11页
全面分析微软虚拟化技术Hyper.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《全面分析微软虚拟化技术Hyper.docx》由会员分享,可在线阅读,更多相关《全面分析微软虚拟化技术Hyper.docx(11页珍藏版)》请在三一办公上搜索。

1、全面分析微软虚拟化技术Hyper-V毫无疑问,在业界,微软Microsoft是当之无愧的软件霸主,不仅仅在操作系统上占 据巨大的市场份额,更在数据库、迁入式移动计算、搜索引擎等各个方面都具有很 强的影响力,在各个领域都不容忽视。由于低估微软在产品创新和销售执行方面的 能力,众多的企业在与微软的竞争中遭遇挫折。微软进入虚拟化领域已经很有一段时间了(微软在2003年收购了推出了 Virtual PC 软件的Connectix公司,并在其后推出了 Virtual Server服务器虚拟化软件),在 Hpyer-V推出之前,微软在虚拟化领域尤其是服务器虚拟化领域可说是略显不自信, 与竞争对手VMwar

2、e的频频新品相比,Virtual PC和Virtual Server的发布和宣传都 十分低调,毕竟,VMware/Xen等产品凭借出色的性能已经占据了大半江山。而现 在,随着Hyper-V的正式推出,企业级虚拟化领域极可能会引起一场风暴,市场格 局有可能迅速改变。为什么微软的Hyper-V会具有这样的能力呢?注:什么是虚拟化?Hyper-V是一个Hypervisor(系统管理程序),开发代号为Viridian,它主要作用就 是管理、调度虚拟机的创建和运行,并提供硬件资源的虚拟化。Hyper-V是微软伴 随Windows Server 2008最新推出的服务器虚拟化解决方案,在Windows S

3、erver 2008 发布的时候,集成了一个Beta版本的Hyper-V,微软承诺在180天之内会提供正式 版的Hyper-Vo Window Server 2008是4月份发布的,180天就是不到6个月,因此 微软会在9月到10月之间发布正式版的Hyper-V,而目前已经到了 RTM阶段,可 以正常使用了。Hyper-V跟微软自家的Virtual PC、Virtual Server等产品相比,有着很显著的区别, 和竞争对手VMware Server/ESX Server也有很大不同:Hyper-V在构架上绝对是一 个突破性的进展!ApplicationApplicationswMi PRwk

4、J 改VM SenkssWS0&WSOffHparca AdapterVMXEN-enMdLfllCJ*同梆71削岫*Hj伽例of g龄 Os1win. KernelWindows Server 2003 (32-bit or 64- bit)x86 or x64 ServerHyper-V 之前、Virtual Server 2005 R2 的架构Descried for Windows Server HardwareDeEaiFed arctirtecliiF&iDf Windows Server YirtuaiirstonVirtual HardwareVirtual HardwareP

5、trcnt PtnitianHyper-V虚拟化细节架构微软发布的架构图资料有很多,然而主要内容都很相似,就是上图那样。rorfeUserApphaKnsVMBu&VMBusVMBuEmulah 口 nWindows hypervisorVirtual Machine Operating SystemVirtual Machine Operating SystemWindows.Hyper-V的本质是一个VMM (虚拟化官理程序),和微软之前的Virtual Server系 列产品,处在的层次不同,它更接近于硬件,这一点比较像VMware的ESX Server 系列,实际上Hyper-V属于微

6、软的第一个裸金属虚拟化产品(Bare-MetalVirtualization)。然而,在一些基础架构上,Hyper-V和ESX Server又有着明显的不 同,所以说,Hyper-V是很特别的,且看下页分解。作为一个虚拟化产品,Hyper-V具有一个很特别的要求:处理器必须支持AMD-V 或者Intel VT技术,也就是说,处理器必须具备硬件辅助虚拟化技术。对于一个虚拟化产品来说,要求一个硬件特性是比较奇特的事情(要求支持一个指 令集不算),微软之前的Virtual Server 2005R2不需要这个特性。对于VMware 的 产品来说,这也只是一个可选的特性,不像Hyper-V那样,是一个

7、硬性的要求。处 理器不支持VT/AMD-V,就无法运行Hyper-VoMiddlo-aremndowvirtualUnrBEOig Lihuue viifugi Bilg&mEn.w Rm? Mm*CaretAss 14 Mid 眼MM3hAren)VT-x处理器辅助虚拟化技术,是Hyper-V的硬性要求关于VT的具体作用,可以查看x86虚拟化难题解决:Intel VT或者从VT-x到 VT-d Intel虚拟化技术发展蓝图。VT,或者AMD-V,是一种硬件辅助虚拟化技 术,用来解决Ring Privilege的问题,传统处理器下虚拟机通过使用指令转换的方法 来在Ring 3执行Ring 0特

8、权指令,严重影响性能,而VT则解决了这个问题。对 VT的依赖和支持是Hyper-V架构的基础,也是Hyper-V最大的特点。也因为Hyper-V需要处理器支持硬件虚拟化辅助,一部分处理器无法应用Hyper-V, 只有较新、非Value型的处理器才能应用。例如访问只有75% 的几率碰到部署在Hyper-V上的虚拟化服务器,剩下的25%都是未Hyper-V虚拟化的服务器。要在这些服务器上应用虚拟化,用户只能选择Virtual Server 2005 R2,或 者其它公司的产品。Microsoft Hyper-V 和 VMware ESX Server 是比较相像的,都是 Bare-Metal 类型

9、,但 是它们的内核架构也有着明显的不同。微软在谈到竞争对手ESX Server时,总会提到,Hyper-V是微内核架构的,而ESX Server是单内核架构,Hyper-V要更好。这两者具有什么不同?到底谁更好呢?内核模式阳户模式徵内松硬仲C A J分属的内技【B 微内核单内核(分层的内核)与微内核单内核和微内核实际上是操作系统内核术语,操作系统的内核一一实现核心功能的 那部分可能是微内核(Micro kernel),也可能是单内核(Monolithic kernel, 有时也叫宏内核Macro kernel)。按照类似封装的形式,这些术语定义如下:微内核(Micro kernel)在微内核中

10、,最常用的功能被精心挑选设计在内核模式 (或者按照上一页的说法,在x86上是Ring 0权限下)运行的一个进程上,而其它 大部分不怎么重要的核心功能都作为单独的进程运行在用户模式下(类似地,Ring 3 权限下)运行,它们通过消息传递进行通讯(例如,Windows采用的进程间通信IPC 机制,IPC就是Inter Process Communication)0最基本的思想就是要尽量地小。通 常微内核只包含了进程调度、内存管理和进程间通信这几个根本的功能。这种设计具有许多好处,例如增加了灵活性,易于维护,易于移植。微内核的模块 化设计让其他核心功能模块都只依赖于微内核模块或其他模块,并不直接依赖

11、硬件。 要添加新的特性只需要另行编写用户模式的微内核服务器。而只需把微内核本身进 行移植就能够完成将整个内核移植到新的平台上。由于模块化的设计,不包含在微内核内的驱动程序可以动态地加载,或者卸载。同 时,微内核也不依赖于固定的文件系统,用户可以随意选择对文件系统的支持。用 户甚至能够在系统运行时将研发出的新系统模块或需要替换现有模块的模块直接而 且迅速的加入系统。不需要的模块将不会被加载到内存中,因此微内核就能够更有效的利用内存。微内核还具有的好处是实时性、安全性比较好,并且更适合于构建 分布式操作系统和面向对象操作系统。微内核操作系统的典型例子是,Mach (一个非原生的分布式操作系统内核,

12、被众多 操作系统采用,例如,被应用在Mac OS X上)、IBM AIX、BeOS,以及 Windows NT(Windows Server 2003 和 Windows Server 2008 都包含其内),还有著名的 Minix(一个主要用于教学的Unix系统)和Amoeba (一个真正原生的分布式操作系统)。 单内核(Monolithic kernel)单内核是个很大的进程。它的内部又能够被分为若 干模块(或层次,或其他),但是在运行的时候,它是一个单独的大型二进制映象。 因为是在同一个进程内,其模块间的通讯是通过直接调用其他模块中的函数实现的, 而不是微内核那样在多个进程之间进行消息传

13、递。因此在运行效率上,单内核会具 有一定的好处。单内核操作系统的典型例子是,大部分Linux,包括BSD在内的几乎所有的Unix, MS-DOS,Windows 9x。例如Sun Solaris的内核就运行着数百个线程以实现各种功 能,而编译过Linux内核的人就知道Linux内核有数十MB之巨。单内核和微内核哪个更好显然是一个很有争议性的问题,必须说明的很有趣的一点 是,这种争论经常会令人想到上一个时代CPU领域中RISC和CISC的斗争。现代 的成功CPU设计中都包含了任何的这两种技术,就像现在Linux (单内核)和 Windows NT (微内核)实际上都是微内核和单内核的混合产物一样

14、,只是或多或少 的问题而已。历史上有过这样的争论,Linux(单内核)的作者Linus和Minix/Amoeba(均为微内核)的作者Andrew S. Tanenbaum教授在讨论组上论战,并卷入了大量 的爱好者。最终Linus也同意Tanenbaum微内核架构更为先进的论点。掉书袋就到这里,回到Hyper-V上来,通过采用微内核架构,Hyper-V在体积上很 有优势,它的大小只有300k左右(似乎新版本的更加小),而VMware ESX Server 的Linux核心则非常大。就VMM虚拟化管理程序来说,需要的功能不多,因此采 用微内核架构是很合适的,运行效率可以很高。不过就理论上来说,合理

15、配置的单 内核其实和微内核也很相似。哪一种性能更好?这要在测试之后才能知晓了,不过 在这之前,我们接下来可以先看看微内核带来的一个好处:设备驱动程序的变迁。注:分布式操作系统(Distributed Operation Systems)分布式操作系统DOS (可不是Disk Operation System)的具有多个定义,是是管理 分布式系统的资源的操作系统。这样的说法比较抽象,我们可以通过与网络操作系 统(例如,我们使用的Windows)对比来简单阐述分布式操作系统的特点:(1)分布性。分布式操作系统的处理和控制功能均为分布式的;网络操作系统其控 制功能却是集中在某个或某些主机或网络服务器

16、中,即集中式控制方式。(2)并行性。分布式操作系统具有任务分配功能,可将多个任务分配到多个处理单 元上,使这些任务并行执行,从而加速了任务的执行;而网络操作系统通常无任务 分配功能,网络中每个用户的一个或多个任务通常都在本地计算机上处理。(3)透明性。分布式操作系统通常能很好地隐藏系统内部的实现细节。包括对象的 物理位置、并发控制和系统故障等对用户都是透明的。例如,当用户要访问某个文 件时,只需提供文件名而无须知道(所要访问的对象)它是驻留在那个站点上,即 可对它进行访问,亦即具有物理位置的透明性。此外,当分布式操作系统运行一个 程序时,该程序无需经过特别设计以及经过用户特别设置,就可以自动划

17、分到多个 处理器上并行运行。(4)共享性。分布式操作系统支持系统中所有用户对分布在各个站点上的软硬件资 源的共享和透明方式访问。而网络操作系统所提供的资源共享功能仅局限于主机或 网络服务器中资源,对于其它机器上的资源通常仅有使用该机的用户独占。(5)健壮性。分布式操作系统由于处理器和控制功能的分布性而具有较好的可用性 和可靠性,即健壮性,只有所有的处理节点损坏,一个分布式操作系统才算是崩溃 了。典型的分布式系统包括了 SETIHom这样的项目,Cluster、集群、云计算,也属于 分布式操作系统的范畴。典型的分布式操作系统有Amoeba、Mach、DCE等。无论采用什么内核,驱动程序和文件系统

18、总是必要的,虚拟机需要使用服务器的硬 件就需要驱动程序,虚拟机的文档需要保存在适当的文件系统上。在单内核的 VMware ESX Server上,驱动程序包含在单内核内部,虚拟机映像文件则保存在 VMFS (一种类似EXT的文件系统)上,那么微内核架构的Hyper-V呢?这就要谈到 Hyper-V 的 VSP/VSC 架构 了,VSP 是 Virtualization Service Provider (虚 拟化服务提供者),VSC则是Virtualization Services Consumer (虚拟化服务消费者), 还有一个VMBus部件将放在“宿主操作系统”的VSP和虚拟机操作系统的

19、VSC连 接起来。实际上“宿主操作系统”也是一个虚拟机一一就是你最初安装的、带有 Hyper-V 的 Windows Server 2008,微软将其称为 Parent Partition 操作系统,而每一 个虚拟机则称为Child Partition,虚拟机操作系统则称为Child Partition操作系统。Example VSP/VSC DesignChild PartitionsParent PartitionPrwfdfrd byVM Workur PtM,士VolumeFait Path Filter fVSCjhpervcrStortzMniparlPtsTUSPiWrtuii

20、蕤ra*Mmwt(VSC)VSP 与 VPC,注意 VSP 并不是 Virtual Storage Provider 的缩写。V irtual Storage Provider属于VSP的一种上图很好地解释了 Hyper-V使用VSP/VSC架构解决驱动程序/文件系统的方式,通 过加入VSP和VSC以及它们互相沟通的VMBus总线,Hyper-V将虚拟机的操作映 射入Parent Partition的对应驱动程序/文件系统中,简化起来就如下图:Hyper-V 的 VSPs/VSCs、VMBus 架构这种方式具有不少好处,例如,最明显地,Hyper-V可以兼容大量的驱动程序,而 不必为虚拟机开发

21、专用的驱动程序(ESX Server就是这样干的)。我们知道对于服 务器而言,很重要的一个组成部分就是I/O, 一个IO设备没有驱动程序是无法工作 的。现在,只要设备能在Windows Server 2008下工作,那么Hyper-V虚拟机就能使 用这些设备资源,再加上Windows驱动天生就比其他操作系统(如Linux)的驱动 丰富,因此在硬件支持上Hyper-V具有着无可比拟的优势。VMware ESX Server甚 至不能直接应用Linux驱动程序,需要另外进行额外的操作才能使用,因此VMware ESX Server容易遇到设备兼容性方面的问题,当然用户可以使用具备VMware认证

22、的全套硬件以避免这个问题。有利就有弊,VSP/VSC架构需要支持Hyper-V技术的客户端的支持,这样就大为限 制了虚拟机操作系统的选择,不支持Hyper-V的客户操作系统只能使用设备模拟的 方式,性能和以前的Virtual Server 2005 R2没有太大的分别,要享受到Hyper-V性 能的提升,需要虚拟机使用Windows Server 2008,或者内含Xen的Linux/Unix。Hyper-V的客户机操作系统的选择确实只注明了 Windows和少数几种Linux,虽然 笔者猜测或多或少有着商业策略上的因素,不过从技术上来看,确实也有一些限制。 Hyper-V设备驱动的这个优点正

23、好就和微内核驱动程序架构的优点一样,模块化, 架构灵活,不需要更改就可以提供新硬件的支持。敏锐地用户可能会觉察到进程间 通信带来的开销确实有这样的问题,笔者曾询问微软的工程师,他们表示性能 会有一点点地折扣。从笔者来看,通过内存地址转换的方式,开销有可能降到非常 低。顺便提一下,设备虚拟硬件辅助VT-d技术在Hyper-V下的实现很轻松,只需要开 发Windows Server 2008下的驱动程序,不需要对Hyper-V进行改动。Hyper-V还具有一个关于性能的重要特性:多处理器虚拟机,Hyper-V支持4 CPU 的 Windows Server 2008 虚拟机,和 2 CPU 的 W

24、indows Server 2003 虚拟机。多处理 器虚拟机并不是一个Hyper-V才具有的特性,VMware 的 ESX Server早已经实现4 CPU的虚拟机,并且是在各种操作系统下(WMware Workstation也能提供2 CPU 的虚拟机)。如果服务器工作负载需要很高的性能,我们可以考虑使用多处理器的虚拟机。数据 库服务器可以消耗掉大量的处理器资源,这时,多处理器虚拟机就是很必须的,就 像我们做过的测试那样。当然,只有当工作负载确实需要的时候,才应该使用多处 理器虚机,因为管理更多的处理器会带来一些额外的开销。就像早期Window NT具 有单处理器和多处理器两种内核一样(单

25、处理器版本去掉了一些多处理器才有的如 同步之类的模块,并作了相关优化)。进程状态及其转换示意图,进程的就在这些状态之间“旋转”众所周知,为了保护共享数据,需要一些同步机制,例如锁、信号量等。通常,多 处理器操作系统内核和驱动会采用自旋锁(Spin Lock,类似于互斥锁,但是保持时 间更短。更详细的信息可以参考Windows Internals第四版,P152)的机制,在 获得自旋锁之前,线程并不会阻塞,而是一直处于自旋状态,前提是自旋锁只会保持很短的时间。然而在虚拟化条件下,这个前提会被打破,因为虚拟处理器是按照 时间片进行调度的。如果在保持自旋锁的时候竞争虚拟处理器,则其他虚拟处理器 就要

26、自旋很长时间,导致CPU循环的浪费,降低了虚拟机的性能。显然,多处理器 虚拟机在繁忙的负载条件下,这种情况会频繁发生。在 Windows Server 2008内核以及Hyper-V Hypervisor中加入了一个创新设计,尽可 能防止出现自旋锁的长时间等待条件,如果确实存在长时间等待条件,也会有效地 加以检测并对其进行处理。这个方法叫做自旋锁启发方法,未实现自旋锁启发方法 的虚拟机作系统将停在一个紧凑循环上旋转以等待其他虚拟处理器释放自旋锁,通 常这个旋转可能会阻塞其中一个硬件CPU,从而降低了虚拟化性能。而在自旋锁启 发式操作系统中,自旋锁代码会在将要发生旋转时通过Hypercall A

27、PI通知Hyper-V Hypervisor管理程序,这样Hypervisoer管理程序就可以立即调度执行另一个虚拟处 理器并降低不必要的CPU使用。Hyper-V还还在调度程序和内存虚拟化逻辑上进行 了优化以使它们在大多数临界区中都不会被锁定,从而确保多处理器系统能够获得 很好的延展性。在前些天的媒体测试见面会上,微软中国的工程师展示了 Hyper-V虚拟机的效率, 表明4 CPU的Windows Server 2008虚拟机,其延展性可以和物理4 CPU系统一较 高下。当然,具体的提升仍然需要通过测试来评估。注:自旋锁启发方法其实不完全是Syper-V的内容,它更多是Windows Ser

28、ver 2008 的核心内容。Vista也实现了这个自旋锁启发方法。不知不觉间说了很多显得有些深涩的内容,不过Hyper-V的特点总结起来就是: VT/AMD-V实现、微内核设计、VSP/VSC虚拟设备驱动架构以及虚拟处理器自旋锁 启发架构,这些特性糅合在一起就形成了独特的Hyper-V。此外,$28的价格(或者 免费:购买Windows Server 2008时附赠)也很值得一提。Parent VMOh I侦褊ch通林Mn 心5 E5 M AiHiliVirtualisationtnrM g*5*r Vi*RM4Wl 册*4 M-MrtiMUrwiAhhap mpl IWifirtM. *

29、F Ww1* mrafWfWi* . P*WWHM YirluiJ s pan31Pradui511 *iti tmlM .AfHlxwllaffiAp4cv1wAifHcvlHmK三二1 略*fr V I* H F?b*-b-rwffh 2+仰驰翻府pMUHm& If 113i| 恳 4L? (Kb: pwfxiui nm on* ff mf hhihJ pnKfffinC-FerlrLiOffc Ludwvw iauiEn.辎虹mw rum ni hi Mititun 电 n*d kbieHunHwUA* nvrwfC TTtafl *v*9- al ctlM r !$*ricn微软服务器虚拟化战略的里程碑:Hyper-V更好的性能、更广泛的兼容性、更强的安全性,以及更便宜一一这就是Hyper-V, 从2003年收购Connetix后就沉寂的微软并没有睡着。从最早的Terminal Services,到早期的Virtual PC、Virtual Server、SoftGrid,到今天Hyper-V的推出,这些看似 不经意的动作,现在看来均是为其全面的虚拟化战略实施做铺垫。而经过这样一系 列的铺垫,微软的从数据中心到桌面虚拟化、全面的端到端的虚拟化战略已经正式 部署完毕,我们已经可以看到,虚拟化市场即将到来的一场暴风雨。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号