为什么需要风扇控制?
服务器的风扇数量多、转速高,相应的就是耗电高,根据统计在数据中心的运维成本上,电费占了7成,并且如果让风扇长期处在全转状态也会有噪音和耗损度的问题。
目前CPU可以达到单一耗电量200W以上,伴随而来的高热也会使个晶片老化速度加快,当然服务器中的SSD、NIC card、E1.S等装置也是有同样的情况,因此我们希望能根据这些高热的元件温度来决定风扇的转速,达到省电和正常运作的效果。
BMC如何做风扇控制?
散热(Thermal)实现控速策略提供给BMC,其中包含控速策略流程图、特殊型号硬件控速策略、PWM计算公式以及特殊状态调速策略。其中控速策略和PWM计算公式是需要参数的,这些参数取决于硬件的型号、数量、传感器读值和状态。
BMC风扇控速目标
- 提供一个配置文件接口,以上传传感器信息,包含阈值、风扇转速边界值、PWM参数等,这些数据直接影响控诉策略的选择。注意,由于服务器硬件在出厂阶段一般不会变动,所以该接口一般用于测试阶段,出厂阶段要把配置文件信息集成到代码或写在BMC系统中。
- 除上述传感器信息外,还需获取传感器读值、硬件配置、异常状态等信息,这需要根据BMC系统设计选取对应方案,例如多线程架构下的全局变量、多进程架构下的共享内存等。
- 预留debug模式,方便thermal调参测试,同时要有对应的调试日志下载,以供测试。
Openloop和Closeloop
开环控制(也称为标量控制或伏特/赫兹控制)是一种常见的电机控制方法,可用于运行任何交流电机。这是一种简单的方法,不需要来自电机的任何反馈。为了保持定子磁通恒定,我们需要保持电源电压振幅与其频率成比例。在风扇控速策略中可以理解为根据读值区间直接确定PWM,一般而言只有环境温度适用于Openloop。
闭环控制会将系统反馈纳入控制考虑范围。电机的闭环控制会考虑电流和位置等电机信号的反馈。控制系统使用反馈信号来调节电压(施加到电机),以将电机响应保持在参考值。在风扇控制中Closeloop复杂度要高于Openloop,适用于除环境温度之外的其他传感器,需要接受温度反馈判断当前传感器是否有温度上升或下降趋势。
常见异常情况策略
注:以下调速百分比不适用于大多数情况,以Thermal策略为准。
异常情况 | 调速(百分比) | 原因 |
---|---|---|
BMC not ready | 60 | 初始化阶段 |
OS Power Off | 取决于OCP卡和环境温度 | OCP卡在关机状态下依然工作 |
BIOS not ready | 60 | |
fan fail | 100 | 存在风扇失去控制,剩余风扇拉满转以提供动力 |
sensor fail | 100 | 存在传感器无法获取读值,风扇拉满转以避免烧卡 |