# Contrôleur de ventilateurs Dell iDRAC - Version modifiée Fork de : https://github.com/tigerblue77/Dell_iDRAC_fan_controller_Docker.git **Modifications apportées :** - Remplacement du contrôle statique par un contrôle dynamique basé sur la température - Configuration de 4 seuils de température avec vitesses correspondantes - Gestion progressive de la vitesse des ventilateurs selon la température du CPU ## 🚀 Deux versions disponibles | **Version Docker** | **Version LXC Proxmox** | |-------------------|------------------------| | 🐳 Container Docker classique | 📦 Container LXC natif | | Images versionnées | Installation directe | | `docker-compose` | `systemctl` | | Isolation forte | Performance native | | → [Documentation Docker](docker/) | → [Documentation LXC](lxc/) |
Table des matières
  1. 🚀 Deux versions disponibles
  2. Prérequis
  3. Installation rapide
  4. Paramètres
  5. Dépannage
  6. Exemple de logs
## Installation rapide ### 🐳 Version Docker ```bash # Télécharger la configuration wget https://raw.githubusercontent.com/votre-repo/main/docker/docker-compose.yml # Modifier la configuration selon vos besoins nano docker-compose.yml # Lancer le container docker-compose up -d ``` ### 📦 Version LXC (Proxmox) ```bash # Dans le container LXC Ubuntu wget -O - https://github.com/votre-repo/archive/main.tar.gz | tar -xz cd Dell_iDRAC_fan_controller-main/lxc chmod +x install-lxc.sh ./install-lxc.sh ```

(back to top)

## Prérequis ### Serveur Dell - Dell PowerEdge avec iDRAC - Support des commandes IPMI - iDRAC 9 firmware < 3.30.30.30 (pour IPMI) ### Environnement - **Docker** : Docker + Docker Compose - **LXC** : Proxmox avec container privilégié

(back to top)

## Container console log example ![image](https://user-images.githubusercontent.com/37409593/216442212-d2ad7ff7-0d6f-443f-b8ac-c67b5f613b83.png)

(back to top)

## Configuration détaillée ### 🐳 Version Docker **1. Utilisation avec iDRAC local :** ```bash docker run -d \ --name Dell_iDRAC_fan_controller \ --restart=unless-stopped \ -e IDRAC_HOST=local \ -e CPU_TEMPERATURE_THRESHOLD= \ -e CHECK_INTERVAL= \ -e CPU_TEMPERATURE_1=30 \ -e CPU_TEMPERATURE_2=40 \ -e CPU_TEMPERATURE_3=50 \ -e CPU_TEMPERATURE_4=60 \ -e FAN_SPEED_1=10 \ -e FAN_SPEED_2=30 \ -e FAN_SPEED_3=60 \ -e FAN_SPEED_4=80 \ -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE= \ --device=/dev/ipmi0:/dev/ipmi0:rw \ votre_image:latest ``` 2. with LAN iDRAC: ```bash docker run -d \ --name Dell_iDRAC_fan_controller \ --restart=unless-stopped \ -e IDRAC_HOST= \ -e IDRAC_USERNAME= \ -e IDRAC_PASSWORD= \ -e CPU_TEMPERATURE_THRESHOLD= \ -e CHECK_INTERVAL= \ -e CPU_TEMPERATURE_1=30 \ -e CPU_TEMPERATURE_2=40 \ -e CPU_TEMPERATURE_3=50 \ -e CPU_TEMPERATURE_4=60 \ -e FAN_SPEED_1=10 \ -e FAN_SPEED_2=30 \ -e FAN_SPEED_3=60 \ -e FAN_SPEED_4=80 \ -e DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE= \ votre_image:latest ``` `docker-compose.yml` examples: 1. to use with local iDRAC: ```yml version: '3.8' services: Dell_iDRAC_fan_controller: image: votre_image:latest container_name: Dell_iDRAC_fan_controller restart: unless-stopped environment: - IDRAC_HOST=local - CPU_TEMPERATURE_THRESHOLD=70 - CHECK_INTERVAL=60 - CPU_TEMPERATURE_1=30 - CPU_TEMPERATURE_2=40 - CPU_TEMPERATURE_3=50 - CPU_TEMPERATURE_4=60 - FAN_SPEED_1=10 - FAN_SPEED_2=30 - FAN_SPEED_3=60 - FAN_SPEED_4=80 - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false devices: - /dev/ipmi0:/dev/ipmi0:rw ``` 2. to use with LAN iDRAC: ```yml version: '3.8' services: Dell_iDRAC_fan_controller: image: votre_image:latest container_name: Dell_iDRAC_fan_controller restart: unless-stopped environment: - IDRAC_HOST=192.168.1.100 - IDRAC_USERNAME=root - IDRAC_PASSWORD=calvin - CPU_TEMPERATURE_THRESHOLD=70 - CHECK_INTERVAL=60 - CPU_TEMPERATURE_1=30 - CPU_TEMPERATURE_2=40 - CPU_TEMPERATURE_3=50 - CPU_TEMPERATURE_4=60 - FAN_SPEED_1=10 - FAN_SPEED_2=30 - FAN_SPEED_3=60 - FAN_SPEED_4=80 - DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE=false ```

(back to top)

## Paramètres Tous les paramètres sont optionnels car ils ont des valeurs par défaut. **Connexion iDRAC :** - `IDRAC_HOST` : peut être défini sur "local" ou l'adresse IP de votre iDRAC distant. **Défaut** : "local" - `IDRAC_USERNAME` : nécessaire uniquement pour un iDRAC distant. **Défaut** : "root" - `IDRAC_PASSWORD` : nécessaire uniquement pour un iDRAC distant. **Défaut** : "calvin" **Contrôle dynamique des ventilateurs :** - `CPU_TEMPERATURE_1` à `CPU_TEMPERATURE_4` : seuils de température en °C. **Défauts** : 30, 40, 50, 60 - `FAN_SPEED_1` à `FAN_SPEED_4` : vitesses des ventilateurs (0-100%) correspondant aux seuils. **Défauts** : 10, 30, 60, 80 - `CPU_TEMPERATURE_THRESHOLD` : seuil de sécurité au-delà duquel le mode Dell par défaut est activé. **Défaut** : 70°C **Autres paramètres :** - `CHECK_INTERVAL` : temps en secondes entre chaque vérification. **Défaut** : 60s - `DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE` : désactive la réponse de refroidissement Dell pour les cartes PCIe tierces. **Défaut** : false **Logique de fonctionnement :** - Si la température CPU ≤ `CPU_TEMPERATURE_1` → vitesse `FAN_SPEED_1` - Si `CPU_TEMPERATURE_1` < température ≤ `CPU_TEMPERATURE_2` → vitesse `FAN_SPEED_2` - Si `CPU_TEMPERATURE_2` < température ≤ `CPU_TEMPERATURE_3` → vitesse `FAN_SPEED_3` - Si `CPU_TEMPERATURE_3` < température ≤ `CPU_TEMPERATURE_4` → vitesse `FAN_SPEED_4` - Si température > `CPU_TEMPERATURE_4` → 100% - Si température > `CPU_TEMPERATURE_THRESHOLD` → mode Dell par défaut (sécurité)

(back to top)

## Dépannage Si votre serveur revient fréquemment au mode Dell par défaut : 1. **Vérifiez la Tcase de votre CPU** : Consultez le site Intel Ark pour connaître la température de boîtier maximum de votre CPU et définissez `CPU_TEMPERATURE_THRESHOLD` à une valeur légèrement inférieure. Exemple : pour un Intel Xeon E5-2630L v2 avec Tcase = 63°C, définir `CPU_TEMPERATURE_THRESHOLD=60`. 2. **Ajustez les seuils de température** : Modifiez `CPU_TEMPERATURE_1` à `CPU_TEMPERATURE_4` selon votre environnement. Exemple pour un environnement plus chaud : ``` CPU_TEMPERATURE_1=35 CPU_TEMPERATURE_2=45 CPU_TEMPERATURE_3=55 CPU_TEMPERATURE_4=65 ``` 3. **Augmentez les vitesses de ventilation** : Adaptez `FAN_SPEED_1` à `FAN_SPEED_4` pour améliorer le refroidissement : ``` FAN_SPEED_1=15 FAN_SPEED_2=35 FAN_SPEED_3=70 FAN_SPEED_4=90 ``` 4. **Si les problèmes persistent** : Il peut être nécessaire de remplacer la pâte thermique de votre serveur.

(back to top)