将智能融入云和数据中心

将智能融入云和数据中心

  • 收集硬件遥测数据和实现数据可视化可帮助企业更好地跟踪和修复如内存故障和整体系统性能欠佳等问题、更好地管理如功耗和散热效率等系统运行状况要素以及推动数据中心现代化和自主化。本文介绍了收集遥测数据的方法以及该收集什么样的遥测数据,提供了可帮助企业利用遥测数据实现数据中心自主化的有用工具。

author-image

作者

收集遥测数据并实现数据可视化,切实提高效率和可靠性。

遥测数据有助于解决诸如内存故障等问题,管理功耗和散热效率,并为创建一个现代化、自主化的数据中心奠定基础。

如果您负责的是所在企业或机构的数据中心硬件维护与故障排除工作,您可能并未意识到硬件遥测数据的作用,甚至可能不知道硬件遥测数据的存在,因为若不采取措施公开这些数据,它们通常不会呈现在您面前。

一般来说,遥测数据仅仅是指来自包括服务器、软件和环境设备在内的任意几个来源的数据流。本文的主题重点探讨的是硬件遥测数据,即由硬件平台上的组件(如 CPU、内存和 PCIe 接口)生成的数据流。

英特尔® 至强® 可扩展处理器包含多个用于监控缓存、CPU 频率、内存带宽和输入/输出(Input/Output,I/O)访问的寄存器。硬件遥测数据是由英特尔® 平台上的一组强大的模型特定寄存器(Model-Specific Register,MSR)和传感器生成的。除配置信息外,这些寄存器还包含可重新配置的固定性能监控单元(Performance Monitoring Unit,PMU)。来自性能监控单元的任何指标都算是硬件遥测数据。

软件遥测数据是由内核、操作系统、系统管理程序或在这些组件上运行的软件计算的网络流量和利用率等数据,也非常有用和重要,但大多不在本文讨论的范围内。

本文将向您介绍着手从英特尔® 架构中收集遥测数据的原因以及如何收集。您将会了解到要收集哪些数据,以及使用哪些工具来利用这些数据进行故障排除、编排和自动化。您将得以了解英特尔对现代化、自主化数据中心未来的宏大愿景。但首先,本文将解释值得您花时间着手收集和使用遥测数据的一些原因。


为什么使用遥测数据?

通过公开和收集硬件遥测数据以及实现数据可视化,您可以获得多种优势。首先,这些数据在帮助您跟踪和修复可能遇到的一些十分棘手的问题(例如内存故障或整体系统性能没有达到预期)方面非常有价值。其次,除了可用于排除故障之外,硬件遥测数据还可以帮助您管理诸如功耗和散热效率等系统运行状况要素。这些都有助于降低出现硬件问题的风险。最后,一旦公开您的硬件遥测数据并着手将其用于数据中心的编排,您就迈出了创建一个现代化、自主化数据中心的第一步,在这个数据中心中,自动化和自修复将逐渐取代人工干预。


运用遥测数据排除故障

当数据中心出现问题时,要准确地找出问题所在可能非常困难,而且也颇为耗时。有时您会遇到性能问题或性能下降,但却不知道这是由于硬件故障(如内存),还是由于工作负载不均衡使某些服务器或组件过载而导致的。随着数据中心的规模不断扩大,这些问题往往发生得更频繁,并且更难进行故障排除。

如果没有正确的信息,您会发现自己一直在努力灭火,却不知道到底是什么导致了火灾。

硬件遥测数据的强大用途之一是为您提供更精细的图景,清晰地描述所有服务器及其组件中正在发生的情况。与更高级别的利用率指标不同,硬件遥测数据可以帮助您回答类似以下这些问题:

•    内存当前实际使用状况如何?哪些应用程序正在使用内存?
•    缓存中有很多资源争用吗?
•    您是否有超线程分配妥当且分布合理的应用?还是只使用一个内核?这个内核的性能如何?
•    每台服务器内部的电源和温度状况如何?您的服务器是否正在节流?

这些信息和洞察可以加快和简化问题的解决,让您有更多时间去做更有趣和更主动的工作,比如基础设施现代化。
                

可管理性和编排

为排除故障而来,但要留待机会。您的当务之急可能是更快地灭火;但是,一旦您部署了遥测监控,您就会发现,有关管理数据中心的每件事都开始变得更简单、更高效。

随着时间的推移,当您清楚瓶颈和过载发生于何处时,就可以开始根据实时在线工作负载分析对流程进行微调、对工作负载布局做出编排,以避免出现这些性能瓶颈。这有助于保护网络性能并平衡整个基础设施的负载。

遥测数据不仅仅可以发现工作负载拥塞。您还可以用它来检查配置,了解资源利用率、能效和系统总体运行状况。在精心编排的数据中心中,您能够更好地识别出异常情况,而这些异常情况也许就是能够及早发现可能出现故障的入手点。您的关注点可以从不断灭火转移到及早发现,甚至是预测冒烟问题的最初迹象。

提高效率和减少过载可以降低故障频率,并能改进包括总体拥有成本 (TCO)、可靠性、安全性、性能和功耗在内的关键性能指标 (KPI)。


遥测数据使用入门1

如果您对遥测数据不熟悉,那么英特尔® Telemetry Collector(Intel Telemetry Collector,ITC)是一个不错的起点。有了 ITC,您可以访问英特尔自己的性能工程师在性能评估中使用的相同工具集。借助 ITC,您可以从不同来源和多台机器提取数据并实现数据可视化。 

ITC 是一种参考收集器,它可以让您迅速了解可用的不同指标,包括功率和散热统计信息、性能计数器、进程活动、线程、操作系统级磁盘、网络和内存统计信息。ITC 可视化突出了常见痛点,如内存带宽、NUMA 不均衡和中断请求 (IRQ) 亲和性问题。您可以识别系统失衡、频率效率低下、内存和 I/O 问题。

ITC 是进入遥测数据的良好开端,但它不是一个设备群解决方案。利用它,您可以查看有限数量的服务器,首次深入了解数据中心发生的情况,但是它不适合数百或数千台服务器的遥测。在您准备好监控所有服务器遥测数据后,您将需要开始构建一个可扩展的开源遥测软件堆栈,具体如下一节所述。


构建用于监控的软件堆栈

要构建可扩展的遥测监控系统,需要设置的基本软件将包括一个用于公开数据的遥测代理、一个用于收集数据的数据库以及一个用于监控数据和触发通知的可视化工具。能够满足上述目的、既简单又有良好支持的工具链是 Prometheus 堆栈。Prometheus 是一个数据库,您可以使用它从所有的 Collectd 或 Telegraf 遥测代理中收集数据。之后,您可以使用 Grafana 构建一个用于查看数据的仪表板。

英特尔通过 Collectd 或 Telegraf 导出器,或者直接导出器为英特尔® 硬件组件添加导出器,从而支持 Prometheus 工具链。该堆栈包括使用导出器进行数据收集、与 Kafka 整合、时序 Prometheus 数据库和 Grafana 的可视化层。这个容器化的 Prometheus 堆栈支持开放遥测标准,并且不难设置。它可以由其他英特尔® 硬件采集器来补充,以公开来自组件的数据,如英特尔® 傲腾™ 技术和数据平面开发套件 (DPDK) 的网络数据。

Collectd 或 Telegraf 遥测代理必须安装在每个节点上,但是资源需求很小,并且可以通过使用 Ansible、Puppet、Salt 或 Chef 这类软件配置管理工具来调整安装和配置规模。

一旦安装和配置了遥测代理,就可以将多个数据流公开给 Prometheus 进行分析。图 1 为使用 Grafana 构建的遥测仪表板的示例。当您向集合中添加更多类型的数据时,仪表板可以扩展,从而包含不同类型的信息。请注意,仪表板可以包含需要注意的情况的警报。

图 1. 使用 Grafana 的遥测数据可视化示例2

或者,您也可以选择使用 Elasticsearch、Logstash 和 Kibana (ELK) 堆栈进行数据收集、分析和可视化。


要收集的数据

在设置软件堆栈来分析遥测数据流时,您将面临收集多少数据以及频率如何的问题。如果每隔几秒钟就收集一次所有内容,那么日志文件将呈指数级增长,这可能会对系统性能造成负面影响,并存储大量可能不需要的原始数据。因此,最好是慢慢开始,先从优先级最高的数据入手,然后逐渐添加更多的数据流。一种推荐做法是,您可以在发现问题之前降低扫描数据的频率,在发现问题之后提高扫描频率,直到问题得到解决。其他关于如何处理数据量的技术将在后续文章中讨论。表 1 提供了一些合理的指导意见,说明了要收集的数据及频率。

要收集的数据 收集原因 收集频率
系统配置、内核版本和日志消息 故障排除和故障趋势检测 重新启动时
电源(CPU、内存和系统)和散热(入口、出口、DIMM 和CPU 气流) 管理能效和散热效率;将峰值识别为故障的早期迹象 30 秒到 1 分钟
CPU、缓存和内存的性能 找到工作负载托管的机器 1–10 秒
内存错误 找出导致设备性能下降的问题和故障的早期迹象 1–5 分钟;在第一次发现不可纠正的内存错误 (UME) 时触发更频繁的扫描
DIMM 性能和运行状况 识别导致设备性能下降的问题和故障的早期迹象 15–30 分钟,并且在启动时
吞吐量 故障趋势检测 30 秒到 1 分钟


请记住,对于遥测数据,有时少即是多。目标不是尽可能收集多的数据量,而是适量收集合适的数据。


其他工具

随着您进一步监控遥测数据,您会希望填补工具方面的任何空白,以确保您对数据中心内所有重要的传感器都实施了监控。您可能还希望将硬件遥测数据与容器化环境整合起来。随着监控变得越来越复杂,以下工具可能对您也很有用:

英特尔® 电与温度感知解决方案(英特尔® PTAS)让您可以使用 CPU 中已经存在的传感器测量每个服务器的功率,这是所有现代英特尔® 至强® 处理器都具备的功能。
英特尔® 数据中心管理平台(英特尔® DCM)收集并分析数据中心中各种设备的实时运行状况、功率和散热详细信息。
Redfish API 让您可以使用 CPU 中已经存在的传感器测量每个服务器的功率,这是所有现代英特尔® 至强® 处理器都具备的功能。
•  cAdvisor 让您可以从容器化环境中的容器收集数据并将数据发送给 Kubernetes,以便在编排工作负载时可以使用运行状况因素。
•  遥测感知调度 (TAS) 是英特尔构建的 Kubernetes 扩展功能,因此遥测可以与布局规则一起使用,以实现自修复和更好的优化编排。


前景

在您公开数据中心的遥测数据后,首先在发生故障和性能问题后进行故障排除的能力会得到提高。随着监控能力的提高,遥测仪表板可以包含报警功能,让您能够对需要注意的情况立即做出响应。这样,您就可以在问题开始影响数据中心性能时,甚至是在此之前就能够予以解决。

使用遥测数据可以极大地提高数据中心的基础设施效率、可靠性和安全性。而这些也是朝着即将到来的数据中心基础设施更大规模的现代化迈出的第一步。英特尔正朝着现代化、自主化数据中心 (MADC) 的愿景努力。在这一愿景中,遥测数据流与预测性人工智能 (AI) 一起使用,以实现基础设施编排的自动化,并在无需人工干预的情况下预防或修复问题。

图 2. 数据中心现代化的五个阶段

将分五个阶段将智能融入数据中心,如图 2 所示: 
1.    公开遥测数据,这是本文的重点。
2.    监控和操作,使用开源软件堆栈来构建仪表板并实施报警。
3.    控制和预测,其中使用遥测数据打造小规模控制系统自动化。
4.    全面修复,多个自动化和控制系统智能地协同工作。
5.    全自动化,自修复系统不需要人工干预。

虽然数据中心的全自动化尚未实现,但一些与英特尔合作的超大规模云服务提供商已经进入到预测性自动化和控制的第三阶段。这些超大规模云服务提供商都很清楚在其庞大的数据中心中利用遥测数据可以获得的优势。

您也可以开始从数据中心组件和操作的更深层可见性中获益。通过公开和监控遥测数据,您可以更轻松地对数据中心问题实施故障排除,提高效率、减少瓶颈,并在可能出现问题时及早发出警报。之后,您就将向数据中心自动化迈进。


对数据中心进行编排和故障排除 

收集服务器数据和实现数据可视化,提高效率和可靠性。

了解更多信息,立即行动起来吧
访问英特尔云中心,网址为 https://intel.cn/cloud ,并探索这些资源,以帮助您了解并开始进行遥测数据监控:
“Cloud Telemetry: Advancing Your IT Strategy”(云遥测技术:推进您的 IT 战略):intel.cn/content/www/cn/zh/cloud-computing/telemetry.html
"Optimized Resource Utilization with Cloud Orchestration"(使用云编排优化资源利用):intel.cn/content/www/cn/zh/cloud-computing/cloud-orchestration.html
“Cloud Automation: Hands-Free Workload Allocation and Balancing”(云自动化:解放双手的工作负载分配和平衡):intel.cn/content/www/cn/zh/cloud-computing/cloud-automation.html