虚拟化

Windows Server 2008 中的 Hyper-V 简介

Rajiv Arunkundram

 

概览:

  • 什么是虚拟化?
  • 三种虚拟化体系结构
  • 微内核化与整体化管理程序
  • Hyper-V 的作用

目录

服务器虚拟化市场
服务器虚拟化的工作原理
虚拟化解决方案的类型
Windows 管理程序
父分区
设备共享体系结构
集成组件
Hyper-V 功能集
可伸缩性
高可用性
安全性
可管理性
结束语

最近关于虚拟化的论述很多,大部分探讨的是服务器虚拟化。这是业界最令人兴奋的趋势之一,有可能在今后几年内转变 IT 系统的部署模式。服务器虚拟化不仅会改变 IT 管理员和架构师对服务器和系统利用率的考虑方式,对于那些必将成为动态环境的因素,它还会影响其管理过程和工具。

实际上虚拟化出现已有一段时间了,但此项技术仍在发展中。事实上,不同的人对这个单词本身有不同的理解。但是广义上说,虚拟化目的在于从下一个层抽象一个技术堆栈层,就像从服务器中抽象存储或从应用程序抽象 OS 一样。这样就可以实现合并,并获得更好的可管理性。

作为一个概念,虚拟化适用于存储、网络、服务器、应用程序和访问。当您查看存储和网络时,虚拟化的目标是聚合一组不同的设备,这样总资源池看起来以及操作起来就像单个实体。例如,您可以配置一个 40TB 存储解决方案来代替一个包含 20 个 2TB 存储设备的设备组。但对于其他组件,虚拟化的行为恰恰相反,它会帮助让单个系统发挥多个系统的作用。此方面的一个最常见示例是服务器虚拟化,您在单个服务器上托管多个 OS 实例和环境。

Microsoft 已经在多个不同的级别上实现了虚拟化,从桌面扩展到数据中心,其解决方案覆盖服务器虚拟化、应用程序虚拟化、演示虚拟化和桌面虚拟化。Microsoft System Center 的管理部件是贯穿其中的连接器。在本文中,我将集中讨论服务器虚拟化组件,特别是 Hyper-V(Windows Server 2008 的重要功能)如何适应动态数据中心。

服务器虚拟化市场

首先,我认为有必要了解当今的具体环境以及整个市场的发展趋势。据研究显示,一些分析人员估计目前售出的所有物理服务器中有 5–9% 被用作虚拟化主机。您可能认为这是很大的数量,因为市场上每年要发运九百多万台物理服务器。但有一件事情可以肯定:随着更多的客户对虚拟化非常熟悉而逐渐采用它,仍然存在着巨大的商机。

虚拟化的使用场合需要引起重视。大型企业客户无疑肩负着测试的职责,它们是早期的采用者。但是,一些中小型企业也在部署虚拟化。虚拟化已经在不同的工作负荷中得到普及,从业务应用程序和管理到 Web 和电子邮件皆是如此。

那么,为什么虚拟化现在如此时兴呢?这其中有几个因素,主要是时机。几个重要的行业因素同时聚合在一起,虚拟化因此得以更加广泛的采用。这些行业因素包括向 64 位计算的转换、多核处理器以及提高系统利用率所需的可持续计算。

系统持续增长,它们需要利用像虚拟化这样的技术来充分利用系统的功效。虽然核心技术(和摩尔定律)在提高系统处理能力方面已经稳步领先,但我们现在更为关心的是环境影响、功效要求和冷却成本。

因为有这些因素,再加上虚拟化能带来显而易见的投资回报率 (ROI),使其迅速扩大了在大型和小型企业中的市场。作为 IT 专业人员,我们可以预计所有主要参与方在接下来的几年中会继续在这一技术领域进行投资,并改进特性和功能。

服务器虚拟化的工作原理

服务器虚拟化通常可以让您在单个物理设备上安装(并同时运行)两个或多个身份、应用程序堆栈等各不相同的 OS 环境。Hyper-V 是下一代基于 64 位管理程序的虚拟化技术,它提供了可伸缩的可靠平台功能。通过与 System Center 结合使用,它为物理和虚拟资源提供了一组集成的管理工具。

所有这些都可以减少成本、提高利用率、优化基础结构并使各企业能迅速置备新服务器。为了帮助您更好地了解 Hyper-V 的构建方式,我想先看看不同类型的虚拟化解决方案。

虚拟化解决方案的类型

从本质上讲,有三个常见的体系结构可用于服务器虚拟化,如图 1 所示。虚拟化层和物理硬件之间的关系处理决定着它们的根本差异。虚拟化层就是称为虚拟机监控器(VMM,不要与 Virtual Machine Manager 混淆)的软件层。该层可以创建多个共享同一底层硬件资源的独立实例。

fig01.gif

图 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,它们将管理程序直接安装在物理硬件上。

fig02.gif

图 2 构建管理程序解决方案的两种方法(单击图像可查看大图)

整体化管理程序方法在单层内托管管理程序/VMM,这一层还包括大部分必需组件(例如内核、设备驱动程序和 I/O 堆栈)。这一方法为 VMware ESX 和传统大型机系统之类的解决方案采用。

微内核化方法使用非常瘦的专用管理程序,它仅执行核心任务以确保分区隔离和内存管理。该层不包括 I/O 堆栈或设备驱动程序。Hyper-V 采用此方法。在此体系结构中,虚拟化堆栈和特定于硬件的设备驱动程序位于称为父分区的专用分区中。

Windows 管理程序

通过创建虚拟处理器、内存、定时器和中断控制器确保明确分隔多个 OS。OS 使用这些虚拟资源就像它们使用其相应的物理资源一样。

Windows 管理程序(Hyper-V 的部件)执行下列任务:

  • 创建逻辑分区。
  • 管理来宾 OS 的内存和处理器计划。
  • 提供虚拟化输入/输出以及在各分区之间进行通信的机制。
  • 强制实施内存访问规则。
  • 强制实施 CPU 使用率策略。
  • 提供称为 hypercall 的简单编程接口。

由于 Windows 管理程序使用微内核化方法,因此它非常小(不到 1MB)。这种最低的空间占用率可以帮助提高系统的整体安全性。

对于正在运行的 Hyper-V,需安装使用 Intel VT 或 AMD-V 技术的 x64 系统。通过 x64 技术可以访问更大的地址空间并支持内存更大的系统,从而可以在单个主机系统中安装多个虚拟机。Intel VT 和 AMD-V 是有硬件辅助的虚拟化解决方案,在环形体系结构中提供超级权限层,以帮助将管理程序的执行环境与系统其余部分隔离开来。它们还允许 Hyper-V 运行原装来宾 OS,不会产生大量的仿真性能损失。

父分区

Hyper-V 包括一个父分区,它实质上是一个具有特殊或特权级访问权限的虚拟机。这是唯一可以直接访问硬件资源的虚拟机。所有其他虚拟机(称为来宾分区)均通过父分区访问其设备。

父分区的存在是相当透明的。开始安装 Hyper-V 时,首先必须在物理系统上安装 Windows Server 2008 x64 Edition。然后需要转到 Server Manager、启用 Hyper-V 角色并重新启动系统。系统重新启动后,将首先加载 Windows 管理程序,然后将堆栈其余部分转换成父分区。

父分区有键盘、鼠标、视频显示器以及其他与主机服务器连接的设备的所有权。它并不直接控制管理程序使用的定时器和中断控制器。

父分区包含一个 Windows 管理规范 (WMI) 提供程序(便于管理虚拟化环境的方方面面),以及一个虚拟化堆栈(代表子分区执行与硬件相关的任务)。另外,父分区中还包含主机系统硬件所需的所有独立硬件供应商 (IHV) 驱动程序,针对 Windows Server 2008 x64 版本创建的所有驱动程序也将在父分区中运行。

设备共享体系结构

Hyper-V 中具有创新性的体系结构组件之一是新设备共享体系结构,它支持各个来宾 OS 中的模拟设备及合成设备。设备模拟对于支持带有上一代硬件设备驱动程序的旧式 OS 非常有用。例如,Hyper-V 包括 Intel 21140 网络适配器的模拟,在许多旧式 OS 刚刚面世时它称为 DEC 21140 网络适配器。

设备模拟速度通常很慢,不易扩展,也不能很好地调节。但模拟仍很重要,因为通过它您可以在 Hyper-V 上运行大多数 x86 OS。由于虚拟化现在已从主要针对测试和开发的小型技术转向生产环境所必需的技术,因此用户需要更好的性能才能运行更大的工作负载。模拟设备不再能满足这些日益增加的要求。

一个替代解决方案是使用 Hyper-V 合成设备。合成设备是可直接映射为物理设备的虚拟设备。与模拟设备不同,合成设备不会模拟原有硬件。通过 Hyper-V 硬件共享模型,受支持的来宾 OS 可直接与可能没有物理设备的合成设备交互。这些 OS 使用虚拟服务客户端 (VSC),它在来宾 OS 中充当设备驱动程序。

VSC 使用 VMBus(即内存中的高速总线)来访问父分区中的虚拟服务提供程序 (VSP),而不是直接访问物理硬件。然后父分区 VSP 会管理对底层物理硬件的访问,如图 3 所示。合成设备的主要优势在于其在 VMBus 上的性能更接近于非虚拟化硬件设备的性能。

fig03.gif

图 3 VSC 使用 VMBus 访问 VSP,VSP 随后管理对底层物理硬件的访问(单击图像可查看大图)

集成组件

Hyper-V 的目标是为在同一计算机上运行的各种实例之间提供强边界。为在来宾 OS 与主机 OS 之间产生交互并为受支持的来宾 OS 提供附加功能,Hyper-V 提供了集成组件。

Hyper-V 集成组件支持以下功能:

  • 时间同步
  • 卷影复制服务 (VSS)
  • 检测信号功能
  • 来宾关闭
  • 项值对交换(用于访问来宾 OS 的注册表)
  • OS 识别

Hyper-V 功能集

毫无疑问,虚拟化平台的行为与物理服务器越接近,各个组织部署并依赖虚拟工作负载就更为容易。在我看来,您可以从四个重要领域来审视虚拟化平台的不同功能。

如今大多数基于管理程序的虚拟化解决方案在特性和功能方面彼此非常接近。随着我们的不断深入,总体拥有成本 (TCO) 和易于使用之类的内容将成为重要的区分标志。管理解决方案将预见后续投资和开发,使我们更接近动态 IT 环境的愿景,即,基础结构可以非常灵活地根据企业需求进行调整,而且模型和策略可帮助改进自动化和管理。

可伸缩性

使用微内核化管理程序体系结构,Hyper-V 中的 CPU 开销非常低,为虚拟化工作负载留出了大量的空间。通过让虚拟机利用强大的功能和硬件(例如,多核技术、改进的磁盘访问和更大的内存),Hyper-V 提高了虚拟化平台的可伸缩性和性能。

通过与 Windows Server 2008 的其余功能结合使用,Hyper-V 允许您在一个系统上合并大多数工作负载(包括 32 位和 64 位工作负载)。它还继续支持已在整个环境中使用的 32 位工作负载,帮助您平衡所采用的 64 位技术。

由于 Hyper-V 需要带有硬件辅助虚拟化的 64 位主机系统,因此可帮助确保主机系统有权访问大型内存资源池。Hyper-V 主机可以支持多达 1TB 的内存,其中每个虚拟机最多包含 64GB 内存。对于计划虚拟化非常耗费内存的工作负载(如 Exchange Server 和 SQL Server)的人员来说,这是非常关键的。

Hyper-V 在主机系统上还支持多达 16 个逻辑处理器,使 Hyper-V 可用于大部分商用多核双座和四座系统。您还可以创建最多包含四个虚拟处理器的虚拟机,以支持需要或利用多处理器功能的工作负载。

通过 Hyper-V 合并服务器还能使这些服务器利用强大的联网支持,包括 VLAN、网络地址转换 (NAT) 和网络访问保护 (NAP) 策略(隔离)。作为 Windows Server 2008 的一项功能,Hyper-V 可与其他 Windows Server 功能(如 BitLocker 和 Windows PowerShell)良好配合。

高可用性

高可用性是指 Hyper-V 和主机群集功能联手帮助解决业务连续性和灾难恢复需求。业务连续性能够尽可能缩短计划和非计划停机时间。这包括在例程功能上耗费的时间,如维护与备份以及意外停电。

灾难恢复是业务连续性的一个重要组成部分。自然灾难、恶意攻击甚至软件冲突等简单的配置问题都有可能导致服务和应用程序瘫痪,直到管理员解决问题并恢复数据后才能恢复正常。可靠的业务和灾难恢复策略必须将数据丢失降至最低并提供强大的远程管理功能。

考察高可用性时,应考虑三个不同的类别,即计划停机时间、非计划停机时间和备份。通常需要对计划停机时间加以保护,以帮助从主机系统移开虚拟机,这样您就可以执行硬件维护,或者对主机系统或虚拟化平台(可能需要重新启动)应用补丁程序。

大多数组织都对维护时间制订了计划,你真正需要的是最大程度减少或消除主机系统因维护关闭时虚拟机不可用的时间。通过快速迁移功能,您在数秒钟时间内便可迅速将正在运行的虚拟机从一个物理节点移到另一个物理节点。因而,当您对原始主机执行维护时仍能在生产中使用虚拟机。完成维护后,您便可以使用快速迁移将虚拟机重新送回原始主机系统。

非计划停机时间是指无法预见的停机时间。它本质上可能是灾难性的,可能就像某人意外拔出电源线而使服务器关闭一样。虽然这听起来不大可能,但这些年来我在 Tech•Ed、Vmworld 和其他会议上遇到了几个管理员,他们都向我讲述了一些服务器如何被某个同事意外关闭的情况。

通过 Hyper-V,您可以针对不同的主机系统设置主机群集并将所有虚拟机配置为群集资源,然后可以在其中某个主机发生故障的情况下故障转移到其他系统同时,Windows Server 2008 的多站点群集功能将使您能够设置一个分散于各地的群集,这样,如果您的主数据中心发生了故障,您可以将各个虚拟机恢复到远程数据中心。

这还为保护所有分支机构提供的便利。Hyper-V 中非计划停机时间支持的一大优势对来宾 OS 无限制,这意味着您可以将其高可用性优势扩展到 Linux 虚拟机以及旧版本的 Windows Server,从而以类似的方式保护并恢复这些系统。

考虑非计划停机时间时,请切记恢复相当于关闭系统并重新启动,这意味着您将丢失所有状态信息。这可能(也可能不)是问题,具体视您在虚拟机中运行的工作负载而定。这就是在高可用性上下文中要考虑备份的重要原因。

Hyper-V 允许您对每个虚拟机进行备份,或使用 VSS 对所有仍在运行且 VSS 可识别的虚拟机生成一致的备份。通过 VSS,您可以将备份设置为在设定的间隔进行,而不会影响生产工作负载的可用性,同时确保有连续的备份计划,以便帮助您在出现非计划停机时能轻松恢复状态。有关 Hyper-V 提供的高可用性解决方案的详细信息,请参阅本期 TechNet 杂志中由 Steven Ekren 撰写的文章“实现 Hyper-V 的高可用性”**(technet.microsoft.com/magazine/cc837977)。

微内核化管理程序体系结构旨在最大程度地减少攻击面并增强安全性,尤其是在 Hyper-V 作为 Server Core 角色实施时更是如此。Server Core 是 Windows Server 2008 的一个安装选项。管理程序不包含任何设备驱动程序或第三方代码,为运行虚拟机提供了更加稳定、简洁且安全的基础。Hyper-V 还通过与 Active Directory 集成提供了基于角色的强大安全性。Hyper-V 可使虚拟机从硬件级别的安全功能(如执行禁用 (NX) 位)中受益,从而进一步帮助提高虚拟机的安全性。

像其他 Windows Server 组件一样,Hyper-V 已经渡过了安全开发生命周期 (SDL),而且为确保 Hyper-V 是一个高度安全的虚拟化平台,已进行了大量威胁建模和分析。在部署 Hyper-V 时,一定要遵循部署 Windows Server 2008 以及 Hyper-V 的最佳实践。在您的计划中要将 Active Directory 以及防病毒和反恶意软件解决方案包含在内。并使用委派管理功能来确保您对 Hyper-V 主机使用适当的管理员访问权限。

可管理性

微小的服务器散乱分布问题很容易转变为严重的虚拟机散漫分布问题。这种风险要归因于部署虚拟机的低难度。随着虚拟机移动性的增加,您还需要承担了解不同虚拟机运行的准确位置、跟踪其安全上下文等等职责。

幸运的是,有了 Hyper-V,您就不必再为虚拟环境创建单独的管理基础结构。它与 Microsoft 管理工具、System Center Virtual Machine Manager 和 Microsoft System Center Operations Manager 以及第三方管理工具相集成。它让您可以从一个控制台管理您的所有物理和虚拟资源。有关 System Center Virtual Machine Manager 2008 的详细信息,请参阅本期 TechNet 杂志中由 Edwin Yuen 撰写的文章“使用 VMM 2008 管理您的虚拟环境”**(technet.microsoft.com/magazine/cc836456)。同时,对 Windows PowerShell 的支持还使任务自动化变得更加容易。

Hyper-V 还让虚拟机能使用可用硬件,这是史无前例的。由于所有 Windows 硬件质量实验室 (WHQL) 认证的驱动程序都能够在父分区中运行,因此 Hyper-V 为驱动程序和设备带来了广泛的兼容性,从而使管理在您的环境中运行的各种驱动程序变得更加容易。

结束语

如我之前所述,管理将成为开发和区分的重要内容。在未来几年内您必将会看到这一领域内活动倍出。总的来说,当虚拟化担当更加主流的角色时,这确实是一个令人兴奋的时刻。如果您还没有试用过 Hyper-V 或者您只是想了解更多的详细信息,请转到 microsoft.com/Hyper-V

Rajiv Arunkundram 是 Microsoft 的高级产品经理,主要负责 Windows Server 营销部门的服务器虚拟化。从技术和业务角度来看,Rajiv 的主要职责是与客户和合作伙伴合作,帮助他们了解 Microsoft 的虚拟化策略和解决方案。