通过HPE iLO控制风扇转速

我最初尝试采用标准的 IPMI 方式来控制 HPE ProLiant DL360 Gen9服务器 风扇转速,目的是实现 无风扇服务器 。不过,HPE服务器的 ipmi 资料非常匮乏,我找不到 IPMI sensor和风扇转速 的HPE服务器配置方法( ipmitool raw 参数各个厂商不统一,没有资料无法配置 )。

从网上资料来看,HPE服务器的风扇控制是通过 HP服务器iLO技术 实现的,只是实现方法非常曲折

备注

我暂时还没有时间精力来尝试实践,这里只做资料汇总。过几天再搞…

脚本控制

HOW TO CONTROL HPE ILO FAN SPEED (ILO 4, GEN 8~9) 提供了一个封装脚本,通过 iLO 的SSH密钥方式来登陆 iLO 进行设置(其实就是 ssh 执行 iLO 命令)。脚本非常简单,但是可以看出设置方法。结合iLO手册,我觉得应该很容易完成。

备注

简单看了一下脚本,iLO设置看起来非常简单的命令。也就是 ssh服务 远程执行,使用密钥认证可以非常方便完成。

通过iLO远程命令调整服务器风扇转速
#!/bin/bash
#Script to reduce fan speeds on ilo4 remotely.
# Install new public key on ilo4 as described here:
# https://ouphe.net/2020/04/05/add-ssh-key-to-ilo4-user-for-authentication/
#HELPFUL INFO
# Use Putty or similar to login from Windows. Reset iLO (iLO > Info > Diagnostics) each time to view. Only first login can see any responses.
# Run "fan info" to get readout





ILO4=MYIP
ILOUSER=ilofanuser
PASSWORD='MYPASSWORD'
PCILO=1000
PCIHI=5000
HDCLO=500
HDCHI=4000
MISCLO=500
MISCHI=3000
HDMAXLO=100
HDMAXHI=250
HDNOAUTHTEMPCAUT=65
HDNOAUTHTEMPCRIT=70





#PCI
# Set minima
for PID in 24 25 26 27 28 29 30 31 32 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID lo $PCILO"
done

# Set maxima
for PID in 24 25 26 27 28 29 30 31 32 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID hi $PCIHI"
done





#HD Controller Systems
# Set minima
for PID in 19 20 21 22 23
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID lo $HDCLO"
done

# Set maxima
for PID in 19 20 21 22 23
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID hi $HDCHI"
done





#MISC - Chipset, iLO Chips, Exhaust and Intake, OCSD
# Set minima
for PID in 33 34 35 36 46 62 63 64 65
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID lo $MISCLO"
done



# Set maxima
for PID in 33 34 35 36 46 62 63 64 65
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID hi $MISCHI"
done





#Special - HD Max
# Set minima
for PID in 07
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID lo $HDMAXLO"
done

# Set maxima
for PID in 07
do
        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan pid $PID hi $HDMAXHI"
done




#Override Thresholds due to unauthenticated drives
# Set caution
#for PID in 07
#do
#        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan t $PID caut $HDNOAUTHTEMPCAUT"
#done

# Set critical
#for PID in 07
#do
#        sshpass -p $PASSWORD ssh $ILOUSER@$ILO4 -o KexAlgorithms=+diffie-hellman-group14-sha1 -o HostKeyAlgorithms=ssh-rsa -o HostKeyAlgorithms=ssh-dss -o HostKeyAlgorithms=ssh-rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "fan t $PID crit $HDNOAUTHTEMPCRIT"
#done

命令行

Silence of the fans pt 2: HP iLO 4 2.73 now with the fan hack! 提供了简单的命令方法,也是ssh到iLO通过简单命令设置

HP-ILO-Fan-Control (GitHub项目) 结合 ilo4_unlock (Silence of the Fans) (GitHub项目) 来控制风扇

WEB设置

ilo-fans-controller (GitHub项目) 提供了通过WEB服务器(php)方式来设置iLO(包装),使用更为简便。

参考