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

This is an example command for my server, the user root and password root may be different than yours.



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.

idracFans - Copy.PNG

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.