桌面虚拟化:虚拟环境的管理和维护

原创
云计算 虚拟化
虚拟化已经从一种需要解释的异类技术演进成为我们大多数人生活中必不可少的可行技术。或许您早已将此技术应用于质量保证测试、开发、Web 设计或培训等领域。也许您是尝试新技术的前驱,通过部署虚拟基础结构,甚至部署使用 Amazon.com、Rackspace Inc. 或其他云计算供应商提供的“云”虚拟化的基础结构,引领技术潮流。

虚拟化已经从一种需要解释的异类技术演进成为我们大多数人生活中必不可少的可行技术。或许您早已将此技术应用于质量保证测试、开发、Web 设计或培训等领域。也许您是尝试新技术的前驱,通过部署虚拟基础结构,甚至部署使用 Amazon.com、Rackspace Inc. 或其他云计算供应商提供的“云”虚拟化的基础结构,引领技术潮流。

无论您当前是否正在使用虚拟化技术,只要您曾经使用过,您无疑都会认识到此种技术自身面临着一些挑战,正如维护物理硬件也处于两难境地那样。很多问题是不同的,但也有一些问题是相似的。

处理虚拟机监控程序

您或许听说过一度流行甚广的“虚拟机监控程序”(hypervisor) 一词。它已经成为虚拟化领域的一大热门术语。但虚拟机监控程序并非新鲜事物。只要我们使用过虚拟机 (VM),就必然使用过虚拟机监控程序。事实上,IBM 早在上世纪七十年代就创造了“虚拟机监控程序”一词。

虚拟机监控程序是一种软件,它为在系统上“虚拟”运行的来宾提供一套虚拟化硬件。它为来宾操作系统实现抽象的物理硬件。在过去几年中,在 x86 平台上运行的“1 类虚拟机监控程序”(包括 Microsoft Hyper-V 和 VMware ESX Server)得到了很大发展,这也导致产生一些混淆。大多数人使用的虚拟机监控程序(特别是对于客户端系统)被称为“2 类虚拟机监控程序”。两种虚拟机监控程序的差异何在?

1 类虚拟机监控程序直接在主机硬件上运行,而无需“主机操作系统”。Microsoft Hyper-V 和 VMware ESX Server 是 1 类虚拟机监控程序的常见例子。

2 类虚拟机监控程序需要运行主机操作系统。通常,2 类虚拟机监控程序主要作为用户模式应用程序在其主机操作系统上运行。Microsoft Virtual PC 和 VMware Workstation 是 2 类虚拟机监控程序的常见例子。

在大多数情况下,对于任何“始终运行的”工作负载(例如,虚拟化 SQL 或文件服务器),您都希望使用 1 类虚拟机监控程序。至少,1 类使用的资源要比 2 类少。但是,它可能需要用户登录才能启动(取决于主机),这对关键任务系统而言并非一个好的选择。相反,2 类虚拟机监控程序更加适用于“按需”虚拟机。这种类型的角色包括用于测试、应用程序兼容性或安全访问的虚拟机。

#p#

虚拟化可以节省哪些资源?

显而易见,虚拟化可以节省花费在硬件上的资金,但事情并非这么简单。如果您有两个可机架安装的 1U 规格的服务器系统,您运行这两个相同的工作负载,将它们都加载在一个 1U 系统中,当然可以节省前期的硬件成本,但其中还有奥妙。如果您使用这两个相同的服务器系统,两者可以在两台具有双核 CPU、2GB RAM 和 160GB SATA 硬盘的 1U 服务器上正常运行。

现在,您要将这两个工作负载放在一台具有相同硬件配置的服务器上运行,则必须将资源平分。对于 2 类虚拟机监控程序,您通常需要更多资源。

在规划如何将工作负载从物理机整合到虚拟机时,要考虑到 CPU、RAM 和硬盘所需的成本。虚拟化整合通常称为“垂直堆栈系统而不是水平堆栈系统”,因为您将消除对 OEM 提供的多个 物理系统的依赖。因而,您对单个系统的要求远高于虚拟化之前的要求。这会导致系统管理成本急剧攀升,而很多组织在仓促采用虚拟化技术时并未考虑到这一成本。

#p#

虚拟化的成本有多高?

过去,好的虚拟化软件需要花费大量资金。随着时间的推移,虚拟化市场的竞争日趋激烈,您能够以相当低的成本获得众多类型的虚拟化软件。但是,大多数关键企业功能仍然需要花费资金,包括主机操作系统或虚拟机监控程序。

根据您打算在虚拟机上运行的工作负载,您可能需要研究故障转移。来宾操作系统偶尔会被破坏,主机硬件可能发生故障。虚拟化不会让硬件变得更加可靠。它无助于降低故障机率。对于关键任务系统,您仍然 需要制定一个备份来宾操作系统的策略,无论是备份虚拟机容器本身(强烈建议)还是其中包含的文件系统。

即便您只要虚拟化一组来宾操作系统,以便在 2 类虚拟机监控程序上进行测试和开发,您仍然需要分配足够的 RAM,以同时运行一个或多个来宾(在主机操作系统之上)。在虚拟化管理中,最容易被忽略的问题是磁盘空间消耗。

我曾经使用虚拟化进行安全测试。我在虚拟机上运行可能的攻击,监控其运行,使用虚拟机监控程序的撤消或快照功能来回滚到早期版本,未没有出现任何问题,因此只能重复不断地进行测试。连续不断地重复进行撤消更改的唯一后果是磁盘空间很快失去控制。最终结果可能是超出来宾操作系统中硬盘的实际容量。

我经常使用的一个虚拟机有 50GB 的硬盘映像,而这次直到我尝试移动映像(包含六个 VMware 快照)时,我才意识到映像大小严重超出控制,占用的磁盘远超出 125GB。

下面是最大程度地减小虚拟化的影响/成本的一些最佳实践:

◇ 如果您在具有“撤消”功能的 2 类虚拟机监控程序上使用 Windows 客户端操作系统,则无论如何都要禁用 Windows 系统还原。否则,每次当您对系统进行更改时,占用的磁盘空间都会增长。

◇ 如果您执行步骤 1,请严格界定在什么时候要创建撤消点。

◇ 如果您在进行安全/攻击测试,请不要 依赖 Windows 回滚到更早的时间点。请使用虚拟机监控程序的撤消功能,因为它通常不会受到与还原点相同的影响。

◇ 在运行来宾操作系统时,只使用必需的最少资源。

◇ 确保分配足够的 RAM,避免客户端操作系统不断将数据从 RAM 交换到磁盘。这样会减慢主机和 所有来宾的运行速度。

◇ 在内部对来宾进行碎片整理,然后在外部对其进行碎片整理(请参见下面关于碎片整理的部分)。这两项操作应定期执行。

#p#

虚拟机的广泛应用

正如您所看到的那样,管理虚拟机很快成为一大难题。虚拟机易于复制可能是一大优点,但也会导致很大的问题,包括在管理和保护来宾、跟踪 Windows(Windows Vista 之前的操作系统,在 Windows Vista 中,新的密钥管理功能实际上在这方面很有好处)的操作系统许可证、确保商业机密不会泄露等方面。对于居心不良的员工而言,通过 USB 闪存驱动器或 USB 硬盘驱动器恶意复制虚拟机要远比尝试恶意复制整个桌面系统简单得多。

在精通技术的群体(了解虚拟化内部原理的人员)中,虚拟机广泛应用所引起的问题尤为显著。通常,虚拟机在客户端来宾中使用更加普遍,而不是在虚拟化服务器来宾中。

#p#

系统管理

所有公司都开始重视帮助用户重新获得对虚拟化系统的控制。一直以来,Microsoft 和 VMware 对于系统管理的重视程度始终超过虚拟化本身的价值。系统管理很重要,因为您并没有摆脱系统,而只是虚拟化系统。

许多系统管理产品在虚拟机上的运行非常出色,但需要一些新功能来实现虚拟化系统的更智能化的管理,包括唤醒和更新来宾,如果没有这些功能,将无法进行更新。在这个零时差攻击的时代,此类功能至关重要。您最不愿意看到的一种情况是:使用频率较低的虚拟机成为企业网络上的本地僵尸网络代理。

系统管理方法必须考虑到您有主机和来宾,确保对它们进行相应的更新并明晰各自的角色。您最不希望出现的一种情况是:设计欠佳的修补程序管理解决方案更新您的虚拟机监控程序,在工作时间进行更新,停止系统运行以进行重新启动,导致四个关键任务的来宾服务器中断运行。

您还需要通过与以前相同的方式实现这些系统的还原。这是因为即使系统已经过虚拟化,也有可能因注册表损坏或整个虚拟机损坏而导致系统崩溃。与当前物理系统相同,虚拟系统也需要同样的备份。

另外要注意的是您的虚拟机监控程序是否执行撤消功能。在考虑修补程序管理时,要牢记这一点。您很可能在周二安装修补程序,在周三更新来宾,将其回滚到周一的撤消点,其结果是在理论上“受保护”的时间内遭受零时差攻击。这是一个很大的问题,因为撤消技术的工作方式是通过虚拟机监控程序将整个磁盘回滚到较早的时间点,这意味着您将失去任何 Windows 和应用程序修补程序,以及所有的反病毒签名。

#p#

安全软件

除了撤消功能之外,您需要为虚拟来宾提供与物理机相同的安全保护以及其他保护功能。在入站威胁方面,虚拟机与物理机同样易受攻击,这一点没有任何区别。

但有一个问题非常关键:非关键虚拟机(并不是始终运行)安装修补程序和反病毒更新通常会有延迟。因此,它们会成为零时差攻击的一个无法跟踪的很大目标。正因如此,您必须确保使用一种能够充分考虑上述问题并可以修复虚拟系统的成熟系统管理解决方案。

出站威胁的情况又有所不同了。虚拟机可能是盗窃知识产权的通道。应该明白,在不受控制的主机上运行的虚拟机可能产生数据漏洞,这一点非常重要。首先,如果虚拟环境可以轻松复制,则会出现问题,特别是在您必须遵守有关控制数据访问的任何法规遵从要求的情况下,正如我在 2008 年的一篇文章中讨论的那样 (http://technet.microsoft.com/magazine/2008.06.desktopfiles)。

其次,您可能还记得我在关于 RMS 和 IRM 的文章 (http://technet.microsoft.com/magazine/2008.11.desktopfiles) 中曾经说过,这些控制方法依赖于操作系统来防止屏幕捕获和打印等。然而,这些控制方法并未延伸到虚拟机监控程序,这意味着如果受 RMS 保护的内容显示在来宾操作系统上,则主机操作系统仍然可以打印各个屏幕截图或创建屏幕的视频捕获。

虽然在技术上不是模拟,但它并非完全不同于“模拟漏洞”。我不知道有任何方法可以防止 DRM 控制的内容受到此种方式的攻击。事实上,即使您可以做到,您仍然必须面对防止用户使用照相机或摄像机执行相同“攻击”的问题。

#p#

磁盘碎片整理

虚拟机上的磁盘碎片整理是一个独特的挑战,有以下几个原因:

◇ 您通常进行两个级别的磁盘碎片整理,第一是在虚拟化磁盘容器本身内部进行的磁盘碎片整理(每个来宾在其客户端看到的磁盘碎片整理),我将其称为“主要磁盘碎片整理”;第二是对包含虚拟化磁盘(跨主机操作系统的各个磁盘)的实际文件进行的磁盘碎片整理,也称为“辅助磁盘碎片整理”。

◇ 使用某些虚拟化产品时,起初只需要最小的磁盘大小,但会“按需”增长,它们可能导致进行辅助磁盘碎片整理。

◇ 撤消操作不仅会很快导致磁盘膨胀,还会导致进行大规模的辅助磁盘碎片整理,因为它会消耗更多的主机操作系统磁盘空间,每个来宾都会开始争夺可用的扇区。

◇ 随着磁盘按需增长,当需求减少时,大多数却不具备缩减的能力。如果您分配了 40GB 磁盘空间,开始仅使用 10GB,但随后增加到需要 35GB,则磁盘将不会自行还原,这意味着您会有一个大型文件,进行辅助磁盘碎片整理的可能性要高得多。

虚拟磁盘容量很大,其更改、缩减或增长速度快,易受两种类型的磁盘碎片整理的影响,这些因素意味着您对虚拟磁盘的维护应该比物理系统更加认真。

以下是保护文件的一种方法:

◇ 最大程度减少任何撤消技术的使用,因为它会导致所有磁盘文件的过度增加,不便于在来宾中进行碎片整理,尽管主机可对包含虚拟磁盘的文件进行磁盘碎片整理。

◇ 从一开始就在来宾上使用功能良好的碎片整理产品,并定期运行该产品。

◇ 如果您使用按需磁盘扩展技术:

a. 按以下方式使用 Sysinternals sdelete.exe 实用程序:sdelete –c drive_letter,其中 drive_letter 是您要清零的卷。例如,sdelete –c C: 可在碎片整理后将所有未使用磁盘清零。

b. 使用任何虚拟磁盘缩减技术(如果您的供应商提供),将虚拟磁盘容器减少到最小大小。

◇ 对包含虚拟机的主机操作系统卷进行磁盘碎片整理。

很多人不重视磁盘碎片整理。我在 2007 年发布的关于磁盘碎片整理的文章 (technet.microsoft.com/magazinebeta/2007.11.desktopfiles) 收到了大量读者邮件,这些邮件证明大家通常对这个主题存在误解,但不应该忽略它,即便对于虚拟化系统。

随着虚拟化技术的重要性和使用的持续增加,我们很容易跟随使用虚拟化技术的潮流,而不了解其成本以及意想不到的固有复杂性。本文应该有助于您了解在迁移到或使用虚拟化技术需要考虑一些额外成本。

作者简介:Wes Miller 在位于德克萨斯州奥斯汀市的 CoreTrace ( CoreTrace.com ) 担任产品管理主管。他之前任职于 Winternals Software,并且曾在 Microsoft 担任项目经理一职。您可通过以下电子邮件与 Miller 联系: technet@getwired.com 。

原文地址

本文来源:微软TechNet中文站

 

责任编辑:王勇 来源: 微软TechNet中文站
相关推荐

2013-10-11 16:47:38

2024-05-28 09:26:42

2020-07-06 07:00:21

PyCharm虚拟环境

2017-01-06 09:57:08

AppSenseLANDesk桌面

2021-08-13 08:42:48

Python 编程技巧poetry

2011-06-29 16:29:19

2013-08-14 09:24:33

2023-05-05 16:37:13

CPU 性能虚拟环境虚拟化

2011-12-06 09:52:40

CA虚拟环境

2011-12-05 14:05:11

CA虚拟化

2013-04-09 09:23:55

云端管理桌面虚拟化

2009-07-27 18:14:03

2010-07-15 11:34:13

应用虚拟化桌面虚拟化基础架构

2011-04-28 20:21:44

和信创天终端管理虚拟终端管理系统

2013-01-05 15:49:25

数据保护虚拟化

2021-03-04 20:46:32

virtualenvwPython虚拟环境

2021-11-15 05:44:16

Python虚拟环境开发

2011-08-22 13:56:09

Linux虚拟

2012-06-29 09:53:49

桌面虚拟化

2012-09-29 10:22:36

点赞
收藏

51CTO技术栈公众号