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号风扇)的转速和工作状态

  • 一些输出信息解释(输出中的英文术语):

ipmitool sensor 输出信息中英文术语解释(非精确)

英文术语

说明

Ambient

周边: 指电路周围

degrees C

摄氏度(温度)

DutyCycle

转速(注意数值是百分比,也就是 pencent )

percent

很多参数值都是采用百分比表示(例如风扇转速百分比)

Presence

在场(表示装配方式)

discrete

分离结构(表示不是主板集成,而是安插上去的)

Watts

瓦特(功率单位,电源功率)

这里的温度传感、风扇状态等 可以通过 IPMI Exporter 实现 Grafana通用可视分析平台 监控采集,可以帮助观察服务器状态

风扇转速控制

风扇转速控制似乎没有很清晰易懂的配置命令,从网上资料来看,是通过 ipmitool raw 底层命令来实现控制的。貌似各大主流服务器厂商的设置方法相似,但是困难在于各厂商设置的配置位参数不同(很难找到参考资料)

  • 首先切换风扇控制模式,从自动控制转为人工配置(manually configurable),这里的参数值是 0x1 表示人工配置,要恢复自动模式则是设置为 0x0 :

对于 DELL 服务器:

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 服务器:

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技术 来实现了

参考