和其他技术一样,虚拟化空间充满了令人迷惑的术语。诸如guest、host、physical和virtual这样熟悉的定义,它们之间相互影响。微软的Hyper-V也有自己的语言,包括诸如synthetic(合成)和emulated drivers(仿真驱动)这样的措辞;根、父分区和子分区;为了使用微软的新虚拟化平台,还有少数几个其他的术语要了解。在这篇文章中,TechTarget中国的特约虚拟化专家Anil Desai将解释在Hyper-V里与设备驱动如何工作而相关的术语,这能帮我们安装产品、管理性能及解决可能出现的任何问题。
Hyper-V的分区类型
一个虚拟化层提供了在子操作系统里的独立的、隔离的环境,应用能运行;Hyper-V使用“分区”来指这些区域。这个hypervisor是Hyper-V的核心组件,并直接访问运行在主机计算机上的物理硬件。hypervisor为创建和管理分区负责,反之,它能宿主虚拟机及其相关的子操作系统。
根分区指的是hypervisor运行的区域。当启动一个使用Hyper-V的Windows Server 2008上的物理实例,分区自动创建。父分区是一个能创建新子分区的环境。在Hyper-V的早期版本,父分区与根分区是一样的。子分区的目的是在子操作系统里隔离环境,应用可以运行。子分区从技术角度来说不完全与一台虚拟机一样,不过为了共同的目的,这两个可互换。
Hyper-V的仿真与合成驱动
Hyper-V的两个最重要的目的是提供最佳的驱动性能以最小化与虚拟化相关的开销及与最广泛的子操作系统列的兼容性。因为有时这两个目标不一致,Hyper-V提供了两种不同类型的驱动。
仿真驱动依赖于在Microsoft Virtual Server 2005和Microsoft Virtual PC可用的相同类型的驱动。基本上,子操作系统看见一个BIOS并相信它运行在一个真实的计算机上而不是一个分区里。表1提供了这个过时(不过有高兼容性)的虚拟硬件平台。这种方法在许多操作系统都可用,不过不提供最佳的性能。
组件 规格
芯片 Intel 440BX
CPU 基于主机的CPU(仅一个CPU)
BIOS AMI BIOS
Video 4MB内存的S3 Trio 32/64
内存 3.6GB
输入设备 PS/2鼠标及键盘
软驱动 两个1.44MB 3.5"软驱动
通信端口 两个串行端口,一个并行端口
IDE控制器 两个通道,每个支持两个以上的设备(总共支持4个IDE设备)
SCSI控制器 四个Adaptec 2940 SCSI控制器以上(每个支持7个设备,总共28个设备)
网络接口 四个Intel 21140 10/100Mb网络接口卡
合成驱动在Hyper-V是新的,设计来用于提高性能。它们能在虚拟硬件与物理硬件之间平衡更多有效的通信机制。缺点是它们仅支持诸如Windows Vista和Windows Server 2008这样的比较新的子操作系统。微软为虚拟视频适配器、IDE连接与鼠标驱动提供了合成驱动。总体来说,只要在子操作系统上可用,你什么时候都能使用合成驱动。
Hyper-V也有另一个有用的地方:在启动期间,仿真设备驱动可能用于兼容性目的(考虑标准的Windows预启动环境支持一套有限的驱动)。当装载子操作系统的时候,相关的驱动及其合成的驱动都断开。你能通过打开基于Windows的子操作系统里的Device Manager检查安装了哪种类型的驱动。涉及到VMBus的那些都是合成驱动。
延伸启迪
启迪(Enlightenment)是另一个你听见的与Hyper-V相关的各种文章的术语。“启迪”意味着许多事,不过,在Hyper-V情况下,这个术语指的是子操作系统意识到并最优化运行于虚拟环境。启迪既能指为虚拟化最优化的子操作系统设备驱动,也能指提升CPU和内存性能的实际核心级别的优化。比如对Windows Server 2008和Citrix XenServer的最优化构造,它们在微软发布的Hyper-V里都可用。随着Hyper-V变得更流行,你期望看到更多的启迪过的子操作系统。
当仍然维持广泛的子操作系统类型的兼容性时,了解分区与设备驱动选择是挖掘最佳性能的一个重要方面。根或子分区架构允许管理员创建安全、独立和有效访问硬件的虚拟环境。在一个给定的子操作系统,你通常应该使用Hyper-V合成驱动。在其他情况下,仿真驱动将提供与微软其他虚拟化选择等同的性能。