高温保护机制

问题描述

1 openUBMC支持哪些高温保护机制避免核心器件因高温发生损坏?
2 如何将保护机制应用起来

答案内容由AI生成,仅供参考:

三、总结

保护机制 触发条件 响应动作 可配置性
CoreDisableTemp CPU核心温度过高 关闭核心 :white_check_mark: 可配置阈值
MaxAllowedTemperatureCelsius 达到最大允许温度 风扇100% PWM、告警 :white_check_mark: 多种设定值
ProcessorHot 硬件检测到核心过热 触发ThermalTrip :white_check_mark: 可监控
ThermalTrip 严重过热事件 自动下电并延时恢复 :white_check_mark: 支持Redfish配置
OverTemperature PSU/FRU过温 报警、记录事件 :white_check_mark: 状态可读
SysSSDsMaxTemperature SSD温度 > 80°C 启动冷却策略 :white_check_mark: 在配置文件中定义

:white_check_mark: 建议实践

  • 启用ThermalTrip并合理设置TimeDelaySeconds避免频繁重启。
  • 结合MaxAllowedTemperatureCelsius和风扇策略实现主动温控。
  • 利用Redfish API 实现远程高温策略管理,提升运维效率。

如需进一步配置指导,可参考以下文档:

点击此处查看详细分析解答

openUBMC高温保护机制详解

openUBMC系统提供了多层次的高温保护机制,以确保核心器件在异常温升情况下能够及时响应,防止硬件损坏。以下是基于现有信息整理的高温保护机制及其应用方式。


一、openUBMC支持的高温保护机制

1. CoreDisableTemp(核心关闭温度阈值)

  • 描述:该参数定义了CPU核心被关闭的温度阈值,用于防止处理器因过热而损坏。
  • 作用对象:SOC(System on Chip)中的CPU核心。
  • 机制说明
    • 当检测到核心温度达到或超过CoreDisableTemp设定值时,系统将自动关闭对应的核心。
    • 配合CoreDisablePowerOffTime参数使用,在电源关闭期间若温度持续过高,可触发延时关机流程。
  • 相关实体关系
    CoreDisableTemp → SOC:控制CPU核心的高温关闭逻辑
    CoreDisableTemp ↔ CoreDisablePowerOffTime:协同决定是否执行断电保护
    

2. MaxAllowedTemperatureCelsius(最大允许温度)

  • 描述:定义系统或组件允许的最高温度阈值,通常用于触发风扇全速运行或更高级别的热保护动作。
  • 数值范围:U8类型(0–255°C),典型值为 60°C、90°C、100°C 或 102°C,具体取决于硬件配置。
  • 关键行为
    • 温度超过此阈值时,系统强制将风扇PWM调至100%,实现最大散热。
    • 可作为系统级热警报和安全干预的触发条件(如降频、告警、准备关机)。
  • 备注:该值可能因设备型号不同而配置不一,属于可配置参数。

3. ProcessorHot(处理器过热信号)

  • 描述:硬件级状态标志(U8数据),用于实时反映CPU核心是否处于高温状态。
  • 监控路径:通过访问器 Scanner_Cpu1ProcessorHotAccessor 获取状态。
  • 联动机制
    • bmc.kepler.Systems.Processor 接口监控。
    • 激活后可触发ThermalTrip保护逻辑,进入降频、告警或下电流程。
  • 集成层级
    • 属于 Temperature Monitoring 系统功能的一部分。
    • Thermal Mgmt 组件协同工作,实现闭环控制。

4. ThermalTrip 过热保护机制

  • 描述:当CPU发生严重过热时,硬件自动触发ThermalTrip信号,导致系统主动下电,防止永久性损伤。

  • 关键属性(来自CSR配置):

    属性 类型 默认值 说明
    FruID U8 0 关联FRU单元
    GetThermTrip 表达式 <=/Scanner_Cpu1ThermalTripAccessor.Value 获取过热信号
    Actions 枚举 上电 下电后是否自动恢复上电
    TimeDelaySeconds U32 300 自动上电延迟时间(秒)
    IsValid 布尔 true 是否启用该策略
  • 支持的Redfish接口扩展

    • PowerOnAfterCpuThermalTrip:布尔型,控制是否在高温下电后自动重启。
    • DelaySecondsAfterCpuThermalTrip:整数型,设置恢复上电的等待时间。
  • 应用场景

    • 防止高温反复上下电导致OS震荡。
    • 为系统提供安全冷却窗口,避免热累积破坏硬件。

5. OverTemperature(过温状态监测)

  • 描述:一种通用的安全状态指示器,表示某个组件(如电源、风扇模块等)已超出安全温度上限。
  • 数据格式
    • 8位无符号整数(U8)
    • 0 表示无故障,1 表示发生过温故障。
  • 监控对象
    • Power Supply(电源单元)
    • NVMe SSDs
    • 其他散热敏感部件
  • 告警输出:可通过BMC日志、Redfish API 或 Web REST API 实时获取。

6. SysSSDsMaxTemperature(SSD最大温度限制)

  • 描述:控制系统中SAS/SATA SSD的最大允许工作温度。
  • 设定值80.0°C
  • 作用机制
    • 超过该温度时,系统将启动相应冷却策略(如提升风扇转速)。
    • CoolingConfig_HighPerformance 配置文件中的一个关键参数。
  • 注意:该参数仅适用于SAS/SATA SSD,不包含NVMe SSD。

二、如何应用这些高温保护机制

1. 通过CSR配置启用保护策略

  • 操作方式
    • 编辑CSR(Configuration & Status Register)字典中的ThermTrip类。
    • 设置IsValid = true以启用过热保护。
    • 配置ActionsTimeDelaySeconds控制下电后的恢复行为。
  • 参考路径
    /bmc/kepler/Systems/:SystemsId/Fructrl/:FruId
    

2. 使用Redfish API进行远程配置

  • 新增Oem属性支持(Redfish v1/Systems):
    {
      "Oem": {
        "Huawei": {
          "PowerOnAfterCpuThermalTrip": true,
          "DelaySecondsAfterCpuThermalTrip": 300
        }
      }
    }
    
  • 权限要求:PATCH操作需具备PowerMgmt权限。

3. 通过资源协作接口管理策略

  • 接口路径bmc.kepler.Systems.ThermalTrip
  • 可操作属性
    • Action(y型):设定下电后动作(默认为上电)
    • TimeDelaySeconds(u型):设置延时秒数,默认300秒
  • 权限控制
    • 读:ReadOnly
    • 写:PowerMgmt

4. 日志与监控

  • 日志来源thermal_mgmt 服务会记录以下信息:
    • 风扇转速变化
    • 温度采样记录
    • ThermalTrip事件触发
    • 失败原因(如devmon对象获取失败)
  • 查看方式
    journalctl -u thermal_mgmt
    
    或通过 Log Query 功能从openUBMC BMC中提取。

5. 冷却策略绑定

  • 将温度阈值与冷却策略关联,例如:
    • 使用 coolingRequirement_1_41 控制基于 SysSSDsMaxTemperature 的风扇响应。
    • CoolingRequirement_1_81 结合 NPU_1.AiCoreTemp 监控Atlas 300I A2芯片温度并动态调节散热。

三、总结

保护机制 触发条件 响应动作 可配置性
CoreDisableTemp CPU核心温度过高 关闭核心 :white_check_mark: 可配置阈值
MaxAllowedTemperatureCelsius 达到最大允许温度 风扇100% PWM、告警 :white_check_mark: 多种设定值
ProcessorHot 硬件检测到核心过热 触发ThermalTrip :white_check_mark: 可监控
ThermalTrip 严重过热事件 自动下电并延时恢复 :white_check_mark: 支持Redfish配置
OverTemperature PSU/FRU过温 报警、记录事件 :white_check_mark: 状态可读
SysSSDsMaxTemperature SSD温度 > 80°C 启动冷却策略 :white_check_mark: 在配置文件中定义

:white_check_mark: 建议实践

  • 启用ThermalTrip并合理设置TimeDelaySeconds避免频繁重启。
  • 结合MaxAllowedTemperatureCelsius和风扇策略实现主动温控。
  • 利用Redfish API 实现远程高温策略管理,提升运维效率。

如需进一步配置指导,可参考以下文档:

1、openUBMC支持哪些高温保护机制避免核心器件因高温发生损坏? — 超温下电一般都是硬件提供的能力,BMC侧当前没有主动基于某个信号去给业务做下电的

2、确实要做也可以,硬件提供保护信号,触发了后由BMC自动下电或者触发异常调速、告警等机制