IPMI-Technologieübersicht


Um den Status der Serverplattform remote zu verwalten, verwenden Systemadministratoren und Ingenieure die IPMI-Technologie, die ihre Lebensdauer erheblich vereinfacht. Jetzt müssen Sie nicht mehr jedes Mal zum Server laufen, um die Reset-Taste zu drücken. Sie können auf kritische Probleme rechtzeitig reagieren, während Sie zu Hause auf einem bequemen Stuhl sitzen. Dieser Artikel behandelt die grundlegenden Komponenten von IPMI und die Details der Funktionsweise der Technologie.

Was ist IPMI?


Das Akronym IPMI steht für Intelligent Platform Management Interface. Über IPMI können Sie eine Remoteverbindung zum Server herstellen und dessen Betrieb verwalten:

  • Überwachen Sie den physischen Zustand der Geräte, indem Sie beispielsweise die Temperatur einzelner Systemkomponenten, die Spannungspegel und die Lüfterdrehzahl überprüfen
  • Stellen Sie den Server im automatischen oder manuellen Modus wieder her (Neustart des Remote-Systems, Ein- / Ausschalten, Laden von ISO-Images und Aktualisieren der Software).
  • Peripheriegeräte verwalten
  • Führen Sie ein Ereignisprotokoll
  • Speichern Sie Informationen zu den verwendeten Geräten

Angenommen, ein Techniker konfiguriert das Netzwerk auf dem Server neu, macht einen Konfigurationsfehler und verliert den Zugriff über SSH. Wie kann ich den Server jetzt "erreichen"? Sie können eine Verbindung über IPMI herstellen und die Einstellungen ändern.

IPMI ist gut, da die oben genannten Funktionen unabhängig vom Prozessor, BIOS oder Betriebssystem der verwalteten Plattform verfügbar sind. Sie können beispielsweise den Server remote neu starten, wenn das Betriebssystem einfriert, oder im Systemereignisprotokoll nach dem Grund für den CPU-Fehler suchen. Sie können sogar einen ausgeschalteten Server verwalten - es reicht aus, wenn der Server mit dem Stromnetz verbunden ist.

Nachdem der Server bereitgestellt und mit dem Netzwerk verbunden wurde, konfigurieren die Selectel-Ingenieure das BIOS und das IPMI. Anschließend können Sie den lauten Serverraum verlassen und die Geräte ferngesteuert konfigurieren. Nach Abschluss der Ersteinrichtung können Selectel-Clients dedizierte und beliebige Konfigurationsserver über IPMI verwalten.

Historischer Hintergrund


Die erste Version der IPMI v1.0-Spezifikation wurde 1998 von Intel, Dell, NEC und Hewlett-Packard gemeinsam entwickelt. In der Praxis wurden Schwachstellen und Schwachstellen entdeckt, die in nachfolgenden Versionen von IPMI v1.5 und v2.0 behoben wurden.

Die IPMI-Spezifikation standardisiert die Kommunikationsschnittstelle und keine spezifische Implementierung in der Hardware, sodass für IPMI keine speziellen patentierten Geräte und bestimmte Mikrocontroller erforderlich sind. Die Hersteller halten sich an die Spezifikationen und entwickeln ihre eigenen IPMI-Geräte, die in Serverplattformen eingebettet sind:
HerstellerIPMI-basierte Technologie
CiscoCisco IMC (Integrated Management Controller)
DelliDRAC (Integrierte Dell Remote Access Card)
HPiLO (Integrated Lights-Out)
IbmIMM (Integrated Management Module)
LenovoIMM (Integrated Management Module)
SupermicroSIM (Supermicro Intelligent Management)
Unternehmen legen ihre Preise für die bereitgestellte Technologie fest. Wenn die Kosten für die IPMI-Implementierung steigen, steigt der Servermietpreis, da dies direkt von den Kosten für Verbrauchsmaterialien abhängt.

Die Lösungen der Hersteller unterscheiden sich untereinander:

  • Sichtbarkeit von Gerätestatusinformationen
  • Ein eindeutiger Satz von Anwendungen zum Wiederherstellen des Serverzustands, wenn Komponenten ausfallen
  • Die Möglichkeit, Statistiken über alle Komponenten des Servers zu erfassen, einschließlich der über Erweiterungskarten PCI, NVM usw. verbundenen.
  • Einsatz von Technologie nicht nur in Serverhardware, sondern auch bei normalen Computern über PCI-Express-Erweiterungskarten

Für eine komfortable Arbeit mit der Remote-Konsole und die rechtzeitige Benachrichtigung über Probleme reicht die grundlegende IPMI-Funktionalität aus.

Obwohl Hersteller ein modifiziertes und überarbeitetes IPMI bereitstellen, bleibt die Implementierung seiner Architektur ähnlich. Mal sehen, woraus die Technologie besteht, basierend auf der offiziellen Spezifikation von Intel.

Die Grundkomponenten eines IPMI


Controller


Im Zentrum der Architektur steht das „Gehirn“ von IPMI, dem BMC-Mikrocontroller (Baseboard Management Controller). Dadurch erfolgt die Remote-Serversteuerung. Tatsächlich ist BMC ein separater Computer mit Software und Netzwerkschnittstelle, der mit dem Motherboard verlötet oder als Erweiterungskarte über den PCI-Verwaltungsbus verbunden ist.


BMC wird über die Standby-Spannung des Motherboards mit Strom versorgt, dh es funktioniert immer, unabhängig vom Status des Servers.

Sie können zusätzliche Management Controller (MCs) mit dem BMC verbinden, um die Funktionen der Basisverwaltung zu erweitern. Während das Hauptsystem beispielsweise von BMC-Funktionen gesteuert wird, werden MCs angeschlossen, um verschiedene Subsysteme zu überwachen: redundante Netzteile, RAID-Laufwerke, Peripheriegeräte.

MCs werden mit eigenständigen Boards geliefert, die vom zentralen BMC getrennt sind. Deshalb werden sie auch als Satelliten-Controller bezeichnet. Es kann mehrere zusätzliche Controller geben, aber der zentrale BMC ist einer.

Die Steuerungen sind über die IPMB-Schnittstelle (Intelligent Platform Management Bus - Intelligent Platform Management Bus) mit dem BMC verbunden. IPMB ist ein auf I2C (Inter-Integrated Circuit) basierender Bus, über den der BMC Steuerbefehle an verschiedene Teile der Architektur umleitet:

  • Kommuniziert mit zusätzlichen Controllern (MCs)
  • Liest Sensordaten (Sensoren)
  • Zugriff auf nichtflüchtigen Speicher

Die IPMI-Architektur ist so implementiert, dass der Remoteadministrator keinen direkten Zugriff auf Systemkomponenten hat. Um beispielsweise Daten von Sensoren zu empfangen, sendet der Remote-Administrator einen Befehl an das BMC, und das BMC verweist wiederum auf die Sensoren.

Zusätzlich zum Senden von Befehlen an das BMC können Sie die automatische Ausführung von Aktionen durch die Steuerung mithilfe der folgenden Mechanismen konfigurieren:
PEF (Platform Event Filtering)Das BMC speichert eine Ereignistabelle mit Informationen darüber, auf welche Ereignisse reagiert werden soll und welche Maßnahmen ergriffen werden müssen. Wenn der BMC eine Ereignismeldung empfängt, vergleicht er die Daten mit der Tabelle und wählt aus, wie auf das Ereignis reagiert werden soll.
Die Reaktion umfasst Aktionen wie Herunterfahren, Neustarten des Systems und Generieren einer Warnung
Watchdog-TimerDer Timer ist so konfiguriert, dass er nach einem bestimmten Zeitraum eine Aktion ausführt. Zu den Aktionen gehören Herunterfahren, Neustarten des Servers und Unterbrechen von Prozessen. Wenn Sie den Timeout-Wert auf 0 setzen, wird die Aktion sofort ausgeführt.
Abhängig von der Implementierung kann Watchdog das System einmal in einem bestimmten Zeitintervall nach dem Status abfragen. Wenn das System nicht reagiert (z. B. wenn es hängt), wird eine Aktion gestartet
Firmware-FirewallEinige auf einem eigenständigen Server implementierte BMC-Aktionen können den Betrieb modularer Plattformen (z. B. eines Blade-Servers) stören. Um mögliche Probleme zu vermeiden, ermöglicht die Firewall dem BMC, Einstellungen, IPMI-Befehle und Schreibvorgänge über die Systemschnittstelle zu blockieren.
Die Firewall enthält auch eine Reihe von Befehlen, mit denen Sie herausfinden können, welche Befehle und Verwaltungsfunktionen für eine bestimmte Plattform verfügbar sind

Nichtflüchtige Lagerung


Nichtflüchtiger Speicher bleibt auch dann verfügbar, wenn die Server-CPU beispielsweise über ein lokales Netzwerk ausfällt. besteht aus drei Bereichen:

  • Systemereignisprotokoll (SEL) - Systemereignisprotokoll
  • Sensor Data Record (SDR) Repository - Ein Repository, in dem Sensordaten gespeichert werden
  • Informationen zu vor Ort austauschbaren Einheiten (FRUs) - Inventarinformationen zu Systemmodulen

Systemmodule generieren (Ereignisgenerator) oder empfangen (Ereignisempfänger) Ereignisse. MCs fungieren als Ereignisgeneratoren, und BMCs in einer Architektur können beide Rollen spielen. Der BMC empfängt Ereignismeldungen über die Systemschnittstelle und IPMB und protokolliert sie dann im Systemereignisprotokoll (SEL).

Für die Implementierung von SEL gelten verbindliche Anforderungen:

  • SEL speichert mindestens 16 Ereignisse im Speicher
  • Auf in SEL gespeicherte Informationen kann unabhängig vom BMC-Zugriff und dem Status der verwalteten Plattform zugegriffen werden

IPMI-Befehle lesen und löschen SEL. Da der SEL-Speicher begrenzt ist, muss das Protokoll regelmäßig überprüft und bereinigt werden, damit neue Ereignisse aufgezeichnet werden. In den BMC-Einstellungen können Sie die automatische SEL-Reinigung konfigurieren. Die automatische Bereinigung auf verschiedenen Plattformen erfolgt auf unterschiedliche Weise: Löschen alter Datensätze, um neue zu füllen, oder Löschen der gesamten Geschichte.

Die Ereignismeldung enthält Informationen aus den Bereichen SDR-Repository und FRU-Informationen.

SDR-Aufzeichnungen sind Daten über die Art und Anzahl der Sensoren, ihre Fähigkeit, Ereignisse zu generieren, und Arten von Messwerten. SDRs enthalten auch Aufzeichnungen über die Anzahl und den Typ der mit IPMB verbundenen Geräte. SDR-Datensätze werden in einem Speicherbereich gespeichert, der als SDR-Repository (Sensor Data Records Repository) bezeichnet wird.

FRU-Datensätze enthalten Informationen zu Seriennummern und Teilemodellen verschiedener Systemmodule - Prozessor, Speicherkarte, E / A-Karte, Controller.

FRU-Informationen können über MC (IPMI-Befehle) oder über den Zugriff auf nichtflüchtige Speicherchips SEEPROM (Serial Electrically Erasable Programmable Read Only Memory) bereitgestellt werden, die über den Private Management Bus verbunden sind. Die Controller kommunizieren über diesen Bus über I2C-Befehle auf niedriger Ebene mit Geräten, die keine IPMI-Befehle unterstützen.

Praktische Anwendung


Angenommen, ein Client beschwert sich über das Einfrieren des Servers, aber in den Protokollen des Betriebssystems ist alles in Ordnung. Wir sehen uns SEL an - wir sehen Fehler in einem der RAM-Steckplätze, die die Informationen über den Steckplatz anzeigen, in dem er sich befindet. Ändern - Der Server beginnt wie eine Uhr zu arbeiten.


Oben haben wir die Grundmodule der IPMI-Architektur untersucht. Schauen wir uns nun die Struktur der übertragenen Befehle an und sehen, welche Schnittstellen für die Remoteverbindung verwendet werden.

IPMI-Befehlsstruktur


IPMI sendet Anforderungs-Antwort-Nachrichten. Anfragen sind Befehle. Befehle initiieren Aktionen und setzen Werte. Das Request-Response-Format ermöglicht die gleichzeitige Kommunikation mehrerer Controller auf demselben Bus.

IPMI-Nachrichten enthalten einen grundlegenden Satz von Feldern, die allen Befehlen gemeinsam sind:

  • Die Netzwerkfunktion (NetFn) weist dem Befehl den Wert des Clusters zu, zu dem der Befehl gehört (Gehäusebefehle , Ereignisse, Speicher usw.).
  • Das Feld Anforderungs- / Antwortkennung wird benötigt, um zwischen Anforderungen und Antworten zu unterscheiden
  • Anforderer-ID - Informationen zur Quelle der Nachricht. Für IPMB enthalten diese Informationen beispielsweise die LUN (Logical Unit Number) des Geräts
  • Die ID des Antwortenden adressiert die Anfrage an den gewünschten Antwortenden
  • Befehl - einzigartig innerhalb des Netzwerkfunktionsteams
  • Daten - zusätzliche Parameter (z. B. in der Antwort zurückgegebene Daten)

Darüber hinaus übergibt die Antwort immer den Abschlusscode, der das Ergebnis des Befehls meldet. Wenn während der Ausführung der Anforderung ein Fehler auftritt, wird ein dem Ereignis entsprechender Code ungleich Null gesendet.

Die Kanäle, über die Nachrichten übertragen werden, können mit den entsprechenden Schnittstellen in drei Kategorien unterteilt werden:

  • BMC - MCs, Sensoren, Speicher (IPMB)
  • BMC - Managed Platform (Systemschnittstelle)
  • BMC - Remote Administrator (LAN, serielle Schnittstelle)

In diesem Modell kann BMC als ein Switch betrachtet werden, der Systemschnittstellen miteinander verbindet (in der Terminologie der Spezifikation - Bridging):

  • Seriell ↔ IPMB
  • Seriell ↔ Systemschnittstelle
  • LAN ↔ IPMB
  • LAN ↔ Systemschnittstelle
  • Seriell ↔ PCI-Verwaltungsbus
  • LAN ↔ PCI-Verwaltungsbus
  • Andere Kombinationen, einschließlich Serial ↔ LAN

Bei der Bereitstellung über verschiedene Architekturschnittstellen wird der Basissatz von Feldern durch Kanalnummern und Frames ergänzt. Das IPMB-Protokoll fügt beispielsweise Adressfelder und Felder hinzu, um die Integrität der übertragenen Daten zu überprüfen, und das LAN kapselt IPMI-Befehle in UDP / IP-Paketen.

RAS-Schnittstellen


In der ersten Version von IPMI war die Remote-Konsole über eine serielle Schnittstelle (Serial Interface) mit dem BMC-Modul verbunden. Die IPMI v2.0-Spezifikation basiert auf der Verwendung einer Netzwerkschnittstelle (LAN-Schnittstelle).

Die LAN-Schnittstelle wird über einen dedizierten BMC-Netzwerkport mit seiner IP-Adresse bereitgestellt. Bei der Übertragung von IPMI-Nachrichten über LAN gibt es mehrere Kapselungsstufen:

  • IPMI-Nachrichten werden in IPMI-Sitzungspaketen generiert (später in diesem Artikel werden wir uns die Bildung von IPMI-Sitzungen genauer ansehen).
  • IPMI-Sitzungspakete werden mithilfe von RMCP (Remote Management Control Protocol) gekapselt.
  • RMCP-Pakete bilden sich in UDP-Datagrammen
  • Ethernet-Frames werden hinzugefügt


Die serielle Schnittstelle zum Anschließen einer Remote-Konsole an BMC wird nicht mehr verwendet, wird jedoch zur Implementierung von zwei Funktionen benötigt:

  • Serielle Portfreigabe
  • Serial-over-LAN (SoL)

Serielle Portfreigabe ist die Möglichkeit, einen gemeinsamen seriellen Anschluss zwischen seriellen BMCs und einem verwalteten System zu verwenden. In der Regel wird die serielle Portfreigabe verwendet, um die BIOS-Konsolenumleitung zu implementieren, dh die BIOS-Konsole zum BMC-Modul umzuleiten.

Serial-over-LAN wird benötigt, um mit Systemkomponenten zu interagieren, die nur eine serielle Kommunikationsschnittstelle verstehen. Sie können Befehle auch von der Serverkonsole direkt an die Servergeräte (Chips, Karten, Festplatten usw.) senden. SoL ist so implementiert, dass es in Verbindung mit der Funktion zur gemeinsamen Nutzung serieller Ports funktioniert.

Sitzung und Authentifizierung


Bei LAN und serieller Schnittstelle geht dem Beginn der Übertragung von IPMI-Nachrichten der Aufbau einer Sitzung voraus, in der IPMI-Sitzungsdatenpakete generiert werden.

Der Sitzungsaufbau ist die Authentifizierung eines bestimmten Benutzers. Die Sitzung muss vor dem Senden von IPMI-Nachrichten gemäß dem folgenden Algorithmus aktiviert werden:


  1. Die Remote-Konsole fordert Authentifizierungsdaten von BMC an
  2. BMC sendet eine Antwort zu unterstützten Authentifizierungstypen (keine, Kennwort-, MD2- und MD5-Algorithmen usw.).
  3. Die Remote-Konsole sendet einen Befehl über den ausgewählten Authentifizierungstyp und sendet die Benutzeranmeldung
  4. Wenn der Benutzer über Kanalzugriffsrechte verfügt, sendet der BMC eine Antwort mit der Sitzungs-ID. Dank der Zuweisung der ID können mehrere Sitzungen gleichzeitig auf einem Kanal arbeiten (gemäß den Anforderungen der Spezifikation - mindestens vier Sitzungen gleichzeitig).
  5. Die Remote-Konsole sendet eine Sitzungsaktivierungsanforderung. Die Anforderung enthält eine Sitzungs-ID und Authentifizierungsinformationen (Benutzername, Kennwort, Schlüssel - abhängig vom ausgewählten Authentifizierungstyp).
  6. BMC überprüft Benutzerinformationen, genehmigt die Sitzungs-ID und sendet eine Aktivierungsantwort

Sitzungen werden automatisch beendet, wenn während des angegebenen Intervalls keine Aktion ausgeführt wird oder wenn die Verbindung getrennt wird.

Der Zugriff auf das BMC kann blockiert werden, indem mehrere Anforderungen für die Sitzungsaktivierung gleichzeitig gesendet werden. Anschließend werden alle Ressourcen zum Verfolgen von Sitzungen verwendet, für die eine Aktivierung erforderlich ist. Um einen möglichen Angriff zu verhindern, wird empfohlen, den LRU-Algorithmus (Last Recent Used) in der BMC-Implementierung zu verwenden. Der Algorithmus bestätigt eine Sitzungs-ID für die früheste Sitzungsaktivierungsanforderung. Beispielsweise wird eine Remote-Konsole über einen Browser in einer noVNC-Sitzung gestartet. Wenn Sie mehrere Registerkarten mit laufenden Sitzungen öffnen, ist die Texteingabe auf der frühesten geöffneten Registerkarte verfügbar.

Wenn IPMI nicht mehr verfügbar ist


IPMI hilft bei der Wiederherstellung des Serverzustands, wenn es abstürzt. Es kann jedoch vorkommen, dass das Fernbedienungssystem nicht mehr verfügbar ist. IPMI-Störungen können in vier Kategorien unterteilt werden:

  • Auf Netzwerkebene. Defekte Anschlüsse, nicht funktionierende Geräte, Kabelfehler, schlecht gekräuseltes Twisted Pair
  • Auf Software-Ebene. Systemfehler, BMC-Modul hängen, Modul-Firmware muss aktualisiert werden
  • Auf Hardwareebene. Überhitzung, Ausfall kritischer Komponenten (Speicher, Prozessor), Fehler in der Systemarchitektur
  • Auf der Ernährungsebene. Probleme mit BMC-Stromausfall oder Server-Stromversorgung

Diese Faktoren wirken sich sowohl auf den Betrieb von IPMI als auch auf den Server selbst aus. Das BMC-Modul ist ein serverunabhängiger Chip, und ein Ausfall dieses Mikrocontrollers weist in 90% der Fälle auf einen Serverausfall hin.

IPMI in der Praxis


Sie können den Server über IPMI über einen Webbrowser, von Herstellern bereitgestellte Dienstprogramme und Open Source-Dienstprogramme verwalten.

Jede IPMI-Implementierung verfügt über eine Webschnittstelle, das Zugriffsprinzip bleibt jedoch dasselbe:

  1. Geben Sie die IP-Adresse des BMC-Ports in die Adressleiste ein
  2. Geben Sie Benutzername und Passwort ein. Manchmal werden diese Informationen direkt auf dem Gerät angezeigt.

Bei Selectel arbeiten wir mit IPMI-Modulen von Intel, Asus und Supermicro. Schauen Sie sich als Beispiel die Supermicro-Weboberfläche an:


Die Funktionen der Weboberfläche sind auch im grafischen Dienstprogramm Supermicro IPMIView implementiert:


Um die Geräte über die Linux-Konsole zu verwalten, wird das entsprechende Dienstprogramm installiert (z. B. Ipmitool für die lokale und Remoteverwaltung oder IPMICFG für die lokale Verwaltung). Anschließend wird mithilfe von Konsolenbefehlen ein IPMI-Gerät hinzugefügt und der BMC konfiguriert.


Selectel-Clients verfügen über IPMI für dedizierte und benutzerdefinierte Serverkonfigurationen . IPMI ist als KVM-Konsole implementiert, die in einer noVNC-Sitzung über das Control Panel ausgeführt wird . Klicken Sie dazu auf der Karte mit Informationen zum Server auf das Konsolensymbol in der oberen rechten Ecke:


Die Konsole wird im Browser geöffnet und an die Bildschirmgröße angepasst. Auf Wunsch kann die Konsole auch über ein Telefon oder Tablet verwendet werden.

Die Sitzung wird unterbrochen, wenn Sie das Bedienfeld verlassen.


Fazit


IPMI ist eine vollständig autonome Komponente der Serverplattform, die nicht vom Betriebssystem, BIOS oder der Server-CPU abhängt.

Dank IPMI werden die Kosten für die Wartung von Serversystemen reduziert und die Lebensdauer von Systemadministratoren wird einfacher. Es ist keine permanente Präsenz in der Nähe des Geräts erforderlich - die Arbeit wird über das Netzwerk ferngesteuert.

In diesem Artikel haben wir die grundlegenden Komponenten von IPMI behandelt. Die Details der Technologie sind jedoch sehr umfangreich. Talentierte Entwickler, die sich auf die Spezifikation verlassen, können ihre IPMI-Geräte und Open-Source-Tools erstellen, gleichzeitig die Mängel der aktuellen Spezifikation beseitigen und neue Möglichkeiten für die Fernsteuerung eröffnen.

Im Artikel verwendete Materialien:

IPMI v2.0-Spezifikation
Supermicro White Papers

Source: https://habr.com/ru/post/de439834/


All Articles