虚拟化技术在20世纪60年代后期被开发出来,目的是更有效地利用硬件。硬件昂贵且可用性不高。处理工作主要外包给少数拥有计算机的地方。在单台 IBM System/360 上,可以并行运行多个环境,这些环境保持完全隔离,并让每个客户都感觉自己拥有硬件。1 虚拟化是以粗粒度级别实现的分时共享,隔离是该技术的关键成就。它还提供了有效管理资源的能力,因为资源将被分配给虚拟机,从而可以满足截止日期并实现一定的服务质量。
乍一看,似乎变化不大。今天,虚拟化技术在企业中的主要应用是通过基于虚拟化的整合来对抗服务器蔓延。隔离、安全性和效率仍然是在这种情况下使用虚拟机的主要好处。
即使本文主要关于提高资源利用率,如果我们仅将虚拟化视为服务器整合的工具,我们也会低估其真正的潜力。虚拟化打破了应用程序与操作系统之间以及操作系统与硬件之间的 1:1 关系。消除这种约束不仅使我们受益于创建 N:1 关系(我们在单个共享资源上运行多个隔离的应用程序),而且还通过提供资源使用方面的弹性,使应用程序可以更轻松地跨越多个物理资源,从而实现 1:N 关系。
经典整合侧重于在多个虚拟化环境中复用物理资源。直接的好处是显而易见的:减少硬件数量,缩小数据中心占地面积,并间接降低功耗。后者正成为整合日益重要的驱动因素,因为能源公司开始为削减能源消耗提供重要的激励措施。整合本质上是一种降低成本的活动;通过显着减少服务器占地面积(减少 30% 到 50% 甚至更多),资本投资需求直接受到影响,从而减少人员配置需求并降低运营成本。
企业中服务器蔓延的主要原因之一是供应商要求在隔离环境中运行其应用程序。这要求 IT 部门为一个应用程序分配一台或多台服务器,即使这些服务器提供的资源超过了应用程序的需求。同样在基础设施层面,我们看到现代企业拥有许多专用服务器:DNS、DHCP、SMTP、打印、Active Directory/LDAP 等。服务器蔓延的另一个驱动因素是操作系统的异构性:需要 Windows Server 的邮件服务器,最好在 Solaris 上运行的数据库,最初为与 AIX 一起使用而购买的网络管理软件包等。
除此之外,还有并购和其他集成项目的影响,您会发现,拥有大量服务器的企业(每台服务器都专用于单个任务)是一种常见的模式。特别是并购带来了新的应用程序或应用程序版本、额外的服务器,以及通常是新的复杂集成中间件。并购后,支持新基础设施的服务器数量大于独立公司服务器总数的情况并不少见。鉴于这些集成项目的复杂性,IT 组织严重依赖粗粒度的服务器驱动隔离来实现集成。
大量未充分利用的服务器已成为许多 IT 部门的主要问题。个别公司没有提供关于服务器利用率的官方数据,但许多大型分析公司估计 15% 到 20% 的资源利用率很常见。根据我与世界各地其他 CTO 和 CIO 的个人经验,我认为这些数字偏高,真实的利用率通常在 5% 到 12% 之间。随着功能更强大的服务器每天进入数据中心,利用率数字正在下降而不是上升。
然而,单一的平均值很少能说明全部情况。服务器的利用率高度依赖于工作负载的类型,并且通常会受到周期性的影响。如果您检查较长时间段内的利用率,您会发现它更准确地表示为一个范围,该范围因应用程序而异。Luiz André Barroso 和 Urs Hölzle 在他们关于能源比例计算的文章中表明,在像 Google 这样高度优化的环境中,在较长时间范围内检查时,利用率往往在 10% 到 50% 之间波动。2 图 1 显示了 Google 在六个月期间 5,000 多台服务器的平均 CPU 利用率。此数据反映了我们在亚马逊的经验;一些利用率是由客户行为驱动的,但一些是由履行流程模式或数字资产转换触发的。
降低成本是许多 IT 部门的重要目标,而服务器整合无疑是关注列表的首位。虚拟化已成为推动服务器整合的主要工具:根据 CIO Research 最近的一项调查,81% 的 CIO 正在使用虚拟化技术来推动整合。3 即使该策略看起来已经成熟,整合架构师仍然面临着重大的技术障碍。
整合过程中的第一个挑战是如何准确地描述应用程序的资源需求。工程师的有根据的猜测通常会导致对实际约束的不完整看法。构建应用程序的资源使用情况配置文件至关重要,这样的配置文件不仅关注哪个资源最终将限制应用程序,而且还分析随时间推移的资源使用情况,以确定周期性以及是否存在对其他系统或应用程序组件的依赖性。配置文件的第二部分是应用程序在容量耗尽时的行为方式:应用程序对资源短缺的敏感程度如何,它可以适应吗,还是环境需要保持严格的边界?
在此分析之前,一个常见的步骤是分解在共享环境中运行的应用程序,并将每个应用程序都放入隔离的环境中,希望这样可以更轻松地预测各个应用程序在响应请求模式时的资源使用情况。然后将根据它们自己的资源配置文件对它们进行单独管理。
一旦对资源使用情况和扩展有了清晰的认识,下一个挑战就来了:如何以最佳方式将托管应用程序的虚拟机分布在物理资源上。这是一个涌现出许多工具来帮助系统架构师找到正确组合的领域,但来自现场的报告表明,这仍然很大程度上是一个反复试验的过程,然后才能实现合理的平衡。这不是一项微不足道的任务。正如我们从图 1 中看到的那样,资源使用情况可能会随着时间的推移而发生显着变化,这使得相关的负载测试非常困难。
然而,整个整合过程中最大的挑战无疑是在运行时平衡服务器工作负载;64% 的 CIO 在 CIO Research 调查中提到这是一个有问题的方面。由于系统中空闲资源的减少,应用程序更容易受到资源短缺的影响,尤其是在工作负载高度动态的情况下。
Powerset 是一个业务资源需求不断变化的典型例子。最初构建索引和随时间更新索引具有非常不同的资源需求。Powerset 发布了一个数据中心资源分析工具,可以帮助预测哪些特定于业务的场景适合购买、租赁或使用虚拟化资源。鉴于不断变化的资源需求,在大多数情况下,虚拟化服务器更具成本效益。4
我们永远无法看到 100% 利用率有很多原因:企业中的工作负载是异构的,需求可能不确定,并且通常会伴随峰值出现。因此,当您在较长时间尺度上测量利用率时,一些 CPU 周期或 IOPS(每秒 I/O 操作数)将始终处于未使用状态。然而,即使在单个操作系统级别,我们也知道不可能实现完美的利用率。例如,像 Linux 这样的操作系统在 CPU/IO 高负载组合下可能会开始表现出不可预测的行为。我们开玩笑说,其中一些操作系统表现出“爱因斯坦效应”——在高利用率下,空间和时间不再保证表现相同。
因此,整合成功的衡量标准被设定得更加现实:对于纯 CPU 密集型环境,对于高度优化的应用程序来说,70% 似乎是可以实现的;对于混合工作负载的环境,40% 是一个巨大的成功,而 50% 已成为圣杯。
对于确实变得过载的应用程序和服务器,迁移可能是一个解决方案。然而,透明迁移很难实现,许多遗留应用程序对此反应不佳。两种更粗粒度的技术似乎是有效的:应用程序检查点和重启已内置到多个应用程序中作为灾难恢复工具,并用于将应用程序移动到不同的物理服务器;许多应用程序可以在集群模式下运行(例如,启用 MS 集群服务),在这种模式下,可以启动第二个节点,并且可以在应用程序级别将状态和工作从第一个节点迁移到第二个节点。
虚拟机迁移的极端例子是应用程序停放。在这种情况下,几个几乎不使用任何资源的应用程序各自在自己的虚拟机中运行,但在它们处于空闲状态时共享一台物理服务器。一旦应用程序开始使用更多资源,它就会被迁移到一台具有足够可用资源的服务器,以满足应用程序的配置文件。
到目前为止,我们已经讨论了许多 IT 部门实践的传统整合,其中主要重点是彻底分析企业范围内的资源使用情况,并使用虚拟化尽可能高效地复用这些资源。业务优先级在任何给定时间决定了如何衡量效率。在经典环境中,我们看到了增长和收缩的趋势;应用程序在其自己的服务器上引入,或作为合并集成的一部分添加。接下来是对资源使用情况和风险进行分析的阶段,该阶段确定应用程序可以在何处以虚拟化方式进行共置,之后服务器池再次收缩。
然而,在所有这些方面,虚拟化都被用作传统的 IT 成本节约工具。当您考虑虚拟化在应用程序部署和管理中的作用时,虚拟化作为一种战略性赋能技术的真正力量就显现出来了。借助正确的虚拟化管理工具,您可以获得一个环境,在该环境中,您可以显着加快新应用程序的上市时间,并使其有效地扩展以满足客户需求。
亚马逊基础设施中虚拟化的作用就是一个很好的例子。亚马逊是世界上最大的面向服务的软件组织,不仅技术是面向服务的,而且人员也组织成与软件组织相对应的团队。这使亚马逊在以客户为中心的业务和技术开发方面具有极大的敏捷性。在运行接近 1,000 项服务时,亚马逊最终有许多工程师执行类似的任务,其中大多数任务与资源管理相关:管理应用程序部署、配置服务器、处理存储故障、配置负载均衡器等。保守估计表明,工程师们花费了高达 70% 的时间在与服务业务功能没有直接关系的一般任务上。
我们决定将这些常见活动引入基础设施服务平台,以便更有效地管理它们,同时保持亚马逊对可靠性和性能的关注。存储、计算和消息传递被虚拟化为基础设施服务。其中许多服务此后已在亚马逊之外提供:S3(Amazon Simple Storage Service)、EC2(Elastic Compute Cloud)、SQS(Simple Queue Service)和 SimpleDB。5
这些基础设施服务设计中的两个关键要求显着改变了资源管理方式:这些服务是完全自助式的,允许工程师以最小的摩擦开始使用它们;资源可以动态管理,使工程师能够立即获取和释放资源。
Amazon EC2,这项与传统虚拟化最相似的服务,使用了一种模型,工程师可以通过编程方式启动和停止他们先前构建的实例。6 这些实例是应用程序构建过程的输出的虚拟机镜像,它们存储在 Amazon S3 存储服务中。EC2 管理环境根据资源需求将虚拟机放置在物理服务器上。这为工程师提供了根据客户需求和其他扩展属性来增长和收缩其服务使用的资源的能力。
这就引出了虚拟化的主要战略优势之一:它创建了一个统一的应用程序部署环境,在该环境中,工程师可以免受底层硬件细节的影响。在物理服务器上运行单个虚拟机的情况并不少见,其目标不是最大限度地提高高效的资源共享,而是加快应用程序的部署速度并在瞬间进行扩展和缩减。
来自 Amazon EC2 客户的反馈表明,他们传统上面临着从 IT 组织获取资源的巨大开销。服务器获取时间通常长达数月,一旦资源被分配给应用程序,团队就不愿意释放它,因为在再次需要资源时重新获取资源的时间很长。
这种保守的方法需要漫长的资源规划周期:团队需要提前很长时间预测其资源使用情况,这会触发过度扩展以应对应用程序意外的更高需求。对于希望更快、更有效地响应需求的企业来说,这种模式是一个绊脚石。由于产品和服务生命周期被压缩,并且日益激烈的竞争使产品的成功更难预测,因此许多市场的不确定性都在增加。为了适应这些新的现实,企业需要转向不同的资源管理模型,在这种模型中,根据需求获取和释放资源正成为一种重要的战略工具。在这种背景下,亚马逊基础设施服务的按需付费模式非常有吸引力。
将虚拟机作为标准化的部署单元对于适应不断变化的资源需求至关重要,在这种情况下,不仅要获取资源,而且在不再需要资源时释放资源也很重要。亚马逊的许多 EC2 企业客户声称,他们的资源获取周期已从数月缩短至数分钟。
获取资源周期非常长的一个领域是政府部门的 IT。资金和分配决策通常要求团队在项目开始时购买服务器,此时距离软件完成以及良好的使用模式开发出来还有几个月的时间。这导致了超保守的规划,最终配置的利用率很低,并对原型设计和实验造成了重大障碍。一位 DoD IT 架构师报告说,该部门的软件原型通常会花费 30,000 美元的服务器资源,但通过在 Amazon EC2 的虚拟机中构建它,最终只消耗了 5 美元的资源。7
新的敏捷性也迎合了使用虚拟化基础设施的其他优势。虽然基于虚拟化的传统整合仅提高了资源使用密度,但在任何给定时间更改运行的应用程序和服务组合仍然可能存在障碍。将虚拟机纳入变更管理流程并添加自主管理功能可以显着提高企业的敏捷性。使用经济模型来自动化资源分配以优化业务价值仍然是一个圣杯。
虚拟化在使 IT 组织能够超越其数据中心并利用公用事业计算基础设施方面发挥着至关重要的作用。公用事业计算是将计算和存储等资源打包成类似于公共事业(电力、水、天然气和电话网络)的计量服务。这具有以低成本或零初始成本获取硬件的优势;相反,计算资源基本上是租用的。
在虚拟化已经普及以支持整合和/或应用程序部署场景的组织中,应用程序/操作系统与物理硬件之间的紧密依赖关系已被消除。在并非由组织直接控制的硬件上运行虚拟机是合乎逻辑的下一步。
公用事业计算服务不同于传统的应用程序外包,在传统的应用程序外包中,基础设施所有者代表客户运行应用程序,并且具有特定于应用程序的知识。这些服务也不同于网格环境,因为它们不强制使用特定的编程模型进行应用程序开发。相反,公用事业计算服务允许其客户在其硬件上启动虚拟机实例,其方式类似于在他们的私有数据中心中运行这些虚拟机。Amazon EC2 是使用虚拟机以公用事业方式提供计算资源访问权限的突出服务之一;EC2 客户可以将虚拟机打包成他们在数据中心运行的虚拟机,以便在 Amazon EC2 中运行。
使用公用事业计算服务有利于通常是整合努力基础的成本节约目标;通过转向仅在实际使用资源的时间段内付费的模式,资本支出大大减少。通常,企业开始使用这些公用事业计算服务来满足其对溢出和峰值容量的需求;这样,他们可以在不大量投资大部分时间都将闲置的硬件的情况下应对需求的不确定性。这种按需获取和释放资源的方式具有“成瘾性”;一旦企业习惯于使用计算公用事业服务来处理峰值,他们很快就会开始将其用于其他任务,尤其是那些不需要全天候资源分配的任务,例如文档索引、每日价格计算、数字资产转换等。
使用公用事业计算来处理过剩容量任务的一个很好的例子是《纽约时报》将 1100 万篇历史文章从 TIFF 转换为 PDF 的项目。鉴于项目的截止日期,在公司服务器上找到足够的容量将是困难的,并且为这样一项一次性任务购买额外的硬件效率不高。《泰晤士报》创建了一个包含特殊转换应用程序的虚拟机镜像,将 4 TB 图像移动到 Amazon S3,并在 Amazon EC2 中启动了 100 个虚拟机实例。在 24 小时内,所有文章都转换为 1.5 TB 的 PDF,成本仅为一台服务器成本的一小部分。8
这种模式的好处之一是,衡量 TCO(总拥有成本)变得更容易;绝对基础设施成本是计量的公用事业成本,而不是将服务器、网络、电力和冷却成本分摊到服务器上运行的多个应用程序上。
看看各种各样的公司使用虚拟化在 Amazon EC2 中运行其应用程序,人们可以看到公用事业计算除了企业容量管理之外还有许多应用。使用范围从金融和制药公司的经典并行计算到运行 Web 服务的初创公司,从大型软件公司将其用于产品和发布测试到电影制片厂的图像渲染。所有这一切都由虚拟机技术实现,用于打包和实例化应用程序、管理安全以及按需访问所需资源。
软件测试是另一个总是处于资源接收短缺状态的领域,并且可以从虚拟化中获益匪浅。在开发周期中,测试对基础设施的需求会发生变化。在周期的早期,人们可能会使用持续集成技术,每晚重建环境,然后在周期后期更改为负载和规模测试。测试工程师通常需要保持许多不同的服务器运行,每台服务器都具有不同版本的操作系统,用于管理发布测试。
传统上,QA 部门管理自己的资源,在许多情况下,他们可用的资源非常有限。即使在这种资源受限的环境中,一天、一周或一年中也会有硬件闲置的时期。虚拟化通过在需要特定测试时按需获取资源并在测试完成后释放资源,极大地改变了 QA 流程。这极大地提高了测试人员从其环境中获得的利用率。不再需要运行许多不同的操作系统或拥有复杂的多启动环境;启动和停止不同的操作系统镜像成为一项按需活动。在许多情况下,虚拟化增加了 QA 在任何给定时间可用的资源数量,因为物理资源池可以与生产环境共享。这使得大规模负载测试更加真实。
虽然本文重点介绍虚拟化在利用率管理中的作用,但在其他领域,虚拟机也可以发挥重要作用。其中之一是安全性,其中许多创新用途是可能的,但即使是最简单的用途也能带来许多好处。将应用程序从共享环境移动到其自己的专用虚拟机允许直接的操作员和用户访问控制。它可以减少打开端口的数量,从而降低暴露于漏洞的可能性。许多 IT 部门使用此技术来满足对没有足够访问控制和审计的应用程序的合规性要求。
同样,使用虚拟机进行统一应用程序部署可以成为灾难管理的基础。通常,简单的检查点-重启设施足以在机器之间进行快速故障转移。如果应用程序是为增量可扩展性而构建的,那么自适应管理设施(例如公用事业计算基础设施中的自适应管理设施)将允许组织根据需求快速增长和收缩容量。
虚拟化在企业中的主要应用仍然是服务器整合。尽管这非常有效,但我们可能会在几年后看到非常不同的景象,届时虚拟化将成为 IT 领域一系列战略变革的关键赋能技术。
在经济不确定性日益增加的情况下,使用公用事业计算的自适应资源管理对于成功至关重要。快速适应新的客户需求、新的业务关系和取消的合同将成为现代企业(无论企业执行软件即服务战略还是以更传统的方式使用资源)的关键业务推动因素。
虚拟化将改变我们进行测试的方式,QA 部门将获得比以往任何时候都更多的资源种类——而且业务成本要低得多。同样,那些不擅长处理可靠性、容错和业务连续性的公司将在虚拟化中找到一种新工具,该工具将使他们能够在这些目标方面取得重大进展,而无需重写所有软件。
WERNER VOGELS 是 Amazon.com 的副总裁兼首席技术官,负责推动公司的技术愿景。
最初发表于《Queue》第 6 卷,第 1 期——
在 数字图书馆 中评论本文
Mendel Rosenblum, Carl Waldspurger - I/O 虚拟化
“虚拟”一词被过度使用,从云中运行的虚拟机到在虚拟世界中运行的化身,应有尽有。即使在计算机 I/O 的狭窄figureer 上下文中,虚拟化也具有悠久而多样的历史,逻辑设备就是例证,这些逻辑设备有意与它们的物理实例化分离。
Scot Rixner - 网络虚拟化:打破性能障碍
最近虚拟化重新流行起来,导致其在越来越多的领域中使用,其中许多领域需要高性能网络。例如,考虑服务器整合。网络虚拟化的效率直接影响可以有效地整合到单个物理计算机上的网络服务器数量。不幸的是,现代网络虚拟化技术会产生显着的开销,这限制了可实现的网络性能。我们需要新的网络虚拟化技术来实现网络密集型领域虚拟化的全部优势。
Ulrich Drepper - 虚拟化的成本
虚拟化可以通过多种不同的方式实现。它可以在有和没有硬件支持的情况下完成。虚拟化操作系统可以预期会发生更改以准备虚拟化,或者可以预期它会保持不变地工作。无论如何,软件开发人员都必须努力实现 Gerald Popek 和 Robert Goldberg 阐明的虚拟化的三个目标:保真度、性能和安全性。
Tom Killalea - 遇见虚拟化
当您深入研究所谓的“一夜成名”故事的细节时,您经常会发现它们实际上已经酝酿多年。自 30 多年前你们中的一些人还在将一堆穿孔卡片塞入非常真实的机器以来,虚拟化就已经存在了,但在 2007 年,它发生了转变。VMware 是当年 IPO 的轰动事件;2007 年 11 月,不少于四家主要操作系统供应商(Microsoft、Oracle、Red Hat 和 Sun)宣布了重要的新虚拟化功能;在时尚的技术专家中,虚拟似乎已成为新的黑色。