虚拟化解决方案的类型
从本质上讲,有三个常见的体系结构可用于服务器虚拟化,如图 1 所示。虚拟化层和物理硬件之间的关系处理决定着它们的根本差异。虚拟化层就是称为虚拟机监控器(VMM,不要与 Virtual Machine Manager 混淆)的软件层。该层可以创建多个共享同一底层硬件资源的独立实例。
图 1 三个虚拟化体系结构
Type-2 VMM 体系结构的应用实例就是 Java 虚拟机。在该实例中,虚拟化的目标是创建一个运行时环境,进程可以在此环境中执行一组指令,而无需依赖主机系统。此时,隔离的是不同的进程,它允许单个应用程序在不同的 OS 上运行,而无需担心 OS 依赖关系。服务器虚拟化不属于这一类别。
Type-1 VMM 和 Hybrid VMM 是现今广泛使用的两种方法。VMM 利用 Hybrid VMM 在主机 OS 上运行并帮助创建上层虚拟机。Hybrid VMM 的示例是 Microsoft Virtual Server、Microsoft Virtual PC、VMware Workstation 和 VMware Player。请注意,虽然这些类型的解决方案非常适用于客户端方案(即,您只在部分时间运行虚拟机),但 VMM 会极大地增加开销,因而不适合资源密集的工作负载。
在 Type-1 VMM 体系结构中,VMM 层直接在硬件上方运行。这通常称为管理程序层。该体系结构最初由 IBM 于 20 世纪 60 年代针对大型机系统而设计,最近连同各种解决方案(包括 Windows Server 2008 Hyper-V)在 x86/x64 平台上提供。
在可用的解决方案中,管理程序是作为固件的嵌入式部件提供的。但这只是一个打包选项,并不会实际改变基础技术。
Type-1 VMM 实质上使用两种主要方法构建管理程序解决方案: 微内核化和整体化。这两种方法(如图 2 所示)是真正的 Type-1 VMM,它们将管理程序直接安装在物理硬件上。
图 2 构建管理程序解决方案的两种方法
整体化管理程序方法在单层内托管管理程序/VMM,这一层还包括大部分必需组件(例如内核、设备驱动程序和 I/O 堆栈)。这一方法为 VMware ESX 和传统大型机系统之类的解决方案采用。
微内核化方法使用非常瘦的专用管理程序,它仅执行核心任务以确保分区隔离和内存管理。该层不包括 I/O 堆栈或设备驱动程序。Hyper-V 采用此方法。在此体系结构中,虚拟化堆栈和特定于硬件的设备驱动程序位于称为父分区的专用分区中。