Beim Instandsetzen und Aufrüsten eines Kunden-Servers, das mit einem Supermicro-Mainboard bestückt ist, musste ein Lüfter mit Lagerschaden ausgewechselt werden. Leider macht der Gehäuse-Hersteller (dieses stammt nicht von Supermicro) keine Angaben welche das sind, auf den Original-Lüftern prangt schlicht nur ein Logo. Im Datenblatt ist ebenfalls nichts vermerkt.

Folglich haben wir einen neuen Lüfter, den wir an Lager hatten, verbaut. So weit, so gut. Allerdings meldete anschließend sowohl das BMC via IPMI als auch SuperDoctor 5 das mit dem Lüfter etwas nicht stimmt bzw. die Drehzahl am unteren Limit sei.

Der Hintergrund dieser Alarmierung ist recht einfach: Jedes Lüftermodell hat einen anderen Drehzahlbereich, dieser sagt je nach Beschaffenheit der Schaufeln und mehr nichts darüber aus, wie hoch der Luftstrom und damit einhergehend die Kühlleistung ist.

Damit man diese Fehlalarme nun los wird muss man die Grenzwerte via IPMI anpassen. Leider gibt es hierzu im Web-Interface des BMC keine Einstellmöglichkeit. Das bedeutet man muss mittels Kommandozeilen-Tool(s) ran. Unter Linux wäre das typischerweise ipmitool, unter Linux & Windows ipmiutil. Um letztgenanntes Tool geht es hier, da auf dem Server Windows installiert ist.

Aber wie ändert man die Werte nun? Hierzu gibt es einen sehr guten Beitrag unter

PYNUT.com – IPMIUtil to Change Supermicro Fan Thresholds

Zunächst muss man herausfinden, wie der entsprechende Lüfter-Anschluss intern bezeichnet wird:

ipmiutil sensor -N <IP> -U <User> -P <Pass> -c -g fan

Die Ausgabe sind dann z.B. so aus:

ipmiutil sensor version 3.19
Connecting to node  192.168.2.100
-- BMC version 1.63, IPMI version 2.0
 ID  | SDRType | Type            |SNum| Name             |Status| Reading
025f | Full    | Fan             | 41 | FAN1             | OK | 3100.00 RPM
02a2 | Full    | Fan             | 42 | FAN2             | Absent | 0.00 na
02e5 | Full    | Fan             | 43 | FAN3             | OK | 1200.00 RPM
0328 | Full    | Fan             | 44 | FAN4             | OK | 1200.00 RPM
036b | Full    | Fan             | 45 | FANA             | BelowCrit | 300.00 RPM
ipmiutil sensor, completed successfully

Hier sieht man schon für “FANA” den Status “BelowCrit”, also sozusagen viel zu langsam, selbst unter dem kritischen Wert. Für den nächsten Befehl ist der Wert von “SNum” relevant, hier die “45”.

Die Werte ändern geht dann mit

ipmiutil sensor -N <IP> -U <User> -P <Pass> -n 45 -u 300:200:100:25400:25400:25500

Die Zahlen entsprechen folgender Reihenfolge:

<Normal "Low">:<Low CT>:<Low Nr>:<Normal "High">:<High CT>:<High NR>

Die Werte selbst sind dann die minimale, normale wie auch maximale Drehzahl des Lüfters.

Die Abkürzungen stehen laut Doku für

  • NR = non-recoverable
  • CT = critical
  • NC = non-critical

Die Namen “Normal Low” bzw. “Normal High” habe ich mir hinzugedichtet, vermutlich soll dies den Norm-Drehzahlbereich abdecken. Die richtige Reihenfolge der Werte ist wichtig, da man sonst einen Fehler wie

Invalid threshold order in lo range

oder

ipmiutil sensor, invalid parameter

erhält.

Im Web-Interface des BMC bekommt man (zum Teil) die neuen Werte ebenfalls angezeigt:

Damit man diese sieht, muss man die Schaltfläche “Show Thresholds” anklicken.