虚拟机负载管理最佳实践——资源分配

虚拟机虚拟化    2011-01-28 12:25  

  虚拟机(VM)与其对应的虚拟化管理平台提供商长期以来都致力于降低使用难度:仅需要五六下鼠标点击就可以创建一台虚拟机。对用户来说,建立虚拟机变得更加简单。用户可以通过VMware、XenServer、Hyper-V或其他虚拟化管理平台,点击“新虚拟机”并根据系统提示便可以完成新虚拟机创建。

  然而,这种简单创建机制带来了新的不确定性——虚拟机资源是否满足业务需求。很可能出现虚拟机被分配了过多资源的情况。管理员必须设置指标并了解虚拟机上运行的业务,以便有效管理资源负载。简单按下“NEXT”按钮很可能使虚拟机资源与负载管理出现问题。

  设定有效的虚拟工作负载管理指标

  在创建一个负载之前,优秀的虚拟化工程师必须设定指标,确定新系统上将运行何种服务,该服务需要分配怎样的硬件资源才可以稳定运行。有许多方法来达成此目标。服务器负载包含许多负载数据项,但其中一些是管理员们应该优先考虑的。

  通过用户数量可以预知一个负载今后运行的情况与大致性能需求。服务器(虚拟机)资源需求变化范围存在较大差异——可能有50个用户连接,也可能有5000以上用户连接。对于Exchange Server来说,我们可以利用工具来评估基线,以此作为分配资源的参考依据。资源分配不足可能导致性能下降,而分配过度则会造成浪费。通过获知当前用户数与一年内可能的用户增长数量,管理员便可以设置虚拟机以满足当前用户使用需求,并保证其在用户数量增长后也有足够资源可用。

  大部分部署在虚拟化环境中的服务、软件与其他产品一般都有销售商或产商支持。这些产商通常会提供一些基线设置数值,用于说明服务器该如何配置资源才能有效运行,可以帮助我们远离建立虚拟机时面对的猜谜游戏,提高服务器所需资源评估的有效与可靠性。

  资源分配与负载管理监控

  存储很容易用完,经验丰富的虚拟化专家会告诉你资源其实十分有限。即使是拥有很多计算资源的服务器,也可能被仅使用其中5%性能资源的虚拟机所耗尽。

  “过度分配是工程师们需要经常面对的另外一个问题。了解运行服务所需负载,可以对将要使用的资源进行预估。”MTM Technologies Inc.的系统顾问Timothy O'Brien表示:“用于显示内部网页的简单Web服务不需要用到多核CPU或大量内存。可是,运行一个有大量用户同时连接的SQL服务器就需要更多资源了。”

  进行预先规划可以降低资源分配难度。了解虚拟机上将运行的服务,对扩展进行规划,以此建立一个拥有足够资源,可以满足需求的负载。因为几乎所有负载都会产生变化,工程师必须做好调整虚拟化环境的准备。

  “虚拟机并不是简单设置好就结束了。”O'Brien补充:“在部署完成后,监控与检查该负载实际运行情况十分重要。随着资源与用户数量变化,虚拟机上的负载同样会产生变化。”

  以下是了解资源分配的关键点:

  ◇ 灵活对待资源分配。调整虚拟机的大小十分正常。一些资源可以通过设置在不停机情况下分配给服务器。

  ◇ 监控虚拟机。了解虚拟机在某个时刻所使用的资源。负载管理包括了监控负载超时和获取需求峰值,这样可以让工程师在需要时更有效分配资源。

  ◇ 了解应用程序。永远不要认为一个应用会以同样方式运行。随着服务扩展包、用户数量增加与外部环境变化,应用程序可能会需要更多的内存、存储甚至处理器。

  理解和使用预定义虚拟机

  使用预定义的虚拟机设置并没有错。在某些应用环境下,采用简易设置是十分值得提倡的。运行简单服务对虚拟机资源需求极少。大部分预设虚拟机被分配了单处理器,512M内存、单网卡与小容量硬盘。许多应用开发或隔离测试环境通常而更倾向于采用最低配置,以便获得更准确的结果。在这种情况下,快速创建虚拟机可以节省时间,协助快速建立测试环境并节约负载所需分配的资源。

  资源分配最佳实践

  规划与拟定虚拟环境,可帮助虚拟化工程师更为精确地为所需创建虚拟机分配资源。通常资源都是在负载不必要的情况下分配殆尽,在建立新负载前,评估其资源需求,可以避免资源过度分配问题,降低后期维护与扩展压力。

  当管理员面对是否需要扩展虚拟化环境的问题时,诸如购买额外的存储区域网络或给虚拟机分配更多内存令人头疼。通常我们可以通过重新评估现有负载对资源使用情况作为一定的参考。在进行此操作时,一些负载管理最佳实践可供学习:

  ◇ 任何好的部署计划都需要经过建立与测试环节。这个环节中,你可以切实的调整虚拟机并获知资源分配的最合理方法。

  ◇ 研究虚拟机将如何发展。了解应用或数据库运行所需的资源,避免过度分配或分配不足。对资源密集型负载包括Exchange、SQL与其他数据库等后端应用。轻型工作负载包括授权服务器、单服务应用或简单Web应用服务器。

  ◇ 做好随时调整资源环境的准备。做好准备,了解可用资源以便于负载分配改进,改善对变更的响应与速度,建立更加平衡与稳定的虚拟化架构。

在线留言

我要留言