前阵子老板嫌放在办公室的服务器风扇太吵,于是研究了一下如何调整超微服务器的风扇转速。
一般家用PC的UEFI中都有风扇策略,但是服务器却没有(毕竟都是丢在机房里吹空调)。
经过一番搜索发现风扇转速可以通过IPMI设置。
IPMI
智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。
许多超微服务器都具备了两个网卡,但仔细观察主机上的接口却可以发现三个RJ45网口,其中一个便是IPMI使用的。这个网口直接由服务器底层硬件进行管理,在操作系统层面不可见,可以实现截屏、服务器启停等控制功能,也包括设置风扇转速。IPMI网口可以设置为静态IP或者DHCP;与这个网口处于同一以太网的主机都可以通过IPMI对服务器进行管理。
IPMI一般需要用户名和密码进行认证。超微服务器一般默认的用户名和密码均为ADMIN。
IPMITool
ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具。
当然,你也可以在网上轻松找到Windows可用的交叉编译版本。
基本命令
现在假定你已经完成了以下的操作:
- 确保服务器的IMPI网口已与一台管理主机相连。
- 在管理主机上下载可用的ipmitool。
接下来只需要在ipmitool所在的目录下运行形如下面的命令:
ipmitool -H 192.168.137.2 -U ADMIN -P ADMIN raw 0x30 0x70 0x66 0x01 0x00 0x24
ipmitool -H 192.168.137.2 -U ADMIN -P ADMIN raw 0x30 0x70 0x66 0x01 0x01 0x24
其中,192.168.137.2是你的服务器的IPMI网口的IP地址,-U和-P分别指定IPMI的用户名和密码,最后一个0x24是你要设置的风扇转速——可选值为0x01~0x64,以十六进制百分比的形式给出,0x24意味着风扇转速设置为36%。至于倒数第2个0x00和0x01的区别:
- 0x00表示对系统区域的风扇调速。这个区域一般为负责CPU、GPU的风扇,对应风扇编号为FAN1,FAN2,……
- 0x01表示对周边设备的风扇调速。对应风扇编号为FANA,FANB,……
自动调速冲突
首先,如果你运行上面的命令后,风扇转速回落后马上又返回原样,这表明服务器的自动调速覆盖了你手动设置的转速。你需要切换服务器风扇策略为全速(Full Speed),在这个策略下服务器不会使用自动调节转速,因此也不会覆盖你手动设置的转速。
运行下面的命令切换到全速模式:
ipmitool -H 192.168.137.2 -U ADMIN -P ADMIN 0x30 0x45 0x01 0x01
最后一个0x01表示全速模式。如果为0x00则表示标准(Standard);0x02表示最优(Optimal)。
参考
更多信息可以参阅这篇文章