OpenStack
OpenStack ist eine quelloffene Plattform für den Aufbau und die Verwaltung von Cloud-Infrastrukturen. Sie fasst Rechen-, Netzwerk- und Speicherressourcen zu einer einheitlichen softwaredefinierten Cloud zusammen und ermöglicht es, virtuelle Maschinen, Netzwerke, Festplatten und weitere Ressourcen bedarfsgerecht bereitzustellen.
OpenStack wird am häufigsten für den Aufbau von Private Clouds und von Cloud-Infrastrukturen für Dienstleister genutzt. Eine Organisation kann die Plattform auf eigenen physischen Servern oder auf in einem Rechenzentrum betriebener Hardware bereitstellen und Ressourcen nach einem Modell anbieten, das einer Public Cloud in vielerlei Hinsicht ähnelt, dabei aber die Kontrolle über die zugrunde liegende Hardwareinfrastruktur und deren Konfiguration behalten.
Anders als AWS, Microsoft Azure oder Google Cloud ist OpenStack keine von einem bestimmten Anbieter betriebene Public Cloud. Es handelt sich um eine Softwareplattform, mit der Organisationen und Dienstleister ihre eigenen Cloud-Umgebungen aufbauen können.
Wie funktioniert OpenStack?
OpenStack hat eine modulare Architektur aus separaten, miteinander verbundenen Diensten. Jeder Dienst ist für einen bestimmten Teil der Cloud-Infrastruktur zuständig, etwa für Rechenleistung, Netzwerk, Speicher, Identitätsverwaltung, Images virtueller Maschinen oder weitere Funktionen.
Nutzer stellen Anfragen über eine Weboberfläche, Kommandozeilenwerkzeuge oder APIs. Die OpenStack-Dienste kommunizieren untereinander und mit der zugrunde liegenden Infrastruktur, um die benötigten Ressourcen bereitzustellen.
Beim Erstellen einer virtuellen Maschine muss die Plattform beispielsweise einen geeigneten Compute-Knoten auswählen, ein Betriebssystem-Image abrufen, die VM mit einem virtuellen Netzwerk verbinden und bei Bedarf persistenten Blockspeicher bereitstellen.
Die physische Infrastruktur verteilt sich in der Regel auf mehrere Knotentypen:
- Controller-Knoten führen die zentralen Verwaltungsdienste und APIs aus;
- Compute-Knoten stellen CPU- und RAM-Ressourcen für virtuelle Maschinen bereit;
- Storage-Knoten stellen Datenspeicher bereit;
- Netzwerkfunktionen können je nach Architektur auf dedizierten oder gemeinsam genutzten Knoten laufen.
Beispielsweise kommen in einer kleinen Installation Controller- und Netzwerkfunktionen auf denselben Servern zusammen, während in einer großen Cloud jede Rolle auf eigenen Knoten läuft.
Die Topologie ist nicht fest vorgegeben: OpenStack lässt sich an die Größe und die Anforderungen der jeweiligen Infrastruktur anpassen.
Wichtige OpenStack-Komponenten
Die Funktionen von OpenStack sind auf mehrere Projekte verteilt. Eine typische Cloud-Installation nutzt nur die Komponenten, die für ihre jeweilige Architektur erforderlich sind.
Zu den zentralen Diensten gehören:
- Nova — verwaltet Rechenressourcen und virtuelle Maschinen;
- Neutron — stellt virtuelle Netzwerke und Netzwerkdienste bereit;
- Cinder — stellt Blockspeicher für virtuelle Maschinen bereit;
- Swift — stellt verteilten Objektspeicher bereit;
- Glance — verwaltet Images virtueller Maschinen;
- Keystone — stellt Authentifizierung, Autorisierung und einen Dienstkatalog bereit;
- Horizon — stellt eine Weboberfläche zur Verwaltung der Cloud-Ressourcen bereit;
- Heat — stellt eine vorlagenbasierte Infrastruktur-Orchestrierung bereit.
Beispielsweise meldet sich ein Nutzer über Horizon an, Keystone prüft die Berechtigungen, Nova startet die virtuelle Maschine und Cinder hängt die benötigte Festplatte an.
Darüber hinaus gibt es zahlreiche weitere OpenStack-Projekte für Bare-Metal-Provisionierung, DNS, Lastverteilung, Telemetrie, Verwaltung von Geheimnissen und weitere Funktionen.
OpenStack und Virtualisierung
OpenStack ist kein Hypervisor. Die Plattform arbeitet auf einer höheren Ebene und verwaltet die Recheninfrastruktur, während sie für den Betrieb der virtuellen Maschinen auf Hypervisoren zurückgreift.
Eine der häufigsten Konfigurationen nutzt KVM (Kernel-based Virtual Machine) zusammen mit QEMU und libvirt. Die OpenStack-Architektur kann jedoch auch mit anderen unterstützten Virtualisierungstechnologien arbeiten.
KVM ist somit für die Virtualisierung der Ressourcen eines einzelnen physischen Servers zuständig, während OpenStack eine große Zahl dieser Ressourcen als einheitliche Cloud-Umgebung verwaltet. So kann Nova beispielsweise einen geeigneten Compute-Knoten für eine neue VM auswählen, woraufhin die virtuelle Maschine tatsächlich von dem auf diesem Knoten konfigurierten Hypervisor gestartet wird.
Wo wird OpenStack eingesetzt?
OpenStack eignet sich vor allem für Organisationen, die eine eigene skalierbare Cloud-Infrastruktur und ein hohes Maß an Kontrolle über deren Architektur benötigen.
Typische Einsatzszenarien sind:
- Aufbau von Private Clouds für Unternehmen;
- Aufbau von Public Clouds für Hosting- und Cloud-Dienstleister;
- Bereitstellung virtueller Ressourcen für interne Abteilungen über ein Self-Service-Modell;
- Konsolidierung der Serverinfrastruktur;
- Aufbau von Entwicklungs- und Testumgebungen;
- Aufbau von Infrastrukturen für Telekommunikation und andere großflächige IT-Systeme.
Beispielsweise erhalten Entwicklungsteams über Horizon ein Kontingent an Ressourcen und starten Testumgebungen selbst, ohne für jede virtuelle Maschine eine Anfrage an die IT-Abteilung zu stellen.
Die Plattform lässt sich in Umgebungen einsetzen, die von vergleichsweise kleinen Installationen bis zu Clouds mit einer großen Zahl physischer Knoten reichen. Mit wachsender Infrastruktur steigen jedoch auch die Anforderungen an Architekturdesign, Automatisierung, Monitoring und betriebliches Know-how.
OpenStack im Vergleich zu Public Clouds
OpenStack und Public-Cloud-Plattformen wie AWS oder Azure können ähnliche Grundfunktionen bereitstellen, darunter virtuelle Maschinen, Netzwerke, Festplatten, Objektspeicher und APIs zur Ressourcenverwaltung. Ihre Eigentums- und Betriebsmodelle unterscheiden sich jedoch.
Bei AWS oder Azure betreibt der Anbieter sowohl die physische Infrastruktur als auch die Cloud-Plattform selbst. In einer selbst betriebenen OpenStack-Cloud ist die Organisation für Hardware, Plattformbereitstellung, Upgrades, Hochverfügbarkeit und einen erheblichen Teil des laufenden Betriebs verantwortlich, sofern diese Aufgaben nicht an einen Managed Service Provider ausgelagert werden.
Das bietet mehr Kontrolle über Datenstandort, Hardwarekonfiguration und Cloud-Architektur, erhöht aber zugleich die betriebliche Komplexität.
Vorteile und wesentliche Merkmale von OpenStack
OpenStack wird als Open-Source-Projekt entwickelt und bindet die Cloud-Architektur nicht an einen einzelnen Hardwarehersteller. Die Plattform unterstützt die Integration verschiedener Hypervisoren, Netzwerklösungen und Speichersysteme.
Zu den wichtigen Merkmalen zählen Modularität, API-gesteuerte Verwaltung, Automatisierungsmöglichkeiten und die Fähigkeit, Cloud-Infrastrukturen mit Standard-Serverhardware aufzubauen. OpenStack unterstützt außerdem mandantenfähige Umgebungen (Multi-Tenancy), in denen die Ressourcen verschiedener Projekte oder Kunden logisch voneinander isoliert sind.
OpenStack sollte jedoch nicht als fertige Cloud betrachtet werden, die sich einfach auf einem Server installieren lässt. Eine Produktivumgebung erfordert eine sorgfältige Planung der Rechen-, Netzwerk- und Speicherarchitektur sowie Redundanz für die Verwaltungskomponenten, Monitoring, Upgrades und Sicherheit. Der Betrieb einer großen OpenStack-Cloud setzt daher in der Regel spezialisiertes Fachwissen voraus.
FAQ
OpenStack ist eine Sammlung quelloffener Komponenten, mit denen sich eine eigene Cloud aufbauen und virtuelle Maschinen, Netzwerke und Speicherressourcen zentral bereitstellen lassen.
Nein. OpenStack verwaltet Cloud-Infrastruktur und nutzt Hypervisoren wie KVM, um virtuelle Maschinen auszuführen.
AWS ist eine Public-Cloud-Plattform, deren Infrastruktur von Amazon betrieben wird. OpenStack ist Software, mit der eine Organisation oder ein Dienstleister eine eigene Cloud-Plattform aufbauen und verwalten kann.
Ja. KVM ist eine der am häufigsten mit OpenStack eingesetzten Virtualisierungstechnologien und kann auf Compute-Knoten für den Betrieb virtueller Maschinen verwendet werden.
Ja. Der Aufbau von Private Clouds ist einer der wichtigsten Anwendungsfälle für OpenStack. Die Plattform ermöglicht es Organisationen, Cloud-Ressourcen auf eigener oder dedizierter Infrastruktur bereitzustellen.