近日,哈尔滨工业大学容错与移动计算研究中心学生团队依托 OurBMC社区 提供的BMC调测载板,顺利且出色地完成了其毕业论文设计项目,展现了卓越的创新与实践能力,并基于此成果整理了一份可落地解决方案——《基于日志分析和硬盘预测性维护的BMC服务器监控与故障诊断平台》。该平台方案是社区 “BMC调测载板免费申请活动” 启动以来,首个助力高校学子完成的学术论文解决方案。它不仅为开发者提供了清晰、可实现的技术路径,更彰显了OurBMC社区对科研创新的深度支持与协作价值。
“BMC调测载板免费申请活动” 是社区联合飞腾公司和汉为举办的特色活动,通过为BMC技术爱好者提供BMC调测载板以及相关技术文档,推动开发者基于调测载板开展BMC模块相关的验证和测试工作,降低开发者参与社区门槛。
哈尔滨工业大学容错与移动计算研究中心是哈工大计算机科学与技术学院的重要研究机构之一,该中心专注于容错计算、移动计算、分布式系统、云计算及边缘计算等领域的前沿研究,致力于提高各类计算系统的可靠性、安全性和效率。该研究中心承担了多项国家级科研项目,并与工业界保持紧密合作,推动科研成果的转化与应用,其研究成果在学术界和产业界均具有广泛影响力,为计算技术的发展做出了重要贡献。
方案概述
本方案 基于日志分析和硬盘预测性维护的思想,针对BMC服务器监控与故障诊断平台的BMC管理和OpenBMC开源固件做了以下创新:
1、基于OurBMC社区提供的BMC调测载板,针对BMC服务器监控与故障诊断平台进行了针对性适配,使BMC固件系统能够移植到通用计算机系统平台,而不仅限于特定BMC芯片,极大地增强了系统的可拓展性。
2、基于OurBMC社区的开源代码,拓展OpenBMC的功能,使其不仅能获取带外监控的硬件级数据,而且能获取带内监控的系统级数据,从而充分利用多模态数据进行更精确的故障分析、故障定位和故障预测。
总体架构
整个平台包括服务器硬件层、数据采集层、数据存储层、模型计算层、前端呈现层。下图为整体架构图:
方案设计
1、服务器硬件层
服务器硬件层的结构包括BMC板卡和服务器本身两部分,其中服务器本身产生数据,BMC板卡中植入功能拓展后的OpenBMC固件,负责从服务器接收数据。本方案使用飞腾开发板作为BMC板卡,将BMC调测载板作为注入数据的模拟服务器。
2、数据采集层
数据采集依赖于服务器监控,服务器监控又称为物理机或虚拟机监控,分为带内监控和带外监控。目前开源的OpenBMC固件依赖于带外监控且功能单一,本方案设计的BMC管理平台,在兼容原有OpenBMC带外监控的同时,引入带内监控框架,实现了从服务器到监控端的完整流程。其中带外监控的目的是收集服务器基本物理信息和服务器系统日志sel,基本信息部分由BMC故障诊断平台部署的飞腾派硬件单元通过I2C接口连接BMC调测载板上的传感器收集,服务器系统日志由平台中的ipmitool收集。
3、数据存储层
所有通过服务器收集的数据均存储在后端数据库中,通过预先设立的API接口获取,后端是基于Python开源框架中的Django框架作为开发基础,使用MySQL作为数据库。其工作流程如下图所示,在Django中,操作表的语句与直接在MySQL中执行的SQL语句有着密切的关系。Django的ORM(Object-Relational Mapping)提供了一种Pythonic的方式来操作数据库,它将Python代码翻译成对应的SQL语句,并执行这些SQL语句以实现数据库操作,数据库向前端提供接口并发送数据。
4、模型计算层
模型计算层可以分为故障分析和故障预测两个模块,在故障分析模块中,平台以日志分析为主体,主要实现了故障类型识别、故障等级判定和故障定位三个功能。在故障预测模块中,平台实现了判断硬盘是否可能发生故障的硬盘故障预测和判定告警硬盘剩余寿命的硬盘寿命预测。
(1)故障分析模块
故障分析模块的主体数据是服务器系统日志数据,根据服务器系统日志的内容,判断出服务器故障等级和故障类型。
(2)故障预测模块
故障预测模块的主体数据是服务器硬盘的SMART数据,主要根据每天生成的SMART信息判断硬盘是否会在将来发生故障,如果有较大可能性发生故障(即告警),则预测硬盘的剩余寿命。其中告警预测部分采用XGBoost模型,寿命预测部分采用LSTM模型。
5、前端呈现层
前端呈现主要分为两部分,带外监控呈现和带内监控呈现,其中带外监控呈现的数据包括系统信息和日志告警,这部分数据来源于传感器收集而来的基本信息,包括产品基本数据、温度、风扇转速,以及由IPMI收集的服务器系统日志。带内监控呈现的数据包括内存故障定位、PCIE故障定位、硬盘故障预测,这部分数据的来源通过在服务器系统内安装的插件获取。
获取方案
扫码获取《基于日志分析和硬盘预测性维护的BMC服务器监控与故障诊断平台》完整版
我们期待这一方案能够为BMC技术的发展和应用注入新的活力,也欢迎各成员单位及开发者积极投稿,为社区建设添砖加瓦,投稿请联系:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。