Sinn und Zweck

OpenStack ist ein OpenSource Projekt, welches eine Sammlung verschiedener Komponenten, zur Realisierung einer IaaS-Cloud Umgebung vereint. Für die meisten Aufgabenstellungen setzt OpenStack dabei auf vorhandene Standardlösungen auf und bietet eine von der Implementation unabhängige Schnittstellen.

Derzeit ( Version Juno ) besteht OpenStack aus den Komponenten:

  • Keystone ( Identity Service )
  • Glance ( Image Service )
  • Neutron ( Network Service )
  • Nova ( Compute Service )
  • Cinder ( Block Storage )
  • Swift ( Object Storage )
  • Horizion ( Dashboard )
  • Heat ( Orchestration Module )
  • Ceilometer ( Telemetry Module )
  • Trove ( Database Service )
  • Sahara ( Data Processing Service )
  • Zukünftige bzw. geplante OpenStack Komponenten:
  • Ironic ( Provisioning Baremetal )
  • Zaqar ( Message Service )
  • Barbican ( Key Management )
  • Designate ( DNSaaS )
  • Manila ( Shared Filesystems )
  • Keystone ( Identity Service )

Keystone übernimmt die Authentifikation der Benutzer und deren Zuordnung zu einem Projekt und einer Rolle. Darüber hat Keystone auch die Rolle einer Service-Registry innerhalb der OpenStack Welt. Jede Komponente von OpenStack registriert die von ihr angebotenen Schnittstellen, in Keystone. Im Gegenzug nutzen die Komponenten Keystone dazu, die Dienste der anderen Komponenten zu finden und zu adressieren.

Glance ( Image Service )

Jede virtuelle Maschine benötigt bei ihrem Start ein Abbild eines Betriebssystems, dieses Betriebssystem Abbild wird durch den Dienst Glance bereitgestellt. Glance ist eine Art Bibliothek, in der ein Benutzer Abbilder mit verschiedenen Betriebssystemen oder Betriebssysteme mit bereits installierten Anwendungen hinterlegen kann. Diese werden dann beim Erstellen einer virtuellen Instanz herangezogen und in eine flüchtige Virtuelle Festplatte kopiert, die Lebenszeit dieser virtuellen Festplatte ist dabei auf die Laufzeit der virtuellen Maschine beschränkt.

Für die Speicherung der Images bietet Glance unteranderem die Möglichkeit dieses im normalen File-System, Swift (Object Storage), RADOS Blockdevices sowie HTTP oder Amazon S3, zu tun.

Cinder ( Block Storage )

Cinder dient der Verwalten von virtuellen persistenten Festplatten Speicher. Dieser Festplattenspeicher ist unabhängig von der Laufzeit, einer virtuelle Maschine. Die Cinder-Installation wird logisch in zwei Bereiche aufgeteilt. Der eine Bereich besteht aus genau einer Cinder-Controll-Node, welche ein zentralen Zugriff zur Verwaltung des Storage bietet, und der Cinder-Storage-Node mit der Aufgabe der Kommunikation zu den Storage-Implementationen. Als Implantation kann für Cinder unter anderem LVM, Ceph, Gluster, NFS, ZFS, Sheepdog eingesetzt werden.

Neutron ( Network Service )

Mit Neutron wird das Prinzip des Software-Defined-Networkds (SDN) umgesetzt. Dadurch ist es möglich unabhängig von der bestehenden physikalischen Verkabelung oder geographischen Anordnung der Hardware-Ressourcen, logische Netzwerke zu definieren. Zusätzlich können Dienste wie: FwaaS (Firewall as a Service), LBaaS (Load-Balancer as a Service), VPNaaS (VPN as a Service) verwaltet werden.

Auch Neutron unterteilt sich wie Cinder in zwei Bereiche. Neutron besteht aus dem Controller- und der Network-Node. Der Controller hat wieder die zentrale Bereitstellung einer Schnittstelle für die anderen Komponenten als Aufgabe. Die Network-Node übernimmt die Kommunikation mit den eigentlichen Hardware- oder Software-Lösungen für die Netzwerkfunktionalität.

Die eigentliche Steuerung des Netzwerkverkehrs kann durch verschiedene Hardware-Lösungen wie Router, Switche oder Software-Lösungen erfolgen. Häufig wird hier als Softwarelösung OpenVSwitch oder VMWare NSX verwendet.

Nova ( Compute Service )

Die Steuerung der Virtualisierten Maschinen ist die Aufgabe der Nova Komponente. Nova setzt dabei auf eine Virtualisierungslösung auf und ist verantwortlich für das Einrichten bzw. für das Zerstören von Virtuellen Maschinen. Auch hier findet sich wieder eine ähnliche Aufteilung wie zuvor in Controlle-Node und Compute-Node Nova wieder.

Nova kann mit verschiedenen Virtualiserungslösung kommunizieren, darunter sind unter anderem KVM, XEN, VMWare, Hyper-V oder auch Docker.
Innerhalb einer Cloud Installation können auch verschiedene Virtualisierungslösungen nebeneinander eingesetzt werden.

Swift ( Object Storage )

Swift bietet eine REST-Schnittstelle zum speichern unstrukturierten goßen Datenblöcken. Ein besonderes Augenmerk liegt dabei auf eine hohe Skalierbarkeit, eine hohe Effizienz sowie Ausfallsicherheit. Als Backend kann hier Swift, Ceph, Gluster sowie Sheepdog verwendet werden.

Horizion ( Dashboard )

Die graphische UI von OpenStack mit dem Namen Horizon ist eine webbasierte Oberfläche zur Administration der verschiedenen OpenStack Funktionalitäten. Die Authentifikation und die Autorisation erfolgt anhand der Daten welche in Keystone erfasst sind.

Heat (Orchestration)

In vielen Anwendungsfällen besteht eine gewünschte Umgebung aus mehr als nur einen Server. Meistens wird auch noch eine entsprechende Netzwerkstruktur benötigt. Um die Einrichtung und die Administration dieser Umgebungen zu vereinfachen und zu automatisieren bietet OpenStack das Module Heat. Heat bietet die Möglichkeiten virtuelle Umgebungen durch eine Template Sprache zu definieren und diese Templates dann zu Verwenden um diese Umgebungen dann nach Bedarf zu erzeugen.

Ceilometer (Telemetry)

Durch die Komponente Ceilometer wird eine Möglichkeit geboten die virtuellen Maschinen, die Netzwerkumgebungen und die andere Funktionalitäten von OpenStack zu Monitoren. Die erfassten Nutzungsdaten lassen sicher z.B. Nutzen um eine Verbrauchsstatistik zur Abrechnung oder Resourcen-Planung zu erstellen.

Trove ( Database Service )

Eine der letzten Neuankömmlinge in den Reihen der OpenStack Komponenten ist Trove. Durch Trove wird die Möglichkeit geboten Datenbankserver verschiedenen Typs über eine einheitliche Oberfläche zu administrieren.

Sahara ( Data Processing Service )

Der zweite Neuankömmling von OpenStack Komponenten ist die Komponente Sahara. Die Komponente stellt ein Interface zu Hadoop und Spark dar.

NameFunktionBackend / Implementation
KeystoneIdentity Service
GlanceImage StorageFile-System, Object Storage(swift), RADOS Blockdevices, HTTP oder auch Amazon S3 zur Auswahl.
CinderBlock StorageLVM, Ceph, Gluster, NFS, ZFS, Sheepdog
SwiftObject StorageSwift, Ceph, Gluster, Sheepdog
NovaCompute ServiceKVM, XEN, VMWare, Hyper-V oder auch Docker
NeutronNetwork ServiceOpenVSwitch, VLAN, Cisco-Hardware, NEC OpenFlow, Linux Bridging, VMware
HeatOrchestration
CeilometerTelemetry
TroveDatabase Verschieden Relationale Datenbanken
SaharaData ProcessingHadoop, Spark
HorizonDashboard