如果VMware环境中出现问题,管理员可使用vCenter监控功能来收集数据,这些数据比传统操作系统的数据更详细。
通常情况下,IT管理员和经理会认为应用程序崩溃是由于VMware或者在虚拟化前从未发生的特定问题。然而,VMware的vCenter及其相关虚拟化产品给数据中心带来革命性变化。
硬件是可以看到且可让人触摸到的东西,硬件令人放心。虽然很多企业已经拥抱虚拟化,但仍然有些人持怀疑态度。而通过利用vCenter监控和日志记录功能,可让虚拟管理员消除这种顾虑并解决问题。
VMware vCenter与传统监控工具的运作方式不同。vCenter监控数据来自访客操作系统下的网络层,而vCenter和基于vCenter的监控工具(包括提取这些数据的第三方工具)直接在虚拟硬件级别直接查看操作系统层下面的情况。
传统基于Windows的监控工具无法达到这种水平。Windows是从软件驱动程序和API获取数据,但这些数据依靠Windows对所见的解释。这意味着,如果每个人都是用Windows工具而不是vCenter工具,那么可能会导致严重的混淆,因为不同的人会看到不同的数据。
这里明显的例子是Windows内的内存使用情况。例如,分配有10GB内存的应用程序通常会在Windows工具(例如任务管理器和资源管理器)中显示此信息。然而,分配的内存不同于使用的内存,并且,如果不使用VMware工具的Perfmon插件,几乎不可能从Windows内确定这一点。
而vCenter监控使这项工作变得很简单,因为虚拟机使用的内存不是真实的—而是基于软件。这样vCenter可区分已分配和正在使用的内存。尽管可能分配了10GB RAM,但可能只使用几GB。如果应用程序所有者仅看到Windows数值,他们可能会认为虚拟机资源有限,而vCenter显示的情况并非如此。
当工作负载被虚拟化,访客方面通常会发生改变,但这通常是一种改进。这里的挑战会从资源缺乏转移到资源分配。
通过vCenter监控加强故障诊断
虚拟化故障诊断的关键是确保工作负载没有在等待资源。当服务器专用于每个硬件平台的一个应用程序时,那么,除升级外并没有太多选择。
在虚拟化环境中,规则是不同的。我们可以查看存储中队列深度等信息以查找I/O延迟的原因;检查CPU就绪时间来查看虚拟机等待CPU访问的时间以及它们是否受CPU限制;以及对比内存分配与正在使用的数值,以查看可能是什么在交换或缓存RAM。
所有这些vCenter监控设置都支持深度检查,并可通过共享和资源池帮助调整资源分配。通常情况下,一个工作负载的变更可能会对另一个负载产生负面影响,毕竟,这是共享环境。
同时,性能指标可帮助解答有关日志和其他事件的问题。例如,虚拟机出现问题时,vMotion是否也同时发生问题?vCenter日志数据可以解释当时发生的事件,但vCenter中的性能数据将显示事件是否真正导致问题。这意味着我们可利用这两者来全面了解正在发生的事情。
另外,请不要完全遗漏操作系统日志和事件。它们可帮助填补任何空白,但要注意硬件和性能方面,因为操作系统对这些方面没有深入了解。
虚拟机管理程序给应用程序故障排查增添了另一层复杂性。但是,这个额外层可在应用程序和操作系统堆栈创建传统硬件没有的窗口。这里的挑战是在这个层面整合数据以及进行适当调整。
总的来说,一个小错误可能会扰乱整个虚拟环境,因此,我们始终应该从小调整开始,而不是部署大规模变更。