Dell R720xd fan speed control
I run R720xd in my home lab setup. The very first thing was to resolve fan speed crisis, as default +16k rpm results in unlivable conditions.
This might also be suitable for other 12th-generation Dell PowerEdge servers, like:
T620, R220, R320, R420, R520, R620, R720, R820, R920, M420, M520, M620, M820, C6220.
This can be relatively easily achieved via IPMI control.
For this, you will need to set up IDRAC:
- Enable IDRAC passthrough to OS - This will allow you to connect to Idrac from within the operating system.
Overview -> iDRAC Settings -> Network -> OS to iDRAC Pass-through enable USB NIC
- You should now have a new network interface in your operating system. For me, it was auto-detected and I did not need to tinker with it.
idrac: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.0.2 netmask 255.255.255.0 broadcast 169.254.0.255
inet6 fe80::7a45:c4ff:fef4:1e56 prefixlen 64 scopeid 0x20<link>
ether 78:45:c4:f4:1e:56 txqueuelen 1000 (Ethernet)
RX packets 15861 bytes 8876316 (8.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16563 bytes 5894357 (5.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
For fan control, you will need to send 2 commands,
- The first one is to enable manual fan control,
- The second is to set the fan speed.
- Setting fans to manual control:
ipmitool -I lanplus -H 169.254.0.1 -U root -P yourpasswordhere raw 0x30 0x30 0x01 0x00
- Set fan speed
ipmitool -I lanplus -H 169.254.0.1 -U root -P yourpasswordhere raw 0x30 0x30 0x02 0xff {FAN_SPEED_BYTE}
Where FAN_SPEED_BYTE is hex byte from 0x00
to 0x40
or decimal value from 0 to 64.
Example: Set the fan speed to value 16
(0x10
in hex) or about 10%
ipmitool -I lanplus -H 169.254.0.1 -U root -P yourpasswordhere raw 0x30 0x30 0x02 0xff 0x10
Example: Set the fan speed to 32 (0x20
in hex), or about 50%
ipmitool -I lanplus -H 169.254.0.1 -U root -P yourpasswordhere raw 0x30 0x30 0x02 0xff 0x20
Fan speed after power loss
In case of power loss, if your server is configured to boot up automatically, the default fan behavior will be re-enabled.
If you want to avoid these situations, you can set up automatic fan speed configuration on OS boot.
For this, I have a simple script /usr/local/bin/idrac-setfans
:
#!/bin/bash
ipmitool -I lanplus -H 169.254.0.1 -U root -P yourpasswordhere raw 0x30 0x30 0x01 0x00 >/dev/null 2>&1
ipmitool -I lanplus -H 169.254.0.1 -U root -P yourpasswordhere raw 0x30 0x30 0x02 0xff 0x${1:-10} >/dev/null 2>&1
Note: This script takes in 1 parameter, whose value should be from 0 to 64.
For example: idrac-setfans 16
Add execute permission to this script
chmod +x /usr/local/bin/idrac-setfans
Set it to run once on boot by adding crontab entry on @reboot
to any user.
@reboot /usr/local/bin/idrac-setfans 16
All done 🙂