So as a developer for virtualization solutions it is important for me to have direct access to the hardware I am supposed to be working with. For that reason, I have a small Cluster of bare-metal Servers ranging from dev-01 to dev-04 where dev-01, dev-02 and dev-03 are my oldest and most-used Server. dev-04 is the latest addition and consists of a Supermicro CSE-815 Chassis, 2 x5650 and 96GB of RAM on a Supermicro X8DTU-F Motherboard.
And here comes the problem: Supermicro fans are loud. There is the ipmitool which can be used to adjust the fanspeed, but for some reason that did not work for me.
Luckily Patrik Dufresne over at ikus-soft.com worte a great article on a python script he wrote which will handle communication to the underlying W83627DHG-P chipset which is used to control the fans.
Let’s follow his instructions on how to install the script and how to set it up.
First, we need something called “smbus” which is used to communicate over i2c with the chip.
sudo apt-get install python-smbus
Then we need to activate the i2c-dev kernel-module in linux. This might already be activated by other software, but just to be sure you can add “i2c-dev” to the “/etc/modules” file.
After that we can download the script and make it executable. We are loading it into /usr/local/bin which mal make it available as a normal command. You can download it anywhere, just check the command-all when executing.
sudo wget -O /usr/local/bin/smx8fancontrol https://gist.github.com/ikus060/26a33ce1e82092b4d2dbdf18c3610fde/raw/2b12bff6d880c9dec69c0b74e0fb9025b2be559c/smx8fancontrol
sudo chmod +x /usr/local/bin/smx8fancontrol
Now we can execute the “smx8fancontrol” command to get the current configuration. I’m not going to explain in detail what all the numbers mean, Patrik did a great job doing it, so please check out his article.
You can adjust the fan speed with the following command:
smx8fancontrol -m smart -p 25,50,100 -t 42,47,60 -H 2
The “-p”-parameter is used for the fanspeed itself, so 25%, 50%, 100%, while the “-t” is the temperature ffor the lower limit.
So when we are running at 45 Degrees Celcius, we are also running at 25% fanspeed. Depending on your ambient temperature and the load you put on the chip you might want to play with the numbers to get an optimal balance between performance and noise.
I hope this helps to keep your server cool AND silence! Thanks to Patrik for the great scripts and detailed explanation of how the Chip works.