ADMIN-Magazin

Server überwachen und managen mit IPMI

Die meisten Administratoren verwenden Monitoring-Tools, um ihre Server zu überwachen. Mit IPMI geht das auch, wenn auf ihnen gerade kein Betriebssystem läuft.

Justin Penney
Share this

Für Linux gibt es eine reiche Palette an Software, um Server-Systeme zu überwachen, aber die funktionieren eben nur, wenn das Betriebssystem auch läuft. Wenn es abgestürzt ist oder ein Einbrecher die Netzwerkfunktion lahmgelegt hat, sieht es damit schlecht aus.

Das Intelligent Platform Management Interface (IPMI) [1] ist dagegen eine Schnittstelle zur Überwachung der Server-Hardware, die unabhängig vom Betriebssystem ist. Wenn kein Betriebssystem läuft, kann der Administrator mit IPMI einen Server herunterfahren oder neu starten. Darüber hinaus verschafft es Zugang zu Hardware-Informationen und Einstellungen, die zum Teil nicht einmal über normale Management-Tools zugänglich sind.

Zu Beginn kann die komplexe IPMI-Konfiguration für den Administrator oft frustrierend sein. Es lohnt sich aber spätestens, wenn einem das IPMI-Setup zum ersten Mal die nächtliche Fahrt zum Serverraum erspart.

Derzeit befindet sich die IPMI-Spezifikation bei Version 2.0, aber häufig sind noch Geräte mit 1.5 im Einsatz. Außerdem gibt es Controller, die eine Mischung aus 1.5 und 2.0 implementiert haben. Meistens verfügen diese Controller, die oft mit IPMI v1.5/2.0 bezeichnet sind, stärkere Authentifizierung und unterstützen Serial Over LAN (SOL).

BMC

Im Zentrum von IPMI steht eine Hardware-Komponente namens Baseboard Management Controller (BMC). Er verarbeitet Informationen, die er von weiteren Controllern im Server-Gehäuse erhält und ist die zentrale Anlaufstelle für die Kommunikation mit der Außenwelt. Einige Barebones haben schon einen BMC eingebaut, bei anderen Boards kann der Administrator einer einen BMC über einen SO-DIMM- oder PCI-Slot oder ein Flachbandkabel nachrüsten.

Akronyme

Die IPMI-Welt ist voller wunderbarer Akronyme. Die wichtigsten erklärte die folgende Liste:

  • IPMI -- Intelligent Platform Management Interface
  • SOL -- Serial Over LAN
  • SMDC -- Server Management Daughter Card
  • BMC -- Baseboard Management Controller
  • KVM -- Keyboard Video Mouse

Die Verbindung zum Netzwerk-Interface fällt je nach Hersteller unterschiedlich aus. Einige Produkte haben einen LAN-Port, der direkt mit dem BMC verbunden ist, andere verwenden den Anschluss auf dem Mainboard. Ein dritter Typ verwendet den vorhandenen Port und extrahiert den IPMI-Traffic, während es den Rest an das Betriebssystem weiterleitet. Dieser Ansatz, auch »pass-through« genannt, erfordert die Unterstützung des Betriebssystems, der bei Linux je nach Treiber unterschiedlich ausfallen kann.

Konfiguration

Auch die anfängliche Konfiguration unterscheidet sich je nach IPMI-Hersteller stark voneinander. Im einfachsten Fall genügt es, eine IP-Adresse anzugeben, bei anderen muss man erst mehrere Firmware-Komponenten installieren und konfigurieren. Konsultieren Sie die Dokumentation Ihrer Server-Hardware, um die spezifischen Schritte herauszufinden. Das Open-Source-Projekt Open-IPMI [2] stellt einen IPMI-Treiber bereit, der mit einigen BMCs funktioniert.

Das Linux-Kommandozeilenprogramm IPMI-Tool hilft dabei, mit IPMI ausgestattete System zu konfigurieren und mit ihnen zu kommunizieren. Einige große Linux-Hersteller liefern IPMI-Tool-Pakete mit, der Quellcode ist auf der Website verfügbar [3]. Die in IPMI-Tool enthaltenen Befehle listet Tabelle 1 auf.

Tabelle 1: IPMI-Tool-Befehle
Aufruf Funktion
»sol activate« Starte eine Serial-over-LAN-Sitzung
»lan print« Zeige LAN-Informationen an
»chassis status« Zeige Power- und Chassis-Status
»power« Power-Kontrolle (on, off, cycle, reset, diag)
»sensor« Zeige Informationen der Umgebungs-Sensoren
»sensor get Sensorname« Hole Werte eines Sensors ab
»sel list« Zeige das System-Eventlog
»sel clear« Lösche System-Eventlog
»mc info« Zeige Informationen über BMC
»mc reset <warm|cold>« Setze BMC zurück

Wenn der Baseboard Management Controller lokal konfiguriert ist, können Sie mit IPMI-Tool die Netzwerkverbindung konfigurieren (Listing 1). Darin steckt die wahre Stärke von IPMI, denn solange der Server noch Standby-Strom hat, ist der BMC über dieses Interface erreichbar. Über den BMC kann der Administrator die Hauptstromversorgung kontrollieren, die BIOS-Einstellungen verändern, die Umgebungssensoren überwachen, auf die Konsole zugreifen und in machen Fällen sogar eine KVM-Verbindung (Keyboard Video Monitoring) aufbauen.

Einige Hersteller unterstützen virtuelle Medien, um USB-Floppies oder CD-Geräte zu emulieren. Das setzt normalerweise vom Hersteller geliefertes Utility auf Client-Seite voraus, das unter Linux nicht in jedem Fall unterstützt wird.

Listing 1: LAN-Interface konfigurieren
01 ipmitool -I open lan set Channel ipaddr IP-Adresse
02 ipmitool -I open lan set Channel netmask Netzmaske
03 ipmitool -I open lan set Channel defgw Default-Gateway

Die Netzwerkschnittstelle von IPMI 2.0 heißt wird von »ipmitool« »lanplus« genannt, in Version 1.5 heißt es »lan«. Die meisten aktuellen Management-Controller unterstützen 2.0 und somit »lanplus«. Wer IPMI 1.5 oder ein Gerät mit 1.5/2.0 hat, bei dem »lanplus« nicht funktioniert, sollte es mit »lan« probieren. Verbindungen zum BMC beginnen mit dem Netzwerk-Interface, gefolgt von der IP-Adresse und dem Benutzernamen. Im folgenden Beispiel weist die Option »-a« das »ipmitool« an, nach dem Passwort zu fragen:

ipmitool -I lanplus -U Username -a -H IP-Adresse

Ein einfacher Test besteht darin, den Power-Status des Servers abzufragen:

ipmitool -I lanplus -U admin -a -H 192.168.2.1 chassis power status
Password:
Chassis Power is off

Der Server ist also ausgeschaltet. Der folgende IPMI-Tool-Aufruf schaltet ihn ein:

ipmitool -I lanplus -U admin -a -H 192.168.2.1 chassis power on

Weitere Befehle von IPMI-Tool verrät Tabelle 1 und die Dokumentation des Programms.

Serial over LAN

Das Feature ,,Serial over LAN`` (SOL) verschafft dem Administrator den gleichen Zugriff auf den Server wie ein direkt angeschlossener Monitor und eine Tastatur. SOL setzt voraus, dass das BIOS, der Bootloader und das Betriebssystem richtig konfiguriert sind. Das BIOS sollte dazu einen Abschnitt enthalten wie Remote Console oder Serial Console. Das BMC-Handbuch verrät die nötigen Einstellungen. Ist das Feature eingeschaltet, sollten sie nach dem Einschalten des Servers alle POST-Nachrichten (Power-On Self-Test) sehen. Ebenso sollten Sie über die SOL-Konsole ins BIOS gelangen können. Achten Sie genau auf die Ausgabe, denn einige Tasten werden dabei neu zugewiesen, insbesondere die [Entf]- und die Funktionstasten F9 bis F12. Wenn normalerweise [Entf] ins BIOS-Setup führt, müssen Sie nun vielleicht F4 drücken. Achten Sie auf Formulierungen wie ,,on remote keyboard``, um die richtigen Tasten herauszufinden (Abbildung 1).

Abbildung 1: Die Ausgabe des BIOS-Power-on-Bildschirms.

Auch der Linux-Bootloader Grub muss erst entsprechend konfiguriert werden, bevor er mit Serial-over-LAN funktioniert. Abbildung 2 zeigt die Konfigurationsdatei »grub.conf« für eine serielle Konsole auf COM2.

Abbildung 2: Grub-Konfiguration für die Systemkonsole auf COM2/ttyS1.

Bei lokal angeschlossener Tastatur gelangt man in die Grub-Konsole, wenn man innerhalb des Timeout-Zeitraums von 10 Sekunden eine Taste drückt. Wenn ein Monitor angeschlossen ist, gibt Grub die Meldung »Press any key to continue« einmal pro Sekunde aus. Abbildung 3 zeigt ein Beispiel für das Grub-Menü in der SOL-Konsole.

Abbildung 3: Grub über Serial-over-LAN.

Denken Sie daran, dass fast alle Ausgaben während des Bootens auf der seriellen Konsole ausgegeben werden (Abbildung 4), nicht auf der Standard-Konsole. Wenn ein Monitor angeschlossen ist, erscheinen ein paar Meldungen, Sie können dann aber nichts eingeben, bis die Getty-Programme den Terminaldienst starten. Um das zum Beispiel für Debugging-Zwecke zu ändern, drücken Sie die [E]-Taste über dem Kernel-Eintrag im Boot-Menü. Dann können Sie das Schlüsselwort »console« entfernen und mit [B] weiter booten.

Abbildung 4: Kernel- und Init-Messages auf der SOL-Konsole.

 

Der letzte Schritt besteht darin, über die SOL-Verbindung einen Login-Prompt anzuzeigen. Die meisten Linux-Distributionen bringen »agetty« mit, das meistens für seriellen Konsolen verwendet wird. Einen neuen Agetty-Prozess zu starten, erfordert nur den folgenden Eintrag in »/etc/inittab«:

s0:2345:/sbin/agetty ttyS1 57600 vt100

Um Agetty abzugewöhnen, dass es auf ein Carrier-Signal wartet, verwenden Sie den Aufrufparameter »-L«. Wenn Sie dann noch »ttyS1« in »/etc/securetty« eintragen, können Sie sich auch als Benutzer Root einloggen. Diese Datei gibt an, welche Terminals als sicher genug erachtet werden, damit sich der Admnistrator einloggen darf.

Führen Sie als Root noch »init -q« aus, lädt Init seine Konfigurationsdatei neu ein und startet anschließend Agetty. Nun können Sie eine SOL-Sitzung starten und sich auf dem Server einloggen:

ipmitool -I lanplus -U admin -a -H 192.168.2.1 sol activate

Wenn ein Server kein IPMI unterstützt lässt sich ein Teil der hier vorgestellten Funktionalität auch auf anderem Weg erreichen. Zum Beispiel sind Power-Control und serielle Konsole über externe Hardware nachrüstbar. Netzwerkfähige Steckdosenleisten wie zum Beispiel von APC und Server Technologies erlauben es, die Server übers Netz aus- und einzuschalten. Serielle-Konsolen-Server wie von Avocent und Open Gear stellen die lokale serielle Verbindung eines Servers übers Netzwerk bereit. Auf Linux-Seite ist die Konfiguration ähnlich zu der hier vorgestellten Lösung. Einige Mainboards erlauben sogar die Umleitung des BIOS.

Fazit

Die Basiskonfiguration von IPMI hängt stark von der jeweiligen Server-Hardware ab und erfordert einen tieferen Blick in das Systemhandbuch. Auf Linux-Seite machen IPMI-Tool und OpenIPMI das dafür das Admin-Leben relativ einfach. Wer etwas Zeit in ein funktionierendes IPMI-Setup investiert, kann sich damit später viel Ärger und nächtliche Fahrten ins Rechenzentrum sparen, wenn einmal etwas schief läuft. Die Fähigkeit, aus der Ferne die Boot-Nachrichten von BIOS und Kernel zu verfolgen, ist beim Troubleshooting eines ausgefallenen Servers unbezahlbar. Ein Nagios-Plugin erlaubt es dem Administrator, die IPMI-Daten über die Nagios-Monitoring-Infrastruktur zu überwachen [5] . (ofr)


Infos

[1] Intelligent Platform Management Interface Specification: [http://download.intel.com/design/servers/ipmi/IPMIv2_0rev1_0.pdf]
[2] OpenIPMI: [http://openipmi.sourceforge.net/]
[3] IPMItool: [http://ipmitool.sourceforge.net/]
[4] IPMI-Grundlagen: [http://www.thomas-krenn.com/de/wiki/IPMI_Grundlagen]
[5] IPMI-Nagios-Plugin: [http://www.thomas-krenn.com/de/wiki/IPMI_Sensor_Monitoring_Plugin]

Kommentare

Kommentar hinzufügen

CAPTCHA
Diese Frage hat den Zweck zu testen, ob Sie ein menschlicher Benutzer sind und um automatisierten Spam vorzubeugen.