tigerblue77 / Dell_iDRAC_fan_controller_Docker

Docker image to control your Dell PowerEdge fans via IPMI
260 stars 63 forks source link

Warning If you update to the latest version, be sure to replace "CPU_TEMPERATURE_TRESHOLD" environment variable with "CPU_TEMPERATURE_THRESHOLD" which was a typo

Dell iDRAC fan controller Docker image

Download Docker image from :

Table of Contents
  1. Container console log example
  2. Supported architectures
  3. Usage
  4. Parameters
  5. Troubleshooting
  6. Contributing

Container console log example

image

(back to top)

Prerequisites

iDRAC version

This Docker container only works on Dell PowerEdge servers that support IPMI commands, i.e. < iDRAC 9 firmware 3.30.30.30.

To access iDRAC over LAN (not needed in "local" mode) :

  1. Log into your iDRAC web console

001

  1. In the left side menu, expand "iDRAC settings", click "Network" then click "IPMI Settings" link at the top of the web page.

002

  1. Check the "Enable IPMI over LAN" checkbox then click "Apply" button.

003

  1. Test access to IPMI over LAN running the following commands :
    apt -y install ipmitool
    ipmitool -I lanplus \
    -H <iDRAC IP address> \
    -U <iDRAC username> \
    -P <iDRAC password> \
    sdr elist all

(back to top)

Supported architectures

This Docker container is currently built and available for the following CPU architectures :

(back to top)

Usage

  1. with local iDRAC:
docker run -d \
  --name Dell_iDRAC_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=local \
  -e FAN_SPEED=<decimal or hexadecimal fan speed> \
  -e CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold> \
  -e CHECK_INTERVAL=<seconds between each check> \
  -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
  --device=/dev/ipmi0:/dev/ipmi0:rw \
  tigerblue77/dell_idrac_fan_controller:latest
  1. with LAN iDRAC:
docker run -d \
  --name Dell_iDRAC_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=<iDRAC IP address> \
  -e IDRAC_USERNAME=<iDRAC username> \
  -e IDRAC_PASSWORD=<iDRAC password> \
  -e FAN_SPEED=<decimal or hexadecimal fan speed> \
  -e CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold> \
  -e CHECK_INTERVAL=<seconds between each check> \
  -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false> \
  tigerblue77/dell_idrac_fan_controller:latest

docker-compose.yml examples:

  1. to use with local iDRAC:
version: '3.8'

services:
  Dell_iDRAC_fan_controller:
    image: tigerblue77/dell_idrac_fan_controller:latest
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=local
      - FAN_SPEED=<decimal or hexadecimal fan speed>
      - CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold>
      - CHECK_INTERVAL=<seconds between each check>
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false>
    devices:
      - /dev/ipmi0:/dev/ipmi0:rw
  1. to use with LAN iDRAC:
version: '3.8'

services:
  Dell_iDRAC_fan_controller:
    image: tigerblue77/dell_idrac_fan_controller:latest
    container_name: Dell_iDRAC_fan_controller
    restart: unless-stopped
    environment:
      - IDRAC_HOST=<iDRAC IP address>
      - IDRAC_USERNAME=<iDRAC username>
      - IDRAC_PASSWORD=<iDRAC password>
      - FAN_SPEED=<decimal or hexadecimal fan speed>
      - CPU_TEMPERATURE_THRESHOLD=<decimal temperature threshold>
      - CHECK_INTERVAL=<seconds between each check>
      - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=<true or false>

(back to top)

Parameters

All parameters are optional as they have default values (including default iDRAC username and password).

(back to top)

Troubleshooting

If your server frequently switches back to the default Dell fan mode:

  1. Check Tcase (case temperature) of your CPU on Intel Ark website and then set CPU_TEMPERATURE_THRESHOLD to a slightly lower value. Example with my CPUs (Intel Xeon E5-2630L v2) : Tcase = 63°C, I set CPU_TEMPERATURE_THRESHOLD to 60(°C).
  2. If it's already good, adapt your FAN_SPEED value to increase the airflow and thus further decrease the temperature of your CPU(s)
  3. If neither increasing the fan speed nor increasing the threshold solves your problem, then it may be time to replace your thermal paste

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)