Hyper-V与VMware vSphere架构对比

VMware与微软两家巨头都已经在服务器虚拟化领域拥有多年打拼经验——当然,前者早在十多年前就开始主攻这一市场,相比之下后者的资历就要浅薄得多。

IT员工或组织别无选择,只能积极掌握微软Hyper-V与VMware vSphere架构之间的差别,并主动了解两种技术各自的优势与缺点。只有这样,他们才能为企业员工或客户提供理想的虚拟化解决方案或者将其部署到生产环境当中。

在面对VMware vSphere与微软Hyper-V的两难选择时,我们需要慎重考量二者各自所包含的很多重要组件;不过单从架构的角度来看,以下组件在选择理想服务器虚拟化产品中发挥着最为关键的作用:

  · 架构中的设备驱动程序定位;

· 控制层组件;

· 管理程序层组件;

在一般情况下,虚拟化供应商通常会提供以下三种虚拟化架构类型,它们分别是:

· Type 2 VMM

· Type 1 VMM

· Hybrid VMM

由于本文并不会详细解释三种虚拟化架构类型的具体含义,内容主要集中在Typer 1 VMM。微软Hyper-V与VMware都采用了Type 1 VMM架构,并以此为基础实现各自的服务器虚拟化技术。

Type 1 VMM可以被进一步分成两大类别,即Monolithic Hypervisor Design(即单片式管理程序设计)与 Microkernelized Hypervisor Design(即微内核式管理程序设计)。两种设计都在虚拟化产品的不同组件中采用三层结构。

最底层被称为“硬件层”,而虚拟化功能则依靠直接运行在“硬件层”上的“管理程序层”来实现。最上层被称为“控制层”,“控制层”的总体目标是控制运行在该层中的组件对象,并为虚拟机提供与“管理程序层”进行通信的必要组件。

备注:“管理程序层”有时候也会被称为“VMM层”或者“VM内核层”。

  微内核式管理程序设计

微软Hyper-V采用微内核式管理程序设计,这项设计并不强制要求设备驱动程序作为管理程序层中的组成部分——设备驱动程序以独立方式运作并以“控制层”为活动空间,如下图所示:

Hyper-V与VMware vSphere架构对比

微内核式管理程序设计具备以下优势:

· 设备驱动程序无需介入“管理程序层”或者VMM内核。

· 由于微软公司并不提供用于访问“管理程序层”的应用程序编程接口(简称API),因此系统的攻击面得以显著缩小。恶意人士不可能将外部代码注入“管理程度层”当中。

· 设备驱动程序不需要由管理程序来识别,因此微内核管理程序设计架构在设备支持方面的广泛性得到大幅扩展。

· 无需关闭“管理程度层”来加载设备驱动程序。设备驱动程序可以被安装在运行于“控制层”的操作系统当中(例如Windows Server 2008, R2以及Windows Server 2012),虚拟机将利用其对“硬件层”中的硬件进行访问。

· 由于无需考虑设备驱动程序的维护与管理,“管理程序层”变得更容易打理。

· 微内核管理程序设计允许用户在“控制层”中安装除服务器虚拟化角色(Hyper-V本身)以外的任何服务器角色。

· 初始化时间更短。微软的管理程序代码只有约600KB,因此“管理程序层”不需要在初始化组件方面耗费太长时间。

说了这么多优势,微内核式管理程序架构也存在着一些缺点,其中最值得注意的部分有以下几点:

· 微内核式管理程序架构强制要求用户在“控制层”中安装操作系统,否则“管理程序层”将无法执行。这也是该架构最致命的一项缺点。

· 如果运行在“控制层”中的操作系统由于某种原因而发生崩溃,则所有其它虚拟机也将同时崩溃。

· 虽然“管理程序层”易于打理,但承载着操作系统的“控制层”却变得很难维护,我们需要在虚拟机与“管理程序层”之间的通信上投入大量精力。

· 为了保证Windows操作系统的安全性,技术部门需要认真进行维护工作,即及时安装由微软公司发布的安全更新补丁。因此运行在“控制层”中的操作系统也必须始终经过最终安全升级。作为安全更新工作的一部分,操作系统会被频繁重启,这将直接导致所有虚拟机处于离线状态——要想避免停机状况,我们只能借助Hyper-V实时迁移功能的力量将所有虚拟机移动到集群中的其它节点。

单片式管理程序设计

大家从下图可以看到,VMware公司的vSphere采用的是单片式管理程序设计,这就需要管理程序对设备驱动程序进行识别,并由“管理程序层”负责管理。根据下图,我们能够直观了解到设备驱动程序属于“管理程序层”中的组成部分:

Hyper-V与VMware vSphere架构对比

管理程序中的设备驱动程序必须预先开发并包含在“管理程序层”当中,否则我们将无法使用vSphere虚拟化产品。大家不能将VMware vSphere直接运行在硬件之上,该产品并不支持此类使用方式。

VMware vSphere如上图所示在“管理程序层”中运行其组件。这些产品组件包括资源调度、分布式文件系统等等。用于部署VMware网络的网络协议堆栈组件同样由“管理程序层”打理。存储堆栈组件则允许“控制层”组件对存储设备进行访问。

单片式管理程序架构拥有以下几项优势:

· 虚拟化产品组件的控制工作无需借助操作系统,相比微软Hyper-V所采用的内核式管理程序架构,这也是单片方案最突出的优势。

· 管理人员无需为运行在“控制层”中的组件安装安全补丁。

单片式管理程序架构的缺点:

· 由于不具备相关支持,VMware的vSphere无法直接运行在硬件之上。不过VMware公司已经拿出了一份兼容硬件清单,用户能够以此为基础成功运行VMware vSphere。大家可以在VMware的官方网站上了解具体信息(http://www.vmware.com/resources/compatibility/search.php)。

· VMware vSphere不够安全。由于VMware公司提供访问“管理程序层”所必需的API,因此恶意代码有可能被拥有“管理程序层”权限的黑客注入其中,从而获得对vSphere服务器上全部虚拟机系统的掌控能力。

· 初始化时间更长。在这套架构中,虚拟机内核的初始化时长取决于其中所包含的设备驱动程序数量。

· 由于设备驱动程序初始化是“管理程序层”初始化的一部分,因此任何进入到“管理程序层”中的外部代码一旦发生损坏,都有可能导致启动/初始化延迟甚至服务器挂起。

  总结

在这篇文章中,我们讨论了微软Hyper-V与VMware vSphere两套方案的差异,并了解了两款虚拟化产品采取什么样的虚拟化架构——即微软Hyper-V的微内核式管理程序架构与VMware vSphere的单片式管理程序架构。

我们还谈到了二者最值得关注的优势与缺点,IT团队或者组织应该可以从中有所收获,帮助自己根据生产环境选择最理想的虚拟化产品并充分实现其辅助价值。

相关推荐