Microsoft公司的虚拟化技术起步比较迟,直到2003年收购了Connectix后才正式踏入虚拟化领域。2007年9月,Microsoft正式推出一个采用类似VMware和Citrix开源Xen的基于Hypervisor的Hyper-V。Hyper-V提供了从桌面虚拟化、服务器虚拟化、应用虚拟化到表示层虚拟化的完备产品线。
Hyper-V采用了一种全新的架构,也就是Hypervisor架构。它实际是用VMM代替Host OS。Host OS从这个架构中彻底消失,将VMM这层直接做在硬件里面,所以Hyper-V要求CPU必须支持虚拟化。这种做法带来了虚拟机OS访问硬件性能的直线提升。VMM主要目的是提供很多孤立的执行环境,这些执行环境被称之为分区,每一个分区都被分配了自己独立的一套硬件资源。
Hyper-V架构如图5-7所示。
图5-7 Hyper-V的基本架构
下面对图中使用的首字母缩写词和术语进行简单介绍。
①子分区:承载客户机操作系统(Guest OS)的分区,子分区对物理内存和设备的所有访问都通过虚拟机总线(VMBus)或虚拟机监控程序提供。
②虚拟化调用(HyperCall):用于与虚拟机监控程序进行通信的接口,可通过虚拟化调用接口访问虚拟机监控程序提供的优化功能。
③虚拟机监控程序(Hypervisor):驻留在硬件和一个或多个操作系统之间的软件层,其主要工作是提供称为分区的隔离执行环境,控制和裁定对基础硬件的访问。
④根/父分区:管理计算机级别的功能,如设备驱动程序、电源管理和设备热添加/移除。根/父分区是唯一能够直接访问物理内存和设备的分区。(www.xing528.com)
⑤VMBus:虚拟机总线,基于通道的通信机制,在具有多个活动虚拟化分区的系统上,用于分区之间的通信和设备枚举,VMBus随Hyper-V集成服务一起安装。
⑥VSC:虚拟化服务客户端,驻留在子分区中的一种综合设备实例。VSC利用父分区中的虚拟化服务提供程序(VSP)提供的硬件资源,它们通过VMBus与父分区中的相应VSP通信以满足子分区的设备I/O请求。
⑦VSP:虚拟化服务提供程序,驻留在父分区中,通过虚拟机总线(VMBus)向子分区提供综合设备支持。
⑧WMI:虚拟机管理服务公开一组基于Windows Management Instrumentation(WMI)的API用于管理和控制虚拟机。
由此可见,Hyper-V采用基于VMbus的高速内存总线架构,来自虚拟机的硬件请求(显卡、鼠标、磁盘、网络),可以直接经过VSC,通过VMbus总线发送到父分区的VSP,VSP调用对应的设备驱动,直接访问硬件,中间不需要Hypervisor的帮助。
Hyper-V支持分区层面的隔离。分区是逻辑隔离单位,受虚拟机监控程序支持,并且操作系统在其中执行。Microsoft虚拟机监控程序必须至少有一个根/父分区,用于运行Windows Server。虚拟化堆栈在父分区中运行,并且可以直接访问硬件设备。随后,父分区会创建子分区用于承载客户机操作系统。父分区使用虚拟化调用应用程序编程接口(API)来创建子分区。
分区对物理处理器没有访问权限,也不能处理处理器中断。相反,它们具有处理器的虚拟视图,并运行于每个客户机分区专用的虚拟内存地址区域。虚拟机监控程序负责处理处理器中断,并将其重定向到相应的分区。Hyper-V还可以通过输入输出内存管理单元(IOMMU)利用硬件加速来加快各个客户机虚拟地址空间相互之间的地址转换。IOMMU独立于CPU使用的内存管理硬件运行,并用于将物理内存地址重新映射到子分区使用的地址。
子分区对其他硬件资源也没有直接访问权限,只具有这些资源的虚拟视图,就像虚拟设备(VDev)一样。对虚拟设备的请求通过VMBus或虚拟机监控程序重定向到父分区中的设备,由父分区处理这些请求。VMBus是用于分区之间通信的逻辑通道。父分区承载虚拟化服务提供程序(VSP),这些提供程序通过VMBus通信以处理来自子分区的设备访问请求。子分区承载虚拟化服务使用程序(VSC),这些使用程序通过VMBus将设备请求重定向到父分区中的VSP。整个过程对客户机操作系统来说是透明的。
虚拟设备还可以利用一项名为“具有启发功能的I/O”的Windows Server虚拟化功能进行存储、联网、处理图形和输入子系统。具有启发功能的I/O是高级通信协议(如SCSI)的支持虚拟化功能的专门实现,它直接利用VMBus,而避开任何设备枚举层。这可以提高通信效率,但需要有支持虚拟化监控程序和VMBus的具有启发功能的来宾系统。Hyper-V具有启发功能的I/O和支持虚拟化监控程序的内核可通过安装Hyper-V集成服务来提供。集成组件包含虚拟服务器客户端(VSC)驱动程序,还可用于其他客户端操作系统。Hyper-V需要一个包含硬件辅助虚拟化的处理器,如通过Intel VT或AMD虚拟化(AMD-V)技术提供的处理器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。