热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Hyper-v和VMware虚拟化技术的不同

Hyper-V中的I/O架构该架构极大地减少发送I/O请求所需的开销。如果VirtualServer用户把虚机迁移到Hyper-V中,能体会到高I/O的工作负载的CPU开销大大降低。在虚拟化领域,微软是继VMware后最大的竞争者,它的出场引发了一个讨论:Hyper-V是否会超越VMwareE
  Hyper-V中的I/O架构
  该架构极大地减少发送I/O请求所需的开销。如果Virtual Server用户把虚机迁移到Hyper-V中,能体会到高I/O的工作负载的CPU开销大大降低。
  在虚拟化领域,微软是继VMware后最大的竞争者,它的出场引发了一个讨论:Hyper-V是否会超越VMware ESX Server成为主导的hypervisor。VMware与微软及其余竞争者之间的争论是一场热烈的战争,让想人起了Windows与Mac OS之间的战争。

  VMware对 Hyper-V的看法
  对于微软这样庞大的但在虚拟化领域的后来者,VMware方面认为,VMware是最有经验的公司。VMware有10年的虚拟化经验和一个庞大的用户基础,包括100%的财富500强公司和92%的财富1000强公司,全球总共有超过10万的用户。VMware还拥有11个虚拟化专利权,在2007年,VMware的收入达到了13.3亿美元。
  拥有新虚拟化产品的微软几乎没有企业虚拟化经验,到目前为止,还没有财富500强的用户在生产环境里采用微软的企业虚拟化产品。哪个公司听起来更能胜任提供你企业的虚拟化解决方案?
  据称ESX已经有过运行1000多天而没有一次重启的记录;而由于Windows更新,Windows Server 2008 Hyper-V需要,每三十天重启一次。总而言之,如果你仅仅看到一个单独的VMware Infrastructure企业套件许可证要花费6950美元,相比一个单独的Windows Server 2008企业或标准的套件许可证来说,毫无疑问,VMware解决方案花费更多。然而,就性能而言,VMware仍然比微软的Hyper-V胜出一筹。

  微软是毫不示弱给予回击
  Microsoft Hyper-V 和VMware ESX Server都是基于硬件支持的Bare-Metal虚拟化产品,他们最大的区别在于,Microsoft Hyper-V采用了微内核的结构,而ESX Server是一个单内核的产品。
  单内核的主要特点是硬件的驱动程序集中在Hypervisor一层,被Hypervisor上的所有的虚机所共同使用。当一个虚机的OS需要访问硬件时,它通过Hypervisor中的driver model来访问,这种单内核的Hypervisor能够提供很好的性能,但是它在安全性和兼容性上存在缺陷。由于驱动程序和一些第三方代码跑在一个很敏感的区域内,这种模式有了一个很大的被攻击面。
  设想下某些不怀好意的代码被隐藏在驱动程序当中,然后跑在Hypervisor中,这会影响到所有的客户虚拟机,而且这是很难被发现的,因为对于实际被使用的虚机来说,Hypervisor这层是不可见的,所以无法通过一些病毒软件去监控它。 另外一个问题就是稳定性,假设某个驱动程序当中存在bug,那么它将影响到所有的虚机。另外你还要求Hypervisor去支持所有的驱动程序,造成了这层体积较为庞大。所以单内核的Hypervisor一般被认为是胖Hypervisor。
  而Hyper-V采用了微内核的结构,它是一个瘦Hypervisor。因为它里面没有驱动程序,所以在体积上Hyper-V更有优势,另外,由于微内核体积较小,所以运行的效率很高。驱动程序是跑在每一个分区里面的,每一个分区内的虚机OS都能够通过Hypervisor直接访问硬件,还使得每一个分区都相互独立,这样就拥有更好的安全性和稳定性。
  除此之外,大多数虚拟化解决方案都是采用了硬件模拟来解决硬件访问的兼容性问题,但是也造成了很大的开销和性能损失。而微软的Hyper-V没有采用这样的做法,而是采用了Enlightenment(启蒙)技术。它能够对那些虚拟机操作系统进行启蒙,让它们明白自己是一个虚拟机,被启蒙过的虚拟机操作系统会记住虚拟化,所以他们可以不需要硬件模拟,而是通过VSP/VSC这套组件来进行的,当子分区内的操作系统需要访问硬件的时候,由子分区内的VSC(Virtualization Service Client)通过VMBUS将request发给父分区里面的VSP(Virtualization Service Provider),然后由VSP去提供实际的硬件服务。通过这种方式来使用硬件,相对于使用硬件模拟的方法,其访问性能有了大幅度的提高。
  另外这种方式可以兼容大量的驱动程序,而不必像ESX Server一样为虚拟机开发专用的驱动程序。在大多数情况下,只要硬件设备能够在Windows Server 2008下工作,那么就肯定能够在虚拟机下工作。再加上Windows平台的驱动本来就比其他平台的驱动程序丰富,而ESX Server容易遇到兼容性方面的问题,所以在硬件兼容性支持上Hyper-V具有无可比拟的优势。
  经过这几年的努力,微软为虚拟化技术提供了非常丰富和全面的产品线,从服务器虚拟化的Virtual Server, Hyper-V,到应用程序虚拟化的SoftGrid,到桌面虚拟化的VPC,再到用户界面虚拟化的Terminal Services,一应俱全。而且为这些所有的产品提供了统一的管理平台:System Center, 不管是物理机,还是Hyper-V,VPC,Virtual Server的虚机,甚至是VMware的虚拟机都可以通过System Center的管理工具进行统一管理,并且彼此兼容。另外微软还提供了自己的服务器操作系统和一些其他服务器产品(比如Exchange Server),能够做到在后台将虚拟化产品和其他服务器产品的联动支持和无缝连接,所以微软能够为用户提供一套完整的虚拟化解决方案。
  随着Windows Server 2008的发布及其全新的Hyper-V虚拟化支持,微软终于能够向VMwareDD这个企业虚拟化市场所制造的成熟又健壮的ESX Server发出正式的挑战了。
  VMware的ESX Server 3.5和微软的Hyper-V采用的都是基于管理程序的(hypervisor-based)服务器虚拟化技术。这就使这两个软件都可以直接安装到裸机上,因此它们有着比诸如Microsoft VirtuaI Server 2005和VMware VirtuaI Server 2.0等旧式虚拟产品优秀得多的表现。以前那些虚拟产品都是在主操作系统上运行虚拟软件,这会给在虚拟环境中运行的虚拟机带来额外的开销,更长的代码执行路径。相反,像ESX Server和Hyper-V这样的基于管理程序的虚拟化产品则是直接在系统硬件上运行管理程序的。尽管ESX Server和Hyper-V有着相似的基于管理程序的架构,它们的设计却迥然不同。
  这两个产品的管理程序都是直接在系统硬件上运行的。然而,对于ESX Server来说,所有的硬件驱动程序都只是管理程序的一部分,这一点大大增加了管理程序的大小。除此之外,它的设备驱动程序是由硬件供应商制造的,于是第三方代码就被引入管理程序,这限制了它所支持的硬件类型。即便如此,几乎所有的一级供应商,例如HP、DelI和IBM等,他们所制造的服务器系统都能够正常运行ESX Server。另外,许多一级供应商也出售预装了ESX Server的系统配置。
  相反,Hyper-V使用的是微核管理程序,该管理程序包含最少量的代码,用于不同虚拟机之间调度和共享硬件资源。Hyper-V的管理程序既没有设备驱动程序,也没有第三方代码,这就保证了它的最佳性能, 同时也减少了安全隐患。Hyper-V利用本机Windows设备驱动程序模型,以及子虚拟机中的设备驱动程序。

  总结
  看完他们的口水仗之后,其实我们也很难给出一个结论。同样基于裸金属硬件虚拟化架构下的微软Hyper-V和VMware的ESX,也许这两种技术并不存在谁优谁劣,区别只在于什么类型的用户更适合什么样的具体解决方案。

推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
author-avatar
捕鱼达人2502868831
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有