Beim modularen Aufbau von OpenStack wird zwischen verschiedenen Stufen der Komponenten unterschieden. Die Kernkomponenten von OpenStack bilden die Grundfunktionen für OpenStack ab und werden üblicherweise bei jeder Implementation von OpenStack installiert. Weitere Module befinden sich aktuell in einer Inkubationsphase. Module in der Inkubationsphase werden zwar mit OpenStack ausgeliefert, sind jedoch noch nicht oder nur eingeschränkt für den produktiven Einsatz geeignet. Darüber hinaus existieren noch weitere Module die bisher nicht den Schritt in die Inkubationsphase geschafft haben.

Kernkomponenten

Die Kernkomponenten von OpenStack bestehen aktuell aus 7 verschiedenen Modulen.

Compute (Nova)

Das Compute-Modul mit dem Namen Nova ist die Hauptkomponente von OpenStack. Sie bildet die Kernfunktionen als Cloud Controllers ab und steuert dafür die reale Hardware an. Mit Nova werden die Instanzen der Benutzer angelegt, verwaltet und gelöscht. Dafür unterstützt Nova verschiedene Containertechniken wie KVM, Xen, Hyper-V oder LXC. Weiterhin kann Nova selbst Snapshots von Instanzen im laufenden Betrieb erstellen, welche im Block Speicher (Cinder) abgelegt werden. Nova bietet auch eine eigene Netzwerkschicht, welche jedoch durch das Modul Neutron ersetzt wurde.

Block Speicher (Cinder)

Das Modul Cinder dient als persistenter Block-Level Speicher und wird als solcher auch intern verwendet. Cinder stellt dafür virtuelle Datenträger (Volumes) über das Netzwerk in OpenStack bereit. Im Gegensatz zu NFS kann ein Cinder Volume immer nur mit einer Instanz verknüpft (gemounted) werden. Ein gleichzeitiges Verknüpfen zu mehreren Instanzen ist aktuell nicht möglich. Cinder unterstützt im Backend verschiede Storage Plattformen und kann somit auch an den redundanten Cloud Speicher Ceph oder an GlusterFS angebunden werden.

Objekt Speicher (Swift)

Swift ist ein Objekt Speicher und kann zum Speichern von Objekten oder einzelnen Dateien verwendet werden. Swift ist automatisch skalierbar und redundant ausgelegt so dass ein Objekt stets in mehreren Kopien gehalten wird. Swift kann ausschließlich über eine REST-API genutzt werden.

Image Dienst (Glance)

Der Image Dienst Glance dient der Verwaltung von Images (Datenträger-Abbildern). Glance unterscheidet hierbei von privaten, geteilten und öffentlichen Images. Private Images gehören nur dem jeweiligen Benutzer und können nur von diesem verwendet werden. Geteilte Images sind Images die mit einem bestimmten Benutzerkreis geteilt werden. Öffentliche Images stehen allen Benutzern des Cloudsystems zur Verfügung. Neben Images verwaltet Glance auch Snapshots und kann diese als Images ablegen. Glance verwendet Cinder zum Speichern der Images.

Netzwerk (Neutron)

Das Modul Neutron stellt den Netzwerkdienst für OpenStack bereit. Mit Neutron lassen sich Netzwerke, Subnetze und IP-Adressen/Floating-IPs verwalten. Eine Floating IP in OpenStack bezeichnet eine offizielle IP, welche als Schnittstelle vom internen zum öffentlichen Netz dient. Neben einem LoadBalancer, dem HA-Proxy und einem HealthMonitor unterstützt Neutron auch Techniken wie VLAN und VPN. Zur Absicherung der Netze nutzt Neutron eine Firewall die vielseitige Portregeln z.B. auf Sicherheitsgruppenbasis erlaubt. Aus Markenrechtlichen Gründen wurde das Modul Neutron vor einiger Zeit umbenannt. Der vorherige Name des Moduls, welchen man teilweise noch in alten Dokumentationen findet, war „Quantum“.

Dashboard (Horizon)

Mit dem Horizon Dashboard bietet OpenStack ein benutzerfreundliches Webinterface zur Verwaltung der eigenen Cloud. Über Horizon stehen die wichtigsten Funktion der Cloud zur Verfügung. Bei der aktuellen rasanten Entwicklung hinkt Horizon jedoch dem Umfang der APIs ein wenig hinterher, so dass es nicht alle Funktionen der APIs unterstützt. Auch das Debugging ist bei Verwendung der Kommandozeilenclients oft einfacher so dass man das Dashboard nur für die Basisaufgaben nutzen sollte. Das Webinterface von Horizon ist Templatebasiert und kann durch den Cloudanbieter optisch angepasst und durch Funktionen erweitert werden.

Identitäts Dienst (Keystone)

Das Modul Keystone wird als Authentifizierungs- und Rechtesystem zwischen allen Komponenten verwendeten. Keystone unterscheidet dabei zwischen Mandanten (Tenant) und Benutzern. Ein Mandant ist ein Mieter in der Cloud und kann ggf. weitere Benutzer verwenden. Keystone unterstützt neben einem Token-System auch weitere Authentifizierungsmöglichkeiten wie z.B. LDAP. Eine weitere Möglichkeit besteht darin, den Benutzer für die REST-APIs bereits per vorgeschaltetem Webserver zu autorisieren. Der Benutzername kann dann im Request vom Webserver an die API übergeben werden. Dies ermöglicht die Anbindung einer vielzahl weiterer Authentifizierungssysteme, da diese z.B. für den Apache Webserver zahlreich vorhanden sind.

Weitere Komponenten von OpenStack

Neben den Kernkomponenten bietet OpenStack weitere integrierte Komponenten wie das Telemetrie-Modul mit dem Namen Ceilometer und Heat zur Orchestrierung.

Telemetrie (Ceilometer)

Ceilometer dient als Schnittstelle zum Erfassen und Abfragen sämtlicher Nutzungszahlen des Cloudsystems. Mit Hilfe von Ceilometer lässt sich somit z.B. ein „Pay per Use“-Model technisch realisieren. Neben dem Abruf von Nutzungszahlen durch den Betreiber der Cloudumgebung wird Ceilometer überwiegend vom Modul Heat verwendet.

Orchestrierung (Heat)

Mit Heat lassen sich sogenannte „Stacks“ erstellen. Stacks sind Konfigurationen, bestehend aus verschiedenen Cloud Komponenten wie Instanzen, LoadBalancer, Sicherheitsgruppen, Netzwerke etc. Mit Stacks lassen sich Deployment- und AutoScalingprozesse direkt in OpenStack realisieren. In einem sogenannten HOT (Heat Orchestration Template) werden die Konfigurationen im YAML-Format angegeben. Die Konfigurationsmöglichkeiten sind so umfangreich, dass mit einem Heat Template die gesamte Struktur in Ihrer Cloud automatisch erstellt werden kann. Heat Templates bieten die Möglichkeit Trigger (Alarm) für z.B. AutoScaling zu setzen, welche die Last einzelner Instanzen innerhalb eines LoadBalancer-Pools überwachen. So können im laufenden Betrieb automatisch weitere Instanzen erstellt werden.

Sonstige Komponenten

Es befinden sich noch viele weitere Komponenten in der Entwicklungsphase, wovon die Projekte Ironic zum Provisionieren „echter“ Hardware, Trove als Cloud Datenbank und Sahara für Elastic Map Reduce aktuell das größte öffentliche Interesse genießen.

zurück zur Übersicht