内容


WebSphere 反向投资者

您充分发挥了虚拟化的效用吗?

系列内容:

此内容是该系列 # 部分中的第 # 部分: WebSphere 反向投资者

敬请期待该系列的后续内容。

此内容是该系列的一部分:WebSphere 反向投资者

敬请期待该系列的后续内容。

在每篇专栏文章中,WebSphere® 反向投资者将回答问题、提供指导并讨论与 WebSphere 产品使用相关的基础主题,经常会给出与流行的看法相悖却经过实践验证的建议。

什么是虚拟化?

我最后一次写 虚拟化主题专栏 到现在已经快 3 年了。鉴于人们对这项技术的关注和应用的增加,我想再次讨论这一主题,希望提供一些新的观点,同时检查该主题中哪些方面没有改变。

在使用最常见的今天,虚拟化一词指的是 “操作系统映像上底层物理资源(比如一个服务器)的一个抽象或一个屏蔽,或者是运行在物理资源上的实例”,这是早期文章所定义的。而在近期使用中这一术语指的是 “运用虚拟机监控程序的服务器虚拟化”,这并不是一个新概念。实际上虚拟化可追溯到上世纪 60 年代,当时 IBM 第一次将其应用于 IBM® System 360-67(我虽然是那个年代的人,但是我没有使用过这些机器!)。

为了提供更多的背景知识,虚拟机监控程序可分为两类:

  • 第 1 类 也称为 “本机” 或 “裸机”,这里,虚拟机监控程序是操作系统或者是操作系统不可分割的一部分。第 1 类虚拟机监控程序示例可能是 VMware ESX 和 IBM PowerVM™,只提这两个吧。
  • 第 2 类 是指 “托管应用程序” 或 “软件应用程序”,这里,虚拟机监控程序是一个运行在操作系统上的应用程序。示例包括 VMware Server、VMware Workstation 和 Microsoft® Virtual Server。

继续之前,我必须指出在这个上下文环境中,上述的一个更准确的分类是服务器虚拟化。任何只涉及服务器虚拟化的虚拟化讨论都不是完备的,因为您还可以虚拟化应用程序,同时使用应用程序虚拟化细化应用程序服务器和一个应用程序的资源分配。一个应用程序虚拟化技术的示例是 IBM WebSphere® Virtual Enterprise.

您有虚拟化吗?如果有的话,是什么类型?

您的企业是否在运用虚拟化并不重要,重要的是企业如何采用虚拟化以及虚拟化有多高效。

可能有很多度量标准可用来确定虚拟化效率,但是因为服务器虚拟化往往被视为一种提高服务器利用率的机制,利用率可以是其中一个度量标准。

另一个相关度量是投资回报率(ROI),这应该随着利用率的增加而增加。过去几年中的一些报告(见 参考资料)揭示了服务器利用率增长仅有一位数的服务器虚拟化和不断增长的 ROI 这样一个喜忧参半的结果。有几个因素导致了这些结果的形成:有时候只是缺少一个跟踪 ROI 的有效流程,但也有其他一些原由。这是因为将一个物理服务器分区成多个操作系统映像提供了平台灵活性,能够根据需要实现简单的操作系统重新配置或归置 — 而服务器虚拟化对于提供统一、专用和孤立环境的服务器来说是很优秀的,但也有其缺点:很难在整个企业中或者数据中心内管理服务器虚拟化,因为服务器虚拟化通常集中于单个服务器。

此外,真正的利用率增加获益体现在跨多个服务器智能地管理或分配工作负载。应用程序虚拟化提供真正效益的是后者,因为就应用程序优先级、应用程序资源使用、甚至请求和用户优先级 - 服务器应用程序缺乏的所有领域 - 而言应用程序虚拟化是 “应用程序感知的”,这种感知能力使应用程序虚拟化(即,WebSphere Virtual Enterprise)可以:

  • 将特定应用程序请求转发到可以最快执行它们的服务器。
  • 当一个给定服务器达到所有可用资源限制时,将应用程序请求重指向另一个服务器。
  • 对于归置的应用程序,确保加载一个应用程序不会影响其他应用程序的响应时间。
  • 自动检测错误是否从过载应用程序中返回,并将下一个应用程序请求传送到另一个能够运行该应用程序的服务器
  • 动态优化应用程序组合资源配置(CPU 和内存)。

应用程序虚拟化通过服务器虚拟化交付互补优势和增值效益到基础架构。这两个方法都可以增加服务器利用率,反过来促进服务器整合(减少成本)。应用程序虚拟化是通过智能管理和优化应用程序工作负载、将作业放到合适的位置,以及控制应用程序组合来实现的。硬件虚拟化通过将一个服务器分成多个部分来实现效益。

优化虚拟化交付

同时涉及到服务器虚拟化和应用程序虚拟化的是虚拟化设备,根据维基百科,这是一个 “满足最低要求虚拟机映像,带一个预先安装和配置好的应用程序和操作系统环境”。

虚拟化设备的一个示例技术是 IBM WebSphere Cloudburst™ Appliance,这含有一个专门针对特定虚拟容器(比如 VMware、PowerVM、z/VM®)的虚拟机映像,在虚拟机映像内(比如 IBM WebSphere Application Server、IBM WebSphere Portal、IBM DB2®)含有一个端接类型的、预先配置的、生产就绪的软件栈。映像以这种方式传递可以使成本和运行复杂软件栈的配置、安装以及维护最小化。

通过管理虚拟机映像目录、映像在虚拟机监控程序上的放置,以及应用程序基础架构中间件在映像中的部署,整个企业的总体虚拟环境的配置和部署得到简化和规范。

进一步优化

由于我很讨厌 “最佳实践” 这个词,我将以关于如何更好地优化一个虚拟化环境的讨论来结束本文。正如我在文章开头提到的,在过去的几年中,虚拟化技术有很大的改进,但是从我的 除篇文章 起到现在,仍有一些基础原理没有改变。对于这些基本原理我的建议是:

  • 绝不过量使用内存 -- 至少对响应时间敏感的 Java™ 应用程序是这样的!正如我在早期文章中解释过的,当内存过量使用时,Java 中的垃圾回收机制有严重的性能影响。在很少使用或者承载了对响应时间影响不是很大的应用程序这样的环境中(例如,应用程序开发环境),一些少量的内存过度使用不会有太大影响。那就是说,在过去的 3 年中,和我们合作的很多客户没有意识到和 Java 应用程序工作负载内存过量使用相关的工作负载,甚至也没有发现该主题相关的问题不适合他们 — 的确是这样。尽管一些研究可以更好地集成(感知)虚拟机监控程序和 JVM 之间,但是这种解决方案的商业使用仍相当遥远。
  • 分区 CPU 时要谨慎。这仍然适用,但是和内存过量使用不一样,CPU 速度和多核 CPU 的发展使得 CPU 分区更实用。也就是说,认识到 CPU 分区不能创建更多资源这一点很重要,它只是让您可以分区,然后跨多个映像分配 CPU 容量以及在这些映像上运行的应用程序工作负载。这一天结束时,仍然需要充足的底层物理 CPU 容量,以满足分区 CPU 时的响应时间和吞吐量需求。否则,将会导致性能下降。
  • 同时使用虚拟机监控程序和操作系统进行监控。如果您只使用本地 OS 工具(比如 topvmstat)来监控性能,那么您只能得到部分或者误导信息。OS 工具只显示分配给虚拟机的资源使用情况,这可能和在虚拟机监控程序中可用的资源池有很大的不同。如果您想要了解物理服务器的一个准确全貌,就需要使用虚拟机监控程序工具进行度量,然后使用该信息来调整和优化分配给每一台虚拟机的资源。

结束语

希望本文对虚拟化的重新审视对您有帮助,且您能够以最优的方式使用这里介绍的一些技术。

最后,为了表明我并不完全反对最佳实践建议,我自己要提出一个建议:不要使用剪刀运行,这是我母亲告诉我的,我们都知道我们的母亲永远不会错!


相关主题

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, Cloud computing, Web development
ArticleID=643908
ArticleTitle=WebSphere 反向投资者: 您充分发挥了虚拟化的效用吗?
publish-date=03302011