IPMI Sensor Thresholds anpassen
IPMI Sensoren der Sensor Klasse Threshold liefern einen analogen Messwert (z.B. aktuelle Temperatur) mit zugehörigen Unter-/Obergrenzen. Bei Bedarf können Sie die vordefinierten Grenzwerte (Thresholds) an Ihre individuellen Bedürfnisse anpassen. Die angepassten Werte werden sofort gültig, werden allerdings nicht bei allen Systemen im SDR permanent gespeichert. Wenn Sie den Server vom Stromnetz trennen und danach wieder anschließen und hochfahren, müssen Sie bei solchen Systemen die Anpassungen der Grenzwerte erneut vornehmen (z.B. über ein Init-Skript unter Linux).[1] Wir zeigen Ihnen in diesem Artikel die Anpassung der Thresholds am Beispiel von ipmi-sensors-config aus dem FreeIPMI Paket und ipmitool. Wir verwenden dabei einen Intel SR2500 Server und passen den Sensor Serverboard Temp an.
Systeme mit permanenter Speicherung von angepassten Thresholds
Bei folgendem System haben wir eine permanente Speicherung von angepassten Werten beobachtet:
- Supermicro X9SCM-F Mainboard (getestet mit IPMI Firmware v1.30, Anpassung des Sensors FAN 1)
- Supermicro X11SSH-F Mainboard (getestet mit IPMI Firmware v1.25, Anpassung des Sensors FAN4)
Wie in der Einleitung geschrieben, findet eine solche permanente Speicherung im SDR aber nicht bei allen Systemen statt.
Grenzwerte
IPMI sieht bis zu sechs mögliche Grenzwerte vor. Diese sind:
- unr: Upper Non-Recoverable
- ucr: Upper Critical
- unc: Upper Non-Critical
- lnc: Lower Non-Critical
- lcr: Lower Critical
- lnr: Lower Non-Recoverable
Einschränkungen
Sie können nur Grenzwerte verändern, die ursprünglich auch vorhanden sind. Grenzwerte, die vom Hersteller nicht vorgesehen sind können auf diese Weise nicht nachgetragen werden. IPMI sieht explizit vor, nur bestimmte Grenzwerte für Threshold-Sensoren zu nutzen. Genaue Infos finden Sie dazu in der "Settable Threshold Mask" und "Readable Threshold Mask" in der IPMI Spezifikation.[2]
Bei manchen Sensoren können darüber hinaus nur bestimmte Werte gesetzt werden. So erlauben etwa die Sensoren zur Messung der Lüfterdrehzahlen (z.B. Fan1) eines Supermicro X8DT3-F Mainboards nur Werte im Abstand von 135 RPMs (z.B. 270/405/540/675/...).
ipmi-sensors-config (FreeIPMI)
FreeIPMI bietet das Tool ipmi-sensors-config zur Anpassung der Grenzwerte.
Grenzwerte auslesen
Mit der Option -L können Sie einzelnen Sensoren auflisten. ipmi-sensors-config fügt den Sensornamen dabei eine Nummer hinzu, da bei manchen Servern gleiche Sensornamen für mehrere Sensoren verwendet werden. Mit -o -S können Sie die Grenzwerte anschließend auslesen:
user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -l admin -u admin -p **** -L 1_BB_+1.2V_Vtt 2_BB_+1.5V_AUX 3_BB_+1.5V 4_BB_+1.8V 5_BB_+3.3V 6_BB_+3.3V_STB 7_BB_+1.5V_ESB 8_BB_+5V 9_BB_+12V_AUX 10_BB_+0.9V 11_Serverboard_Temp [...] user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -u admin -p **** -l ADMIN -o -S 11_Serverboard_Temp Section 11_Serverboard_Temp ## Possible values: Yes/No Enable_All_Event_Messages Yes ## Possible values: Yes/No Enable_Scanning_On_This_Sensor Yes ## Possible values: Yes/No Enable_Assertion_Event_Lower_Non_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Assertion_Event_Lower_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Assertion_Event_Upper_Non_Critical_Going_High Yes ## Possible values: Yes/No Enable_Assertion_Event_Upper_Critical_Going_High Yes ## Possible values: Yes/No Enable_Deassertion_Event_Lower_Non_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Deassertion_Event_Lower_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Deassertion_Event_Upper_Non_Critical_Going_High Yes ## Possible values: Yes/No Enable_Deassertion_Event_Upper_Critical_Going_High Yes ## Give valid input for sensor type = Temperature; units = degrees C Lower_Non_Critical_Threshold 10.000000 ## Give valid input for sensor type = Temperature; units = degrees C Lower_Critical_Threshold 5.000000 ## Give valid input for sensor type = Temperature; units = degrees C Upper_Non_Critical_Threshold 61.000000 ## Give valid input for sensor type = Temperature; units = degrees C Upper_Critical_Threshold 66.000000 ## Give valid input for sensor type = Temperature; units = degrees C; 'None' to not use hysteresis Positive_Going_Threshold_Hysteresis 2.000000 ## Give valid input for sensor type = Temperature; units = degrees C; 'None' to not use hysteresis Negative_Going_Threshold_Hysteresis 2.000000 EndSection user@ubuntu-10-10:~$
Grenzwerte anpassen
Mit -c -e können Sie einzelne Grenzwerte anpassen:
user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -u admin -p **** -l ADMIN -c -e 11_Serverboard_Temp:Upper_Non_Critical_Threshold=51 user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -u admin -p **** -l ADMIN -c -e 11_Serverboard_Temp:Upper_Critical_Threshold=56 user@ubuntu-10-10:~$
Wenn Sie mehrere Werte anpassen möchten, können Sie auch die gesamten Grenzwerte in eine Datei auslesen, diese bearbeiten, und anschließend hochladen:
user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -u admin -p **** -l ADMIN --checkout -n sensors.orig user@ubuntu-10-10:~$ cp sensors.orig sensors.new user@ubuntu-10-10:~$ vi sensors.new user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -u admin -p **** -l ADMIN --commit -n sensors.new user@ubuntu-10-10:~$
Grenzwerte überprüfen
Mit -o -S lesen Sie die Grenzwerte nach der Anpassung wieder aus:
user@ubuntu-10-10:~$ ipmi-sensors-config -h 192.168.1.211 -u admin -p **** -l ADMIN -o -S 11_Serverboard_Temp Section 11_Serverboard_Temp ## Possible values: Yes/No Enable_All_Event_Messages Yes ## Possible values: Yes/No Enable_Scanning_On_This_Sensor Yes ## Possible values: Yes/No Enable_Assertion_Event_Lower_Non_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Assertion_Event_Lower_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Assertion_Event_Upper_Non_Critical_Going_High Yes ## Possible values: Yes/No Enable_Assertion_Event_Upper_Critical_Going_High Yes ## Possible values: Yes/No Enable_Deassertion_Event_Lower_Non_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Deassertion_Event_Lower_Critical_Going_Low Yes ## Possible values: Yes/No Enable_Deassertion_Event_Upper_Non_Critical_Going_High Yes ## Possible values: Yes/No Enable_Deassertion_Event_Upper_Critical_Going_High Yes ## Give valid input for sensor type = Temperature; units = degrees C Lower_Non_Critical_Threshold 10.000000 ## Give valid input for sensor type = Temperature; units = degrees C Lower_Critical_Threshold 5.000000 ## Give valid input for sensor type = Temperature; units = degrees C Upper_Non_Critical_Threshold 51.000000 ## Give valid input for sensor type = Temperature; units = degrees C Upper_Critical_Threshold 56.000000 ## Give valid input for sensor type = Temperature; units = degrees C; 'None' to not use hysteresis Positive_Going_Threshold_Hysteresis 2.000000 ## Give valid input for sensor type = Temperature; units = degrees C; 'None' to not use hysteresis Negative_Going_Threshold_Hysteresis 2.000000 EndSection user@ubuntu-10-10:~$
ipmitool
ipmitool ermöglicht ebenfalls die Anpassung von Grenzwerten. Allerdings nutzt ipmitool zur Identifikation rein den Sensornamen, was bei Servern mit mehreren Sensoren mit dem gleichen Namen zu Problemen führen kann.
Grenzwerte auslesen
Mit ipmitool sensor get SENSORNAME
lesen Sie die aktuellen Grenzwerte des Sensors aus:
user@ubuntu-10-10:~$ ipmitool -I lan -H 192.168.1.211 -U admin -P **** sensor get "Serverboard Temp" Locating sensor record... Sensor ID : Serverboard Temp (0x30) Entity ID : 7.1 Sensor Type (Analog) : Temperature Sensor Reading : 32 (+/- 1.500) degrees C Status : ok Lower Non-Recoverable : na Lower Critical : 5.000 Lower Non-Critical : 10.000 Upper Non-Critical : 61.000 Upper Critical : 66.000 Upper Non-Recoverable : na Assertion Events : Assertions Enabled : lnc- lcr- unc+ ucr+ Deassertions Enabled : lnc- lcr- unc+ ucr+ user@ubuntu-10-10:~$
Grenzwerte anpassen
user@ubuntu-10-10:~$ ipmitool -I lan -H 192.168.1.211 -U admin -P **** sensor thresh "Serverboard Temp" unc 51 Locating sensor record 'Serverboard Temp'... Setting sensor "Serverboard Temp" Upper Non-Critical threshold to 51.000 user@ubuntu-10-10:~$ ipmitool -I lan -H 192.168.1.211 -U admin -P **** sensor thresh "Serverboard Temp" ucr 56 Locating sensor record 'Serverboard Temp'... Setting sensor "Serverboard Temp" Upper Critical threshold to 56.000 user@ubuntu-10-10:~$
Grenzwerte überprüfen
Die neuen Grenzwerte sind nun gültig, wie ipmitool sensor get "Serverboard Temp"
zeigt:
user@ubuntu-10-10:~$ ipmitool -I lan -H 192.168.1.211 -U admin -P **** sensor get "Serverboard Temp" Locating sensor record... Sensor ID : Serverboard Temp (0x30) Entity ID : 7.1 Sensor Type (Analog) : Temperature Sensor Reading : 33 (+/- 1.500) degrees C Status : ok Lower Non-Recoverable : na Lower Critical : 5.000 Lower Non-Critical : 10.000 Upper Non-Critical : 51.000 Upper Critical : 56.000 Upper Non-Recoverable : na Assertion Events : Assertions Enabled : lnc- lcr- unc+ ucr+ Deassertions Enabled : lnc- lcr- unc+ ucr+ user@ubuntu-10-10:~$
Im Sensor Data Record Repository (SDR) sind weiterhin die ursprünglichen Grenzwerte hinterlegt. Wenn Sie den Server vom Stromnetz trennen und erneut anschließen, gelten daher wieder die ursprünglichen Grenzwerte.
user@ubuntu-10-10:~$ ipmitool -I lan -H 192.168.1.211 -U admin -P **** sdr get "Serverboard Temp" Sensor ID : Serverboard Temp (0x30) Entity ID : 7.1 (System Board) Sensor Type (Analog) : Temperature Sensor Reading : 33 (+/- 1.500) degrees C Status : ok Nominal Reading : 38.000 Normal Minimum : 20.000 Normal Maximum : 55.000 Upper critical : 66.000 Upper non-critical : 61.000 Lower critical : 5.000 Lower non-critical : 10.000 Positive Hysteresis : 2.000 Negative Hysteresis : 2.000 Minimum sensor range : Unspecified Maximum sensor range : Unspecified Event Message Control : Per-threshold Readable Thresholds : lcr lnc unc ucr Settable Thresholds : lcr lnc unc ucr Threshold Read Mask : lcr lnc unc ucr Assertion Events : Assertions Enabled : lnc- lcr- unc+ ucr+ Deassertions Enabled : lnc- lcr- unc+ ucr+ user@ubuntu-10-10:~$
Einzelnachweise
- ↑ Some sensor configuration may not be stored in non-volatile memory, so users may wish to veryify that new configurations exist after system reboots or to always run ipmi-sensors-config during system initialization. (Manpage ipmi-sensors-config)
- ↑ http://download.intel.com/design/servers/ipmi/IPMI2_0E4_Markup_061209.pdf auf Seite 521 (Seite 549 im PDF)
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|