虚拟化

使用 VMM 2008 管理您的虚拟环境

Edwin Yuen

本文基于 Virtual Machine Manager 2008 的预发布版。文中的所有信息均有可能发生变更。

概览:

  • 支持 VMware VM
  • 基于 Windows PowerShell 的脚本编写和自动化
  • 综合集中式管理
  • 安装过程

目录

Virtual Machine Manager 2008 简介
与 System Center 集成
Virtual Machine Manager 2008 安装
添加 VMware ESX 主机
VMotion 迁移
结束语

去年,Microsoft 推出了 System Center Virtual Machine Manager 2007,它为管理运行 Microsoft Virtual Server 2005 的虚拟基础结构提供了综合界面。现在,为配合新 Windows Server 2008 Hyper-V 管理程序的发行,发布了新版本的 Virtual Machine Manager (VMM)。System Center Virtual Machine Manager 2008 不仅管理 Microsoft Virtual Server 2005 和 Windows Server 2008 Hyper-V 的安装,还支持 VMware Infrastructure 3 (ESX/ESXi) 服务器。通过 VMM,您现在可获得一个适用于整个虚拟基础结构(包括 Microsoft 和 VMware 系统)的集成管理界面。

VMM 支持所有传统虚拟化任务,例如,源自模板和预配置 VM 的快速虚拟机 (VM) 部署、物理到虚拟 (P2V) 转换、集中式虚拟基础结构对象库,甚至 VMware 虚拟机(VMX 配置文件和 VMDK 虚拟磁盘)到 Hyper-V VM 的虚拟到虚拟 (V2V) 转换。此外,VMM 与 System Center 系列其余部分的集成将物理系统和虚拟系统的管理引入到了单一管理平台中。

在本文中,我将介绍 VMM 2008 及其为 IT 管理员带来的新功能。然后,我将介绍 VMM 安装所涉及的要求和步骤。最后,我将进一步探讨如何使用 VMM 2008 中的某些新功能。

Virtual Machine Manager 2008 简介

System Center Virtual Machine Manager 2008 是一个独立的应用程序,它为在 Microsoft Virtual Server 2005 R2 SP1、Windows Server 2008 Hyper-V、Microsoft Hyper-V Server 2008 和 VMware Infrastructure 3 (ESX/ESXi) 服务器下运行的虚拟机提供了企业级集中式管理。与其他 System Center 产品结合使用时,VMM 可提供端到端物理和虚拟基础结构管理。图 1 显示了 Virtual Machine Manager 的体系结构布局。

fig01.gif

图 1 System Center Virtual Machine Manager 2008 体系结构(单击图像可查看大图)

熟悉 VMM 2007 的人应该发现,VMM 2008 中进入 VMM 系统的界面要多得多(请参见图 1)。左上角的方框表示 VMM 2008;右上角的方框表示 System Center Operations Manager 2007,下方显示的是托管系统和界面。红色方框指示管理服务器,蓝色方框显示系统输入,绿色方框是托管主机系统,其托管对象以黄色显示。

左上角的红色方框代表 Virtual Machine Manager 2008 服务器服务。它的上面是进入服务的三个不同界面;管理员控制台、Windows PowerShell 界面以及具有委派用户访问权限的自助 Web 门户。Windows PowerShell 是所有对 VMM 服务器访问的基础。VMM 管理员控制台完全基于 Windows PowerShell 构建而成,因此您只需创建 VMM 服务器服务运行的 Windows PowerShell 脚本即可。因而,VMM 2008 的公共 API 是 Windows PowerShell,任何程序都可以通过 Windows PowerShell 利用 VMM。一个不错的示例就是 Citrix 的 XenDesktop Desktop Delivery Controller 与 Virtual Machine Manager 的集成,它是完全通过 Windows PowerShell 实现的。

起支持作用的 VMM 是一个 SQL Server 2005 或 SQL Server 2008 数据库(如果没有其他数据库可用,可使用完全安装的 SQL Server 或 SQL Server Express Edition)。虽然图表显示 Operations Manager 和 Virtual Machine Manager 均指向 SQL Server,但这两个程序不是共享一个数据库。它们只是在同一版本的 SQL Server 上运行。Virtual Machine Manager 与 Operations Manager 之间的实际集成是通过一个连接器(通过 VMM 提供)实现的。此连接器允许 VMM 和 OpsMgr 共享数据,从而将虚拟化信息带入 OpsMgr 并将 OpsMgr 数据带入 VMM 以进行操作。

图表下半部分显示的是托管主机。VMM 2008 仍管理 Virtual Server 2005 R2 SP1 虚拟机主机和集中式库共享,与 VMM 2007 中一样。应当注意,在 VMM 中,库共享并不是特殊的文件存储或服务器。它只是一个 VMM 管理的 Windows 文件共享。您可以通过 VMM 管理库,也可以轻松地从文件共享复制和删除文件并让 VMM 发现变化。您还可以拥有多个库,这对于委派的服务器组和远程办公室的服务器非常有用。

VMM 2008 新增了管理 Hyper-V 和 ESX 管理程序的功能。Hyper-V 主机的管理是通过 Windows 远程管理 (WinRM) 和 Windows 管理规范 (WMI) 界面完成的。实际上,添加可能存在的 Hyper-V 主机时,如果 Hyper-V 角色未在 Windows Server 2008 中启用,那么 VMM 可以自动为管理员启用该角色。此功能也可用于 Windows Server 2003 系统的潜在 Virtual Server 主机。

VMware VI3 ESX 主机的管理实际上是通过 VMware VirtualCenter 服务器完成的。VMM 2008 通过 VirtualCenter Web 服务 API 与 VirtualCenter 衔接。因而,VMware 管理需要 VirtualCenter 服务器,大多数企业安装的 VMware 都至少有一个 VirtualCenter 服务器。VMM 2008 的独特功能是可以管理多个 VirtualCenter 服务器。VMM 可以添加多个 VirtualCenter 服务器,允许管理员聚合整个 VMware 基础结构并提供单一企业视图,之前无法做到这一点。

作为 System Center 系列产品的一部分,VMM 在管理员控制台中使用 System Center 或 Outlook 样式的界面。VMM 管理员控制台并不是 MMC 管理单元;它是一个全新的应用程序,采用 Microsoft .NET Framework 并以 Windows PowerShell 1.0 为基础构建而成。事实上,正如之前提到的,管理员控制台中的任何操作均将调用关联的 Windows PowerShell 命令,因此 UI 实际上是使用 Windows PowerShell。在管理员控制台中执行的任何命令或函数也可通过 Windows PowerShell 中的命令行来执行。

管理员控制台中的每个向导都包含一个“View Script”(查看脚本)按钮,用于显示要运行命令的相关 Windows PowerShell 脚本,从而为学习 Windows PowerShell 提供一个不错的起点,因为它与 VMM 相关。“查看脚本”操作(VMM 2008 中的新增功能)现在可在记事本中打开这些脚本,因此您可以轻松地直接从 VMM 对其进行编辑。您也可以轻松地保存编辑过的脚本,然后可以直接从 VMM 库(VMM 2008 中的另一新增功能)重新使用它。VMM 2007 中的 cmdlet 已在 VMM 2008 中进行了更新,包括对 VMware 服务器的支持。同一 cmdlet 可跨多种虚拟化平台工作,这样,cmdlet(如 New-VM)就可在 Microsoft 和 VMware 系统中发挥功效。因而,IT 管理员可以使用一组 cmdlet 来管理 Virtual Server、Hyper-V 和 VMware ESX 主机。

Virtual Machine Manager 2008 旨在向 IT 管理员提供以下三个重要优点:

  • 最大限度地利用资源
  • 具备更好的灵活性
  • 充分利用现有技能

多种特性和功能共同铸就了这些优点。首先,VMM 通过将整个虚拟基础结构的管理进行集成(有无管理程序皆可)帮助您最大限度地利用资源。通过将 Microsoft 和 VMware 系统集成,VMM 2008 提供了包含所有主机和虚拟机的单一视图(如图 2 所示),并允许管理员按参数(如主机、操作系统、所有者、添加日期等)筛选和查看其系统。

fig02.gif

图 2 VMM 控制台显示集成式 Microsoft 和 VMware 管理(单击图像可查看大图)

VMM 也可通过便利的服务器合并与转换(如 P2V 和 V2V)帮助您最大限度地利用系统资源。P2V 允许您将现有物理机合并为虚拟机,而无需重新安装这些机器。在转换硬件利用率较低的计算机时,这一点尤为有用,这样您可通过将多台低利用率计算机一起放置在单个物理硬件上而最大限度地利用资源。P2V 是 VMM 的一个集成功能,不需要另行增加软件或服务器。在 VMM 2008 中,支持更多物理系统,包括 Windows Vista、Windows Server 2008 和 x64 主机。VMM 的 P2V 功能是计划工具(如 Microsoft 评估规划 (MAP) 工具)的出色助手(本期《TechNet 杂志》中由 Baldwin Ng 和 Jay Sauls 撰写的文章中对此工具做了介绍**),可帮助确定服务器合并的候选对象。

如果虚拟机是 Vmware 的 VMDK 格式,VMM 允许您使用 V2V 将现有 VMDK 转换成 VHD 格式。这是一个离线进程,即当 V2V 进程将实际 VMDK 文件转换成 VHD 时,VMware VM 必须关闭。也可以使用 P2V 功能转换正在运行的 VMware VM。这可能听起来有点乱,但请切记虚拟机是机器在先,虚拟在后。其他所有系统将 VM 视为正在运行的机器,VMM 的 P2V 功能也是如此,它允许您将任何虚拟化软件上正在运行的 VM 转换为 Microsoft VHD。

VMM 通过多项功能为 IT 管理员提供了更大的灵活性。其中一个重要功能是将 VM 从一个主机迁移到另一个主机,从而保证高可用性并优化服务器。VMM 2008 通过 Hyper-V 主机支持快速迁移,这样只需停机几秒便可在 Hyper-V 主机之间移动 VM。这需要 Windows Server 2008 群集和共享存储,但 VMM 可帮助简化管理和配置。

通过 VMware ESX 主机,VMM 2008 还支持 VMware Vmotion,即不需要明显中断便可移动 VM 的 VMware 功能。它需要有启用 Vmotion 的 VMware ESX 主机,就像群集和 SAN 后端垂青快速迁移一样。在下文后面的内容中,我将使用 VMM 2008 向您介绍 Vmotion。

最后,VMM 2008 可以将现有 Virtual Server 2005 VM 迁移到 Hyper-V 主机上,从而自动执行迁移所需的所有升级和转换。

无论是转换还是新部署,在任意 VM 部署(包括前面介绍的迁移)中,VMM 均使用名为“智能定位”的进程将 VM 部署到主机。它还使用“智能定位”查询所管理的所有虚拟机主机、检索这些主机资源可用性的多个参数,然后返回可将 VM 部署到其中的推荐主机加权列表。正如图 3 所示,“智能定位”支持 Microsoft 和 VMware 主机及其存储配置。VMM 2008 中的“智能定位”既可识别平台又可识别配置。因此,它仅推荐适合正确主机平台的主机;如果需要高可用性则只推荐群集主机,对于 x64 VM 只推荐使用 x64 的主机。

fig03.gif

图 3 智能定位分析所有可用的主机(单击图像可查看大图)

与 System Center 集成

VMM 2008 的关键功能之一是与 System Center Operations Manager 2007 的集成。虽然 VMM 2007 可与 Operations Manager 进行某种集成,但 VMM 2008 包括一个 Operations Manager 产品连接器,极大地增强了这一集成功能。通过与 Operations Manager 的集成,VMM 提供了管理员控制台出具的综合操作管理器报告,以及一项称为性能和资源优化 (PRO) 的全新功能。

PRO 使 VMM 2008 可以创建称为“PRO 提示”的警报,甚至可以根据 Operations Manager 的监视参数执行自动补救操作。图 4 显示了一些 PRO 提示的示例。使用启用 PRO 的管理包(PRO 包)时,VMM 2008 可以执行自动操作,例如,根据基于主机、管理程序、硬件乃至工作负载的性能参数迁移 VM 和新建 VM。

fig04.gif

图 4 PRO 提示为虚拟基础结构中所存在的问题提供了警报和补救措施(单击图像可查看大图)

Virtual Machine Manager 2008 安装

要安装 System Center VMM 2008,需要满足几个先决条件和新系统要求。首先,VMM 2008 服务器要求有 Windows Server 2008 x64。该服务器不能安装在 Windows Server 2003 或 Windows Server 2008 的 x86 版本中。管理员控制台和其他组件仍可安装在 Windows Server 2003、Windows XP 或 Windows Vista(对于控制台)中,要求和安装过程与 VMM 2007 一样。

其次,VMM 2008 要求其安全模型安装在 Active Directory 域中。VMM 2008 支持外围网络(未加入域的)主机的管理,包括非域系统的 P2V(此为 VMM 2008 的新增功能)。使用 Windows Server 2008 作为安装平台的优势之一就是 VMM 的许多先决条件(如 .NET Framework 3.0、WinRM 和 Windows PowerShell 1.0)已经内置。最后,VMM 2008 需要 Windows 自动安装工具包 (WAIK) 3.0,虽然 VMM 2008 安装程序已包括安装文件。

尽管我建议在生产环境中的生产服务器上分别安装每个 VMM 组件,但我将介绍的是单服务器安装。安装 VMM 服务器的建议硬件是基于 x64 的服务器、至少 2GB RAM 且主频为 2.8GHz 或更高。由于它是具有本地 SQL 数据库的单服务器安装,因此需要 7GB 的硬盘空间。请注意,如果使用远程数据库,则 VMM 安装本身仅需 1GB。本地库安装另外需要 80GB 的硬盘空间。

如前所述,VMM 在 Windows Server 2008 x64 安装中运行。需要的其他软件包括 .NET Framework 3.0、Windows PowerShell 1.0、WinRM 和 IIS 6.0 或更新版本(用于自助门户)。还需要有 Microsoft MSXML 6.0 Parser,但它是 .NET Framework 3.0 的一部分。

在开始 VMM 安装时,提供有五个选项:Virtual Machine Manager Server、管理员控制台、自助门户、本地代理以及配置 Operations Manager 管理包的选项。如前所述,我将在单个计算机上安装全部组件,从 VMM Server 开始。安装开始后,第一个屏幕将检查系统先决条件。

除了之前提到的要求之外,计算机必须处于域中。VMM 服务器安装将自动为您启用内置功能,因而无需手动启用它们。

启动安装程序后,我建议使用 Windows Update 选项确保 VMM 2008 是最新的。然后安装程序会检查主要与 SQL 数据库安装有关的选项。在此示例中,我将使用 SQL Server 2005 Express Edition。

接下来,向导会要求您确定集中式库的位置。该位置可以是 VMM 服务器上的本地目录(会针对该目录创建共享),也可使用现有文件共享。默认位置为 C:\ProgramData\Virtual Machine Manager Library Files。

下一步是分配端口。在此步骤中,我需配置核心 VMM 服务器服务与管理员控制台连接所用的端口(默认端口为 8100)、WinRM 用于执行管理功能的端口(默认端口为 80)以及后台智能传输服务 (BITS) 用于将文件移动到虚拟机主机的端口(默认端口为 443)。输入完此类信息后,将显示摘要屏幕,服务器安装到此结束。

接着,我将安装管理员控制台,其系统先决条件与 VMM 服务器相似。除了安装目录之外,唯一可用的配置选项是确认用于连接 VMM 服务器服务的通信端口。该端口应为 8100(在 VMM 服务器安装中所配置的)。

安装结束时,会让您选择创建管理员控制台的桌面快捷方式以及在结束安装后打开控制台。最好是两者皆选。首次打开管理员控制台时,系统会提示您连接服务器。在单服务器安装环境中,应连接端口 8100 上的 localhost,这样只需按 Enter 便可启动控制台。

最后,我将安装自助门户。安装此功能的前提条件是必须具备 IIS 6.0 或 7.0、.NET Framework 3.0 和 Windows PowerShell 1.0。(因为自助门户正是核心 VMM 服务的另一个界面,它要使用 Windows PowerShell,所以需要有 Windows PowerShell。)对于 Windows Server 2008,您需要在开始安装 VMM 2008 之前启用 IIS 角色。执行此操作时,请确保下列 IIS 角色服务已被启用:

  • 常用 HTTP 功能(静态内容、默认文档、目录浏览、HTTP 错误)
  • 应用程序开发(ASP.NET、.NET 可扩展性、ISAPI 扩展、ISAPI 筛选器)
  • 安全性(请求筛选)
  • IIS 6.0 管理兼容性

如果已启用这些角色服务,安装将通过先决条件检查并继续进行。在安装过程中,配置选项仅处理自助门户使用的端口。第一个端口是连接核心 VMM 服务的 8100 端口,与管理员控制台相同。第二个端口是用于运行门户的端口。默认端口为 80,但是,在许多配置中,该端口可能已占用,如果是这样,VMM 安装程序会发出警告。必要时,将此端口更改为另一打开的端口(如 8080)。安装程序会创建一个名为“Microsoft System Center Virtual Machine Manager 2008 Home 自助门户”的网站。可在 Server Manager 中更改此配置。

完成 IIS 安装后,只需转到 Internet Explorer 中的 localhost:8080 便可打开此网站。如果在打开网站的过程中系统提示您进行身份验证,那是 Internet Explorer 安全设置所导致的。应在 Internet Explorer 的 Intranet 环境中运行自助门户;您可能需将 VMM 服务器添加到 Internet Explorer 中的 Intranet 站点列表中。完成此类配置后,您将随时可以在 VMM 2008 中创建和使用启用自助的 VM。

添加 VMware ESX 主机

虽然 VMM 2008 中有许多新增功能,但最让人心动的无疑是添加了对 VMware ESX 主机管理的支持。有了这个支持,VMM 现在可以管理绝大多数企业 IT 部门的虚拟基础结构。

将 ESX 主机添加到 Virtual Machine Manager 2008 相当简单。如前所述,VMM 2008 通过 VirtualCenter 服务器(它必须是 2.0.1 或 2.5 版本)管理 Vmware 主机。要将 VMware ESX 服务器添加到管理控制台,只需使用位于“操作”窗格右上角的“添加 VMware VirtualCenter 服务器”操作来添加 VirtualCenter 服务器。

启动向导后,键入 VirtualCenter 服务器的计算机名称以及 VirtualCenter 服务器的管理帐户。VMM 便会将 ESX 主机(包括 VirtualCenter 中的现有“主机组”结构)添加到 VMM 界面中。此任务执行需要几分钟时间,但您可从“VMM 作业”菜单监视进度。

导入所有服务器后,您应该可以在 VMM 中看到与 VirtualCenter 中相同的 VMware ESX 主机服务器结构。要添加另一 VirtualCenter 服务器,只需重复此过程即可。将主机结构添加到 VMM 中后,可以将非 VMware 服务器添加到同一组结构中。当然,非 VMware 服务器不会显示在 VirtualCenter 中。

VMM 2008 使用 VirtualCenter 管理 ESX 主机时,它必须能够直接访问 ESX 主机本身以使用某些功能,例如,V2V、保存状态以及从 ESX 主机克隆 VM。因此,将 VirtualCenter 服务器添加到 VMM 后,主机将显示为“确定(受限)”。要启用完全管理,请转到 VMM 中各个 ESX 主机的“属性”页,并提供适当的主机凭据以直接管理服务器。

VMotion 迁移

每当讨论 Virtual Machine Manager 2008 中的 VMware 管理时,总是会问到这样一个问题,即 VMM 是否可以执行 VMotion 和其他 VirtualCenter 功能。由于 VMM 使用 VirtualCenter 进行 VMware 管理,因此此问题的答案是肯定的!

从功能上讲,VMM 给予 VMotion 和其他任何迁移一样的待遇。要启动 Vmotion,首先选择要移动的 VM,然后从 VMM 右侧的“操作”窗格中选择“迁移虚拟机”选项。完成后,VMM 将调出该 VM 的“智能定位”窗口并显示潜在的目标主机(迁移类型为 Live),如图 5 所示。智能定位可以帮助您为您的 VM 选择正确的目标主机。请注意,此过程与使用 Hyper-V 主机执行快速迁移相同。

fig05.gif

图 5 使用智能定位的 VMotion(单击图像可查看大图)

为 VM 选择目标主机(在本例中,选择名为 cqaesxi003.contoso.com 的服务器,然后单击“Next”(下一步))。最终摘要窗口(如图 6 所示)将显示请求的操作。

fig06.gif

图 6 VMotion 摘要窗口(单击图像可查看大图)

如前所述,VMM 中的每个向导都有一个“查看脚本”按钮,可在记事本中显示作业的 Windows PowerShell 脚本。这样,我们就可以看到 VMM 2008 中的 Windows PowerShell 如何与 Vmware 协同工作。以下是此操作的脚本:

$VM = Get-VM -VMMServer localhost -Name "MyVM" |
  where {$_.VMHost.Name -eq "cqaesxi003.contoso.com"}
$VMHost = Get-VMHost -VMMServer localhost |   where {$_.Name -eq "cqaesxi003.contoso.com"}
Move-VM -VM $VM -VMHost $VMHost –RunAsynchronously

该系统通过三个简单的命令执行 Vmotion。在我的示例中,我将 VM MyVM 从 VMware 服务器 cqaesxi003.contoso.com 移到服务器 cqaesxi001.contoso.com。第一个命令用于确定要通过 VMotion 迁移的虚拟机。正如您所看到的,在此命令行中,我将虚拟机值分配给变量 $VM:

$VM = Get-VM -VMMServer localhost -Name "MyVM" |
  where {$_.VMHost.Name -eq " cqaesxi003.contoso.com"}

第二个命令用于确定 VM 的目标 ESX 主机系统。在此行中,我将变量 $VMHost 分配给 ESX 主机 cqaesxi003.contoso.com:

$VMHost = Get-VMHost -VMMServer localhost | where
  {$_.Name -eq " cqaesxi003.contoso.com"}

最后,我使用 Move-VM 命令来实际移动 VM。以下是用于 Move-VM 的完整命令行和参数:

Move-VM [-VM] [<String VM>] -VMHost [<String Host>] 
  [-JobGroup <Guid>] [-JobVariable <String>] [-Path
  <String>] [-PROTipID] [-RunAsynchronously] 
  [-StartVMOnTarget <Boolean>] [-UseLAN <Boolean>]
  [<CommonParameters>]

按照 Virtual Machine Manager 中的异类管理哲学,您可以看到此命令并不是特定于供应商或软件的。要完成 Vmotion,请发出以下命令:

Move-VM -VM $VM -VMHost $VMHost –RunAsynchronously

这将告诉 VMM 针对 $VM 中的 VM 运行 Move-VM,从而移到 $VMHost 中的主机系统,并异步运行作业。作业开始后,可以从 VMM 中的“作业”窗口监视整个过程。同样,可以使用这一相同的基本命令对 Hyper-V 群集乃至非群集主机(使用基于 LAN 的迁移)执行快速迁移。

您可以看到,通过引入新的管理平台和新功能,System Center Virtual Machine Manager 2008 进一步提升了 Virtual Machine Manager 2007 的出色特性和功能。通过查看安装过程和几个功能,我希望我已经展示了在 VMM 2008 中管理多个管理程序有多简单。

VMM 2008 旨在成为管理虚拟化的综合软件,它将 Microsoft 和 Vmware 的物理和虚拟系统集于一体。通过这一新版本的 Virtual Machine Manager,VMware 管理员、Microsoft Virtual Server 2005 管理员以及新 Hyper-V 管理员均可以在其虚拟基础结构中利用单一工具、单一脚本界面以及单一管理过程(这一点最为重要)。

Edwin Yuen 是 System Center Virtual Machine Manager 的 Windows 企业管理部门的技术产品经理。Edwin 是在 2006 年 7 月 Microsoft 收购 Softricity 后加入 Microsoft 的。Edwin 还具有 13 年在商业和联邦部门担任技术顾问的经验。他拥有约翰-霍普金斯大学的电气工程学士学位。