IPMI sensor和风扇转速
我所使用的二手 HPE ProLiant DL360 Gen9服务器 服务器,作为机架型服务器,风扇的噪音通常比个人电脑要大很多。所以作为个人使用,我一直想改造成 无风扇服务器 。
虽然通过硬件手段,强制拆除风扇( HPE DL360 gen9无风扇模式工作 )是一种方法。但是,硬件调整灵活性较差(万一又需要风扇究极呢?),所以我尝试本文的 IPMI
控制风扇速度来实现静音服务器(甚至关闭风扇运转)。
IPMI sensor
ipmitool
提供了一个命令 sensor
可以用来直接检查服务器传感器,包括温度和风扇(转速等)都是通过这个命令获取:
ipmitool sensor
可以输出服务器所有传感器状态ipmitool sensor
ipmitool sensor
输出我的 HPE ProLiant DL360 Gen9服务器 服务器传感器信息UID | 0x1 | discrete | 0x0280| na | na | na | na | na | na
Sys Health LED | 0x0 | discrete | 0x0180| na | na | na | na | na | na
01-Inlet Ambient | 26.000 | degrees C | ok | na | na | na | na | 42.000 | 46.000
02-CPU 1 | 40.000 | degrees C | ok | na | na | na | na | 70.000 | na
03-CPU 2 | 40.000 | degrees C | ok | na | na | na | na | 70.000 | na
04-P1 DIMM 1-6 | 37.000 | degrees C | ok | na | na | na | na | 89.000 | na
05-P1 DIMM 7-12 | 38.000 | degrees C | ok | na | na | na | na | 89.000 | na
06-P2 DIMM 1-6 | 38.000 | degrees C | ok | na | na | na | na | 89.000 | na
07-P2 DIMM 7-12 | 39.000 | degrees C | ok | na | na | na | na | 89.000 | na
08-HD Max | na | | na | na | na | na | na | 60.000 | na
09-Exp Bay Drive | na | | na | na | na | na | na | 75.000 | na
10-Chipset | 48.000 | degrees C | ok | na | na | na | na | 105.000 | na
11-PS 1 Inlet | 33.000 | degrees C | ok | na | na | na | na | na | na
12-PS 2 Inlet | na | | na | na | na | na | na | na | na
13-VR P1 | 42.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
14-VR P2 | 43.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
15-VR P1 Mem | 35.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
16-VR P1 Mem | 35.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
17-VR P2 Mem | 36.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
18-VR P2 Mem | 37.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
19-PS 1 Internal | 40.000 | degrees C | ok | na | na | na | na | na | na
20-PS 2 Internal | na | | na | na | na | na | na | na | na
21-PCI 1 | na | | na | na | na | na | na | 100.000 | na
22-PCI 2 | na | | na | na | na | na | na | 100.000 | na
23-PCI 3 | na | | na | na | na | na | na | 100.000 | na
24-HD Controller | na | | na | na | na | na | na | 100.000 | na
25-LOM Card | na | | na | na | na | na | na | 100.000 | na
26-LOM | na | | na | na | na | na | na | 100.000 | na
27-Front Ambient | 30.000 | degrees C | ok | na | na | na | na | 65.000 | na
28-P/S 2 Zone | 38.000 | degrees C | ok | na | na | na | na | 75.000 | na
29-Battery Zone | 34.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000
30-iLO Zone | 40.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000
31-PCI 1 Zone | 37.000 | degrees C | ok | na | na | na | na | 70.000 | 75.000
32-PCI 2 Zone | 37.000 | degrees C | ok | na | na | na | na | 70.000 | 75.000
33-PCI 3 Zone | 36.000 | degrees C | ok | na | na | na | na | 70.000 | 75.000
34-HD Cntlr Zone | na | | na | na | na | na | na | 70.000 | 75.000
35-I/O Zone | 35.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000
36-Storage Batt | na | | na | na | na | na | na | 60.000 | na
37-Fuse | 39.000 | degrees C | ok | na | na | na | na | 100.000 | na
Fan 1 | 21.168 | percent | ok | na | na | na | na | na | na
Fan 1 DutyCycle | 21.168 | percent | ok | na | na | na | na | na | na
Fan 1 Presence | 0x36 | discrete | 0x0280| na | na | na | na | na | na
Fan 2 | 22.344 | percent | ok | na | na | na | na | na | na
Fan 2 DutyCycle | 22.344 | percent | ok | na | na | na | na | na | na
Fan 2 Presence | 0x39 | discrete | 0x0280| na | na | na | na | na | na
Fan 3 | 24.696 | percent | ok | na | na | na | na | na | na
Fan 3 DutyCycle | 24.696 | percent | ok | na | na | na | na | na | na
Fan 3 Presence | 0x3f | discrete | 0x0280| na | na | na | na | na | na
Fan 4 | 28.224 | percent | ok | na | na | na | na | na | na
Fan 4 DutyCycle | 28.224 | percent | ok | na | na | na | na | na | na
Fan 4 Presence | 0x48 | discrete | 0x0280| na | na | na | na | na | na
Fan 5 | 28.224 | percent | ok | na | na | na | na | na | na
Fan 5 DutyCycle | 28.224 | percent | ok | na | na | na | na | na | na
Fan 5 Presence | 0x48 | discrete | 0x0280| na | na | na | na | na | na
Fan 6 | 28.224 | percent | ok | na | na | na | na | na | na
Fan 6 DutyCycle | 28.224 | percent | ok | na | na | na | na | na | na
Fan 6 Presence | 0x48 | discrete | 0x0280| na | na | na | na | na | na
Fan 7 | 27.440 | percent | ok | na | na | na | na | na | na
Fan 7 DutyCycle | 27.440 | percent | ok | na | na | na | na | na | na
Fan 7 Presence | 0x46 | discrete | 0x0280| na | na | na | na | na | na
Power Supply 1 | 150 | Watts | ok | na | na | na | na | na | na
PS 1 Output | 150.000 | Watts | ok | na | na | na | na | na | na
PS 1 Presence | 0x1e | discrete | 0x0280| na | na | na | na | na | na
Power Supply 2 | na | discrete | na | na | na | na | na | na | na
PS 2 Output | na | | na | na | na | na | na | na | na
PS 2 Presence | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Power Meter | 150 | Watts | ok | na | na | na | na | na | na
PwrMeter Output | 150.000 | Watts | ok | na | na | na | na | na | na
Fans | 0x0 | discrete | 0x0180| na | na | na | na | na | na
Megacell Status | na | discrete | na | na | na | na | na | na | na
Memory Status | 0x0 | discrete | 0x4080| na | na | na | na | na | na
从传感器输出中能够看到很多信息,例如输出内容高亮部分可以看到服务器CPU温度,以及 Fan 1
(1号风扇)的转速和工作状态
一些输出信息解释(输出中的英文术语):
英文术语 |
说明 |
---|---|
Ambient |
周边: 指电路周围 |
degrees C |
摄氏度(温度) |
DutyCycle |
转速(注意数值是百分比,也就是 |
percent |
很多参数值都是采用百分比表示(例如风扇转速百分比) |
Presence |
在场(表示装配方式) |
discrete |
分离结构(表示不是主板集成,而是安插上去的) |
Watts |
瓦特(功率单位,电源功率) |
这里的温度传感、风扇状态等 可以通过 IPMI Exporter 实现 Grafana通用可视分析平台 监控采集,可以帮助观察服务器状态
风扇转速控制
风扇转速控制似乎没有很清晰易懂的配置命令,从网上资料来看,是通过 ipmitool raw
底层命令来实现控制的。貌似各大主流服务器厂商的设置方法相似,但是困难在于各厂商设置的配置位参数不同(很难找到参考资料)
首先切换风扇控制模式,从自动控制转为人工配置(manually configurable),这里的参数值是
0x1
表示人工配置,要恢复自动模式则是设置为0x0
:
对于 DELL 服务器:
# 设置人工配置风扇转速,这里最后的 0x00 表示人工设置
ipmitool raw 0x30 0x30 0x01 0x00
# 设置自动配置风扇转速,最后的 0x01 表示根据温度自动调整风扇转速
ipmitool raw 0x30 0x30 0x01 0x01
# 设置所有风扇转速(百分比),这里 0xff 表示所有风扇,0x## 的 "##" 是 00~64, 代表 0% 到 100%
ipmitool raw 0x30 0x30 0x02 0xff 0x##
# 举例: 设置 20% 转速
ipmitool raw 0x30 0x30 0x02 0xff 0x14
# 举例: 设置 30% 转速
ipmitool raw 0x30 0x30 0x02 0xff 0x1e
# 举例: 设置 100% 转速
ipmitool raw 0x30 0x30 0x02 0xff 0x64
# 设置指定风扇转速(百分比),这里 0x?? 表示第几个风扇, 0x## 的 "##" 是 00~64, 代表 0% 到 100%
ipmitool raw 0x30 0x30 0x02 0x?? 0x##
对于 supermicro 服务器:
# 设置风扇模式全速运行
ipmitool raw 0x30 0x45 0x01 0x01
# 设置zone 0(通常是CPU)风扇 57%
ipmitool raw 0x30 0x91 0x5A 0x03 0x00 0x91
# 设置zone 1(通常是周边)风扇 57%
ipmitool raw 0x30 0x91 0x5A 0x03 0x01 0x91
备注
很不幸,我还没有找到HP的控制风扇的ipmitool命令,貌似网上资料是通过iLo来控制的。实在不行,我就用 HP服务器iLO技术 来实现了