Silence Your Dell PowerEdge Server
/This post will cover how to silence your Dell PowerEdge R330 server. It should work for most PowerEdge servers also. Unfortunately, I have only tested this on my Dell R330’s, check the comments for other confirmed systems by other people. Let’s jump right in on this one.
User Discretion is Advised
Manually taking control of your fans will prevent the system from increasing the fan speed in the event of rising CPU or system temperature. You could damage your system if the system gets too hot. I’ve read that some people have created a script to watch the CPU Temp and when a temperature threshold is met, like 76C, the script increases the fan speed. Please keep this in mind.
iDrac version 3.3-
These commands no longer work on any iDrac update beyond 3.30.30.30. Dell has modified/removed the ability to control the fans via IMPI.
First Things First
You will have to ensure IPMI is enabled on your server.
Let’s log into iDRAC first. Once you are logged in, go to the iDRAC Settings > Network and scroll down until you see IPMI section. Make sure the “Enable IPMI Over Lan” is checked/enabled. This is what will enable us to interact with the server remotely.
Secondly
Here is were things get fun. My servers’ operating system is CentOS 7, so using ipmitool was simple. If your OS does not have it, you may need to install some sort of IPMI tool to help with this part.
This command below, let’s us manually take control of the fans or in other words, enables Manual Mode.
ipmitool -I lanplus -H 10.10.10.140 -U userAdmin -P myPassword raw 0x30 0x30 0x01 0x00
Great, now we have full control of the fans, now we want to make them shut the hell up. We are going to set them to run at 20% of their total capability.
ipmitool -I lanplus -H 10.10.10.140 -U userAdmin -P myPassword raw 0x30 0x30 0x02 0xff 0x14
Boom. Now your servers’ fans should instantly spin down. I do not have to run these commands over and over on my Dell R330. I’ve heard of people making scripts to run the commands over and over to keep their fans spun down. But for me, I can reboot the system several times and the fans will remain spun down.
Using Unraid
We can use IMPI in Unraid using a cool plugin called Nerdpack that is available in Community Apps. This should work in Unraid Versions 6.8+ but I have only tested it in an older version. Let’s take a look.
Versions
Unraid Version: 6.8.0
NerdPack GUI: 2019.12.31
Community Apps: 2020.05.27
First
Download and install the Docker container NerdPack GUI by dmaclas72.
Second
Navigate to the “Plugins” tab and left click to open “Nerd Tools”
Third
Enable/install impitool-1.8.18 or whatever the latest version is. Make sure you hit apply after turning “on” ipmitool.
Lastly
Now open a web terminal in Unraid it’s the icon in the top right corner of the WebUI, it looks like “>_”
From here you will now be able to issue ipmi commands that are listed above and below in the Advanced User Course section. Have fun!
ipmitool -I lanplus -H 10.10.10.140 -U userAdmin -P myPassword raw 0x30 0x30 0x01 0x00
ipmitool -I lanplus -H 10.10.10.140 -U userAdmin -P myPassword raw 0x30 0x30 0x02 0xff 0x14
Advanced User Course
Next, let’s look at some more options and commands you can do. You may need these if you plan on using a cron job or some sort of script.
Go to Hardware > Fans
Make note of the Fan names. We will need these names for our IPMI command.
Cool, now that you have made note of those Fan names, we can probe the server for more information.
This command will print information about the System Temperature and FAN RPMs.
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword sensor reading "Temp" "Fan1A" "Fan1B" "Fan2A" "Fan2B" "Fan3A" "Fan3B" "Fan4A" "Fan4B"
Note: “TEMP” was the name of my sensor, You can try “Ambient Temperature” for your server if you want to see the temperature of the CPU. Also, the fan names are case sensitive. So save yourself a few moments of troubleshooting by using the name as reported in iDRAC.
This command will print out a ton of information about the Fans, stats for nerds basically.
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword sdr get "Fan1A" "Fan1B" "Fan2A" "Fan2B" "Fan3A" "Fan3B" "Fan4A" "Fan4B"
This command will enable manual fan control
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x01 0x00
This command will disable manual fan control
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x01 0x01
These commands will set the fan speed
0% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x00
5% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x05
10% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x0A
20% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x14
30% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x1e
50% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x32
70% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x46
80% Fan Speed
ipmitool -I lanplus -H yourIPAddress -U yourUsername -P yourPassword raw 0x30 0x30 0x02 0xff 0x50
You can set any fan speed you want, all you have to do is set the last hex value to your desired speed. Convert Decimal to Hex in order to set the speed you want, aka, 80% in Decimal gives us a Hex value of 0x50.
Script and Cron job
I didn’t have to make a script or cron job to keep my fans at 20%. I ran the commands once and they stuck, even after a few reboots. If you find yourself needing to keep your server quiet for any reason, check out this link for some more help!
Unraid Script
In Unraid you can download and install the plugin User Scripts available in CA. From here you can use some of the information provided to make a custom script that will execute as desired. Here is a link with information about the script.
More Commands
We can do some really cool things with impi. Below is a long list of commands that you could also use, should you feel inclined. These commands are examples with my Dell R330 and the default username and password. This varies from system to system.
Chassis Power on & off and status (useful for remote situations)
ipmitool -I lanplus -H 192.168.132.15 -U root -P root chassis power on
ipmitool -I lanplus -H 192.168.132.15 -U root -P root chassis power off
ipmitool -I lanplus -H 192.168.132.15 -U root -P root chassis status
List all the sensors available in your system
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor list
Find specific sensors
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor list |grep Temp
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor list |grep Fan
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor list |grep PCIE
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor list |grep Mem
Get specific information from sensors
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor reading Temp
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor reading “Pwr Consumption”
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor reading “Cable SAS A”
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor reading “ECC Corr Err”
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor reading “PCIE 1 Temp”
ipmitool -I lanplus -H 192.168.132.15 -U root -P root sensor reading “PCIE 1 Watt”
Find all FAN Sensor IDs or a specific ID.
This will be useful for when you are targeting a specific FAN. Also the sensor type for fans is Threshold.
ipmitool -I lanplus -H 192.168.132.15 -U root -P root -v sensor |grep Fan
ipmitool -I lanplus -H 192.168.132.15 -U root -P root -v sensor |grep Fan1A
FAQ
Can I control individual fans?
Yes but I lack the skills and ability to decipher how to use IMPI to do so. Here is a 644 page pdf that can help you if you so choose to control individual fans. Good luck.
https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf#%5B%7B%22num%22%3A350%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C69%2C720%2C0%5D
Another PDF that explains IMPI, I’m too dumb to understand
https://www.dell.com/downloads/global/power/ps4q07-20070387-Babu.pdf
Write a script to handle this?
Yes, a quick Google search yielded this. With some modifications you could make it work for you and your system.
Windows 10 doesn’t have IMPI…
That’s a statement but you can download impi here for Windows.
Conclusion
This is a great way to quiet down your Dell server. I love how much noise it reduces. How loud is the Dell R330, well at idle it was about 50 decibels. After setting the fans to 20%, the server was only about 40 decibels. In truth though, I’m not actually sure if the server is 40 decibels or if it is my Eaton UPS making all the noise. Both the UPS and the server are almost as loud as each other. However, I can say for sure, you can use IPMI to make your Dell server quiet. Hopefully you have iDRAC, because without it. I’m not sure if it is possible. I’m guessing you could also quiet down a R710, R720, R510, R520, R410, R420, R820, R830, R610, R620, T330, T230, and well um any of them I suppose. The command just may deviate a bit.
As always if you have any questions feel free to drop a comment below and I will do my best to answer them.