RSS订阅
RSS订阅TT服务器

全面分析微软虚拟化技术Hyper-V(中)

2008-8-28  选择字号:  | |
打印本文章

导读:Microsoft Hyper-V和VMware ESX Server是比较相像的,都是裸金属类型,但是它们的内核架构明显的不同。Hyper-V是微内核架构的,而ESX Server是单内核架构。

关键词:Hyper-V ESX Server 裸金属 微内核

正在加载数据...

  Microsoft Hyper-V和VMware ESX Server是比较相像的,都是Bare-Metal类型,但是它们的内核架构也有着明显的不同。微软在谈到竞争对手ESX Server时,总会提到,Hyper-V是微内核架构的,而ESX Server是单内核架构,Hyper-V要更好。

  这两者具有什么不同?到底谁更好呢?

内核

  单内核(分层的内核)与微内核

  单内核和微内核实际上是操作系统内核术语,操作系统的内核——实现核心功能的那部分——可能是微内核(Micro kernel),也可能是单内核(Monolithic kernel,有时也叫宏内核Macro kernel)。按照类似封装的形式,这些术语定义如下:

  微内核(Micro kernel):在微内核中,最常用的功能被精心挑选设计在内核模式(或者按照上一页的说法,在x86上是Ring 0模式)运行的一个或一组进程上,而其它大部分不怎么重要的核心功能都作为单独的进程在用户模式下(类似地,Ring 3模式下)运行,它们通过消息传递进行通讯(例如,Windows采用的进程间通信IPC机制,IPC就是Inter Process Communicate)。最基本的思想就是要尽量地小。通常微内核只包含了进程调度、内存管理和进程间通信这几个根本的功能。

  这种设计具有许多好处,例如增加了灵活性、易于维护和易于移植。只需要把微内核本身进行移植就能够完成将整个内核移植到新的平台上。同时微内核的模块化设计让其他核心功能模块都只依赖于微内核模块或其他模块,并不直接依赖硬件。

  同样,由于模块化的设计,不包含在微内核内的驱动程序可以动态地加载,或者卸载。同时,微内核也不依赖于固定的文件系统,用户可以随意选择对文件系统的支持。用户甚至能够在系统运行时将研发出的新系统模块或需要替换现有模块的模块直接而且迅速地加入系统。不需要的模块将不会被加载到内存中,因此微内核就能够更有效地利用内存。微内核还具有的好处是实时性、安全性比较好,并且更适合于构建分布式操作系统和面向对象操作系统。

  微内核操作系统的典型例子是,Mach(一个非原生的分布式操作系统内核,也被应用在Mac OS X上)、IBM AIX、BeOS以及Windows NT,还有著名的Minix(一个主要用于教学的Unix系统)和Amoeba(一个原生的分布式操作系统)。

  单内核(Monolithic kernel):单内核是个很大的进程。它的内部又能够被分为若干模块(或层次,或其他)。但是在运行的时候,它是一个单独的大二进制映象。因为是在同一个进程内,其模块间的通讯是通过直接调用其他模块中的函数实现的,而不是微内核那样在多个进程内进行消息传递。因此在运行效率上,单内核会具有一定的好处。

  单内核操作系统的典型例子是,大部分Linux,包括BSD在内的几乎所有的Unix、MS-DOS及Windows 9x。例如Sun Solaris的内核就运行着数百个线程以实现各种功能,而编译过Linux内核的人就知道Linux内核有数十MB之大。

  单内核和微内核哪个更好显然是一个很有争议性的问题,必须说明的很有趣的一点是,这种争论经常会令人想到上一个时代CPU领域中RISC和CISC的斗争。现代的CPU设计中包含了任何这两种技术,就像现在Linux(单内核)和Windows NT(微内核)都是微内核和单内核的混合产物一样。历史上有过这样的争论,Linux(单内核)的作者Linus和Minix/Amoeba(均为微内核)的作者Andrew S.Tanenbaum博士对垒,最终Linus也同意微内核架构更为先进的论点。

  通过采用微内核架构,Hyper-V在体积上很有优势,它的大小只有300k左右(似乎新版本的更加小),而VMware ESX Server的Linux核心则非常大。就VMM虚拟化管理程序来说,需要的功能不多,因此采用微内核架构是很合适的,运行效率可以很高。不过就理论上来说,合理配置的单内核其实和微内核也很相似。哪一种性能更好?这要在测试之后才能知晓了,不过在这之前,我们接下来可以先看看微内核带来的一个好处:设备驱动程序的变迁。

  无论采用什么内核,驱动程序和文件系统总是必要的,虚拟机需要使用服务器的硬件就需要驱动程序,虚拟机的文档需要保存在适当的文件系统上。在单内核的VMware ESX Server上,驱动程序包含在单内核内部,虚拟机映像文件则保存在VMFS(一种类似EXT的文件系统)上,那么微内核架构的Hyper-V呢?

  这就要谈到Hyper-V的VSP/VSC架构了,VSP是Virtual Services Provider,VSC则是Virtual Services Client,还有一个VMBus部件,将放在“宿主操作系统”的VSP和虚拟机操作系统的VSC连接起来。实际上“宿主操作系统”也是一个虚拟机——就是你最初安装的、带有Hyper-V的Windows Server 2008,微软将其称为Parent Partition操作系统,而每一个虚拟机则成为Child Partition。

VSP

  VSP与VPC,注意VSP并不是Virtual Storage Provider的缩写。Virtual Storage Provider属于VSP

  上图很好地解释了Hyper-V使用VSP/VSC架构解决驱动程序/文件系统的方式,通过加入VSP和VSC以及它们互相沟通的VMBus总线,Hyper-V将虚拟机的操作映射入Parent Partition的对应驱动程序/文件系统中,简化起来就如下图:

Hyper-V

  Hyper-V的VSPs/VSCs、VMBus架构

  这种方式具有不少好处,例如,最明显地,Hyper-V可以兼容大量的驱动程序,而不必为虚拟机开发专用的驱动程序(ESX Server就是这样干的),只要设备能在Windows Server 2008下工作,那么Hyper-V虚拟机就能使用这些设备资源,再加上Windows驱动天生就比其他操作系统(如Linux)的驱动丰富,因此在硬件支持上Hyper-V具有着无可比拟的优势。VMware ESX Server甚至不能直接应用Linux驱动程序,需要另外进行额外的操作才能使用,因此VMware ESX Server容易受到设备方面的问题,当然用户可以使用具备VMware认证的全套硬件以避免这个问题。

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

  Hyper-V设备驱动的这个优点正好就和微内核驱动程序架构的优点一样,模块化,架构灵活,不需要更改就可以提供新硬件的支持。

  顺便提一下,设备虚拟硬件辅助VTd技术在Hyper-V下的实现很轻松,只需要开发Windows Server 2008下的驱动程序。


详解Hyper-V技术
 全面分析微软虚拟化技术Hyper-V(中)
 全面分析微软虚拟化技术Hyper-V(下)
 全面分析微软虚拟化技术Hyper-V(上)

原文出处:http://server.it168.com/a2008/0822/201/000000201492.shtml
来源:IT168    作者:Lucifer    
相关的专家答疑
如何创建一台基于Linux内核的虚拟机或者KVM?如何安装Windows和Ubuntu作为KVM虚拟环境里的虚拟操作系统?
由于虚拟化进入了服务器环境,这个新技术在把服务器变得更可靠的同时,使备份明显变得更复杂了。
虚拟化技术走到今天,其实已经到了一个亟需变革的时代。而微软的Hyper-V则成为了撬动这个变革的一个关键支撑点。
当微软对一个Hyper-V Server安装不要求服务器许可证和客户系统访问许可证(CAL)时,它如何与VMware更少的操作系统进行竞争?
在“服务器管理器”或者“Hyper-V管理器”中,可以很方便地对虚拟机进行管理。那添加虚拟硬盘的方法有哪些呢?
ESX是性能比较稳定的虚拟化产品,但是也存在一些安全漏洞。ESXi是VMware免费嵌入式hypervisor,它也存在安全缺陷。对于这两款产品,我们该如何安全地管理它们?本指南将从网络和管理方面入手,提供一些实用技巧。
在前面的专题“Hyper-V指南”中,我们探讨了Hyper-V的虚拟架构、系统要求及与其他产品之间的竞争。在本指南中,我们将具体描述如何管理Hyper-V、如何对Hyper-V备份以及如何进行性能优化等。
在之前的专题里,我们学习了如何运行ESX Server以及它与免费的VMware Server的比较。在本专题中,我们将详细描述VMware ESX Server子操作系统性能的技巧。
最新更新
专家答疑
技巧
Anil Desai
你推荐使用虚拟机优化器吗?使用的时候需要注意哪些情况呢?我没有你所提的虚拟机优化器产品的任何经验,我询问了……
Joe Foran
当谈及Xen时,我会听到如准虚拟化、hypervisor和HVM。这些术语到底是什么意思?简而言之,它们是描述Xen如何运行的结构条款。不像……
Serdar Yegulalp
无论何时我使用Virtual Server的虚拟机远程控制客户端,都会碰到许多问题,如远程机滞后或重复击键或不响应。我该怎么办?