Die Herausforderungen moderner Rechenzentren erfordern ein zeitgemäßes Systemmanagement. Viele Hersteller setzen auf die standardisierte API-Schnittstelle Redfish von DMTF. Unser Artikel beschreibt die Vorteile der REST-basierten Schnittstelle und warum deren Vorgänger IPMI heutigen Ansprüchen nicht mehr gerecht wird.
Das Intelligent Platform Management Interface (IPMI), das sich in der Vergangenheit zum Standard für das Management von Computerhardware im Unternehmen entwickelt hat – insbesondere zur Verwaltung von Servern über das Netzwerk – ist veraltet. Seine Entwickler haben schon länger angekündigt, dass es keine weiteren Überarbeitungen der IPMI-Spezifikation geben wird. Das bedeutet, dass Unternehmen, die ihre Server mit IPMI verwalten, sich jetzt nach einer Alternative umsehen sollten.
Glücklicherweise bringt sein Nachfolger Redfish neue Funktionen und eine moderne, sichere Schnittstelle mit sich. Redfish ist eine Standardschnittstelle, die von DMTF (früher bekannt als Distributed Management Task Force) entwickelt wurde. Sie ermöglicht die Konfiguration und Überwachung nicht nur von klassischen Servern, sondern auch von modularen Rechnern, Speichersystemen und Netzwerkgeräten. Dazu setzt Redfish auf eine RESTful-Programmierschnittstelle, die einfache Abfragen mit zahlreichen Programmiersprachen ermöglicht. Redfish verwendet HTTPS für die Datenübertragung und JSON als Datenformat, wird von vielen namhaften Herstellern unterstützt und ermöglicht dadurch das sichere Management konvergenter, hybrider IT und softwaredefinierter Datenzentren.
Die initiale API-Version des Standards wurde bereits im August 2015 veröffentlicht und erfährt eine stetige Weiterentwicklung. Federführend bei der Ausarbeitung des Standards waren Jeff Autor von HPE und Paul Vancil von Dell. So ist es kein Zufall, dass HPE (damals noch HP) schon 2014 auf ProLiant-Servern ein Management-Interface namens "HP RESTful API" anbot, das Redfish im Grundsatz ähnelt. Neben den beiden genannten Firmen sind aber noch eine ganze Reihe weiterer Hersteller mit an Bord, etwa Cisco, EMC, Supermicro, IBM, Fujitsu, Huawei, NetApp und Intel.
Das Intelligent Platform Management Interface (IPMI), das sich in der Vergangenheit zum Standard für das Management von Computerhardware im Unternehmen entwickelt hat – insbesondere zur Verwaltung von Servern über das Netzwerk – ist veraltet. Seine Entwickler haben schon länger angekündigt, dass es keine weiteren Überarbeitungen der IPMI-Spezifikation geben wird. Das bedeutet, dass Unternehmen, die ihre Server mit IPMI verwalten, sich jetzt nach einer Alternative umsehen sollten.
Glücklicherweise bringt sein Nachfolger Redfish neue Funktionen und eine moderne, sichere Schnittstelle mit sich. Redfish ist eine Standardschnittstelle, die von DMTF (früher bekannt als Distributed Management Task Force) entwickelt wurde. Sie ermöglicht die Konfiguration und Überwachung nicht nur von klassischen Servern, sondern auch von modularen Rechnern, Speichersystemen und Netzwerkgeräten. Dazu setzt Redfish auf eine RESTful-Programmierschnittstelle, die einfache Abfragen mit zahlreichen Programmiersprachen ermöglicht. Redfish verwendet HTTPS für die Datenübertragung und JSON als Datenformat, wird von vielen namhaften Herstellern unterstützt und ermöglicht dadurch das sichere Management konvergenter, hybrider IT und softwaredefinierter Datenzentren.
Die initiale API-Version des Standards wurde bereits im August 2015 veröffentlicht und erfährt eine stetige Weiterentwicklung. Federführend bei der Ausarbeitung des Standards waren Jeff Autor von HPE und Paul Vancil von Dell. So ist es kein Zufall, dass HPE (damals noch HP) schon 2014 auf ProLiant-Servern ein Management-Interface namens "HP RESTful API" anbot, das Redfish im Grundsatz ähnelt. Neben den beiden genannten Firmen sind aber noch eine ganze Reihe weiterer Hersteller mit an Bord, etwa Cisco, EMC, Supermicro, IBM, Fujitsu, Huawei, NetApp und Intel.
Grundlagen von Redfish
Vor Redfish fehlten interoperable Managementstandards für moderne Rechenzentrumsumgebungen. Unternehmen stiegen auf Scale-out-Ansätze um und bestehende Standards für die erfolgreiche Verwaltung einer großen Anzahl an einfachen sowie Multi-Node-Servern wurden unzureichend. IPMI beschränkt sich auf den kleinsten gemeinsamen Nenner von Befehlen wie beispielsweise Ein, Aus, Reboot oder den Temperaturwert. Dies zwang Unternehmen zur Nutzung eines reduzierten Funktionsumfangs.
Auf der Suche nach einer modernen Schnittstelle erwarten heutige Nutzer einen klar definierten Standard, der die Protokolle, Strukturen und Sicherheitsmodelle verwendet, die aktuell in Internet- und Webservice-Umgebungen üblich sind. Aus diesem Grund wurde Redfish entwickelt, um ein interoperables Management für konvergierende Infrastrukturen zu ermöglichen. Es bietet zudem eine einfache Möglichkeit, sich in bestehende Toolketten zu integrieren. Der Standard ist sowohl menschenlesbar als auch maschinenfähig und nutzt gängige Internet- und Webservice-Standards, um Informationen direkt an die modernen Werkzeugketten zu übermitteln.
Redfish beansprucht nur wenig Speicher und unterstützt die meisten Betriebssysteme, was eine effiziente Verwaltung von Rechenzentren mit Servern verschiedener Hersteller ermöglicht. Mit dem Out-of-Band-Management des Standards können Administratoren die Komponenten des Rechenzentrums aus der Ferne verwalten, selbst wenn die Geräte ausgeschaltet sind. Hierdurch ist eine kontinuierliche Überwachung und eine sofortige Behebung von Systemausfällen möglich.
Viele Hersteller von Serverhardware unterstützen heutzutage die Verwaltung mittels Redfish, selbst wenn diese nicht aus der jüngsten Baureihe stammt. Zusätzlich, sofern der Hersteller das erlaubt, lässt sich Redfish nachträglich in eine BMC/IPMI-Firmware integrieren und somit auch bei bereits vorhandenen Servern älterer Generation nachrüsten.
REST, HTTP & JSON
Durch die Unterstützung der Kombination verschiedener Programmiersprachen mit REST, HTTP und JSON bietet Redfish die Möglichkeit, IT-Managementaufgaben mit den gleichen Fähigkeiten und der gleichen Toolkette wie bei anderen IT- und Entwicklungsaufgaben durchzuführen. RESTful-Protokolle lassen sich schnell erzeugen und haben den Vorteil, dass es sich dabei um einfache Datenmuster handelt (REST ist kein reines Protokoll), die direkt auf HTTP-Operationen abgebildet werden. HTTP mit seinem allgemein verwendeten Sicherheitsmodell und seiner Netzwerkkonfiguration wird außerdem von Administratoren und Entwicklern gut verstanden.
JSON geriert sich immer mehr als modernes Datenformat. Es ist von Natur aus menschenlesbar, prägnanter als XML, bietet eine Fülle an moderner Sprachunterstützung und ist nicht zuletzt das am schnellsten wachsende Format für Webdienst-APIs. JSON bietet einen zusätzlichen Vorteil für eingebettete Verwaltungsumgebungen: Die meisten Baseboard Management Controller (BMC) unterstützen bereits einen Webserver und die Browser-gestützte Verwaltung eines Servers, normalerweise über eine JavaScript-gesteuerte Schnittstelle.
Durch die Verwendung von JSON in Redfish erscheinen die Daten von einem Redfish-Dienst direkt im Browser, wodurch sich sicherstellen lässt, dass die Daten und die programmatische Schnittstelle in Bezug auf Semantik und Wert einheitlich sind.
Zusätzlich zu REST, HTTP und JSON übernimmt Redfish gängige OData-v4-Konventionen für die Beschreibung von Datenschemata, URL-Konventionen und Benennungen sowie die Struktur allgemeiner Eigenschaften in einer JSON-Payload. Dadurch lassen sich Redfish-Dienste von einem wachsenden Ökosystem generischer Clientbibliotheken, Anwendungen und Tools nutzen.
Beispiel einer Dell-IDRAC-Verzeichnisstruktur.
Aufbau des Datenmodells
Ein Schema ist ein Datenmodell. Redfish verwendet sowohl das JSON- als auch das OData-CSDL-Format, um jedes Schema zu veröffentlichen. Das Modell definiert die Beziehungen zwischen den Objekten im System und legt fest, welche Objekte andere Objekte enthalten oder von ihnen enthalten werden können. Vereinfacht ausgedrückt können Sie sich das Schema auch als Datendefinition vorstellen.
Ressourcen hingegen sind tatsächliche Objekte oder Komponenten. In der Terminologie von RESTful APIs ist ein URI (Uniform Resource Identifier) oder eine URL (Uniform Resource Locator) ein Zeiger oder Endpunkt, der die Ressource darstellt. Sie können die Ressource als ein Objekt in einem System verstehen, dessen Werte und Regeln für jede seiner Eigenschaften in einem bestimmten Redfish-JSON-Payload enthalten sind.
Ein Payload ist das Datenpaket, das die Werte enthält, die mit einer bestimmten Ressource verbunden sind. Redfish definiert auch OData-Annotationen. Dabei handelt es sich quasi um Metadaten, die in einem Payload geliefert werden.
Von der obersten Ebene aus verzweigt sich die RESTful-Schnittstelle zu einer Reihe von "Collections", die wiederum mehrere "Sub-Items" enthalten und eine baumartige Struktur bilden. Der Administrator kann durch diese Struktur navigieren, um Informationen und Einstellungen von Interesse zu finden. Dabei gilt es zu beachten, die API am besten vom Stammverzeichnis aus zu durchlaufen, da einige Teile eines API-Pfads je nach Hardwarekonfiguration des Servers variieren können.
Die wichtigsten Collections des Datenmodells sind "Systems" (beschreibt eine Maschine oder System), "Chassis" (physikalische Komponente eines Systems) und "Managers" (Komponente für das System Management). Weitere Collections sind, wie im Bild ersichtlich, zum Beispiel "/TaskService", "/SessionService", "/AccountService" oder "/EventService".
Redfish-Operationen
In Redfish implementieren HTTP-Methoden die Operationen einer RESTful API. Dies ermöglicht es dem Nutzer, die Art der gestellten Anfrage zu spezifizieren.Hierbei findet ein Standard-CRUD-Format (Create, Retrieve, Update und Delete) Verwendung. Je nach gewünschtem Ergebnis kann der Nutzer die folgenden Befehlstypen ausführen:- GET: Daten abfragen- POST: Ressourcen erstellen oder Aktionen verwenden- PATCH: Eine oder mehrere Eigenschaften einer Ressource ändern- PUT: Eine Ressource ersetzen- DELETE: Eine Ressource entfernen
Mehr Sicherheit dank Verschlüsselung
Bezüglich der Sicherheit einer programmgesteuerten Fernschnittstelle gilt es zu gewährleisten, dass sowohl die Schnittstellen, die zur Interaktion mit Redfish zum Einsatz kommen, als auch die ausgetauschten Daten geschützt sind. Das bedeutet, dass es der richtigen Kontrollmechanismen für die Schnittstellen und der für den Datenaustausch verwendeten Kanäle bedarf. In diesem Zusammenhang ist es sinnvoll, bestimmte Verhaltensweisen einzuführen, einschließlich dem Bestimmen von Mindestverschlüsselungsstufen für Kommunikationskanäle.
Der Wechsel von IPMI zu Redfish bringt daher einige wesentliche Sicherheitsvorteile mit sich, die sich vor allem dadurch auszeichnen, dass Sie identische Tools wie in anderen HTTP-basierten Diensten nutzen können. Darunter fallen zum Beispiel die Transportsicherheit durch den Einsatz von TLS und HTTPS-Protokollen, Session-Keys, Serverzertifikate, aber auch eine Datenautorisierung, die auf Kerberos basiert.
Authentifizierung, Rollen und Berechtigungen
Redfish erfordert die Verwendung einer konformen TLS-Verbindung zum Transport der Daten und bietet zwei Möglichkeiten der Authentifizierung: HTTP Basic Authentication und Session Based Authentication. Gemäß der Redfish-Spezifikation ist die einzige Ressource, auf die sich ohne Authentifizierung zugreifen lässt, der Service-Root "/redfish/v1/". Die Basic Authentication erfordert Benutzername und Passwort, die bei jedem HTTP-Request übergeben werden. Die Credentials sind dabei durch einen Doppelpunkt getrennt und mittels Base64 kodiert, also etwa "USERID:PASSWORD" | base64).
Alternativ ist es möglich, sich mit den Anmeldeinformationen zu Beginn einer Session einzuloggen und vom Server ein Session-Token (XAuthToken) zu erhalten, das bei weiteren Anfragen der Authentifizierung dient. Je nach Implementierung können neben lokalen Userdaten auch LDAP oder das Active Directory als Backend zum Einsatz kommen. Beide Möglichkeiten verwenden die angegebenen Anmeldeinformationen, um festzustellen, welche Vorgänge für das jeweilige Benutzerkonto aktiviert sind.
Um zu kontrollieren, welche Benutzer Zugang zu Ressourcen haben und welche Art von Zugriff sie haben, verwendet das Autorisierungssubsystem Rollen und Privilegien. Eine Rolle ist ein definierter Satz von Berechtigungen, die jedem Benutzer zugewiesen wird, wobei sich zwei Rollen mit denselben Privilegien gleichwertig verhalten. In der gleichnamigen Tabelle definieren wir beispielhaft eine Reihe von vorgegebenen Rollen.
Ein Privileg ist eine Erlaubnis, einen Vorgang wie Lesen oder Schreiben innerhalb einer definierten Verwaltungsdomäne durchzuführen, zum Beispiel die Konfiguration von Benutzern. So erfolgt bei jeder Anfrage eines Clients an einen Dienst eine Prüfung, ob die authentifizierte Identität des Anfragenden die Berechtigung hat, die angeforderte Operation an der Ressource in der Anfrage auch tatsächlich auszulösen.
Der Aufwand zur Verwaltung moderner Rechenzentren steigt mit deren Größe und Komplexität. Mit Redfish verfolgen namhafte Hersteller Optimierungen bei der Architektur von Rechenzentren, aber auch bei der Einhaltung von Sicherheitsstandards für das Plattformmanagement. Veraltete Methoden, die auf IPMI basieren, sind heutzutage nicht mehr in der Lage, dies zu gewährleisten und vernachlässigen wichtige Sicherheitsaspekte.
Redfish löst einige dieser Herausforderungen dank innovativer Protokolle, die auf aktuellen Architekturen wie RESTful HTTP, JSON und OData aufsetzen. Auf diese Weise ermöglicht es eine einfachere Umsetzung von Sicherheitsmerkmalen auf Systemen, die diese API unterstützen. Redfish macht das Plattformmanagement und das Monitoring für moderne Rechenzentren einfacher, weil der Standard die unterschiedlichsten Architekturen unterstützt. Hilfreich dabei ist, dass sich Redfish bei einigen vorhandenen Servern nachrüsten lässt.
(ln)
Michael Becker ist Content Copywriter bei Paessler.