编写设备驱动程序

什么是预测性自我修复?

传统上,系统会将硬件和软件错误信息以系统日志消息的形式直接导出给管理员以及管理软件。错误检测、诊断、报告和处理通常会嵌入到每个驱动程序的代码中。

Solaris OS 预测性自我修复系统这样的系统是最早的也是最重要的自我诊断系统。自我诊断意味着系统提供根据观察到的症状自动诊断问题的技术,然后将诊断结果用于触发自动响应和恢复。硬件故障或软件缺陷可与一组可能观察到的、称为错误的症状相关联。系统检测到错误后所生成的数据称为错误报告或 ereport

在具有自我修复功能的系统中,ereport 由系统捕获,并编码为由可扩展事件协议描述的一组名称-值对,从而形成 ereport 事件。收集 ereport 事件和其他数据是为了便于进行自我修复,还会将其分发给名为诊断引擎的软件组件,诊断引擎设计用来诊断与系统检测到的错误症状对应的底层问题。诊断引擎在后台运行,并以无提示方式使用错误遥测,直到它可以生成诊断或预测故障为止。

在处理足够的遥测从而得出结论之后,诊断引擎会生成名为故障事件的另一个事件。然后,会向对特定故障事件感兴趣的所有代理广播该故障事件。代理是可对特定故障事件启动恢复和做出响应的软件组件。被称为 Solaris Fault Manager 的软件组件 fmd(1M) 可在 ereport 生成器、诊断引擎和代理软件之间管理事件的多路复用。