Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Know-how<br />
Open Stack<br />
rauf hinaus, dass Open Stack sich an<br />
vorhandene Billing-Systeme nahtlos anschließen<br />
lässt, um die durch Benutzer in<br />
Anspruch genommenen Dienstleistungen<br />
automatisch zu verrechnen.<br />
Object Storage <strong>mit</strong> Swift<br />
Abbildung 3: Das Dashboard bietet auch eine Kurzübersicht über die Ressourcen, die ein Benutzer innerhalb<br />
eines definierten Zeitraums verwendet hat.<br />
Die schönste Cloud-Umgebung ist nichts<br />
wert, wenn Nicht-Nerds sie nicht bedienen<br />
können. Das Open-Stack-Dashboard,<br />
Codename Horizon, kümmert sich genau<br />
darum: Es ist bietet ein Self-Service-Portal,<br />
das genauso wie alle anderen Open<br />
Stack-Teile in Python geschrieben ist<br />
(Stichwort Django) <strong>und</strong> den Benutzern<br />
einer Open-Stack-Installation den Start<br />
von VMs per Mausklick aus dem Webbrowser<br />
ermöglicht. Voraussetzung dafür<br />
ist lediglich ein WSGI-fähiger Webserver,<br />
beispielsweise Apache <strong>mit</strong> geladenem<br />
»mod_wsgi«.<br />
Ebenfalls sinnvoll ist die Kombination des<br />
Dashboards <strong>mit</strong> »memcached«, um Performance-Engpässen<br />
vorzubeugen. Aus<br />
Nutzersicht lassen sich <strong>mit</strong> dem Dashboard<br />
nicht bloß VMs starten <strong>und</strong> stoppen,<br />
sondern auch Images in Glance von<br />
laufenden VMs anlegen <strong>und</strong> Hardware-<br />
Profile für virtuelle Systeme verwalten.<br />
Auch eine rudimentäre Statistik-Funktion<br />
ist vorhanden, deren Ausbau zu einer<br />
vollständigen Billing-API zur Diskussion<br />
steht. Letztlich läuft die Entwickler dawerden<br />
<strong>mit</strong>tels iSCSI vom Storage-Host<br />
zu den Computing-Nodes verb<strong>und</strong>en,<br />
wo sie über KVMs Hotplug-Funktion<br />
dann zum Bestandteil einer virtuellen<br />
Maschine werden. Wer stattdessen lieber<br />
auf Ceph setzt, bekommt ein natives<br />
Ceph-Interface <strong>mit</strong>geliefert. Cinder ist<br />
auch eines der Projekte in Open Stack,<br />
deren Funktionsumfang in den nächsten<br />
Monaten beträchtlich wachsen wird,<br />
um weitere Storage-Backends nativ zu<br />
unterstützen. So ist beispielsweise eine<br />
direkte Fibre Channel-Anbindung in der<br />
Diskussion, die sich den Umweg über<br />
den Blockdevice-Layer spart.<br />
Das Hirn der Wolke: Nova<br />
Open Stack Compute, Codename Nova,<br />
ist die zentrale Computing-Komponente.<br />
Weil Cinder (vormals »nova‐volume«)<br />
<strong>und</strong> Quantum (als Ersatz für »nova‐network«)<br />
seit der Folsom-Release in ihre<br />
eigenen Projekte ausgelagert sind, kann<br />
Nova sich ausschließlich darum kümmern,<br />
die virtuellen Systeme innerhalb<br />
einer Openstack-Umgebung zu verwalten.<br />
Es spannt den Bogen um alle anderen<br />
Komponenten <strong>und</strong> kümmert sich darum,<br />
das virtuelle Maschinen in der Wolke<br />
gestartet <strong>und</strong> gestoppt werden, wenn Benutzer<br />
entsprechende Befehle per Kommandozeile<br />
oder Webinterface geben.<br />
Der Dienst ist modular: Neben »nova‐api«<br />
als Frontend gehört auch die eigentliche<br />
Computing-Komponente »nova‐compute«<br />
direkt zu Nova. »nova‐compute« läuft auf<br />
jedem Virtualisierungsknoten <strong>und</strong> wartet<br />
auf entsprechende Anweisungen von<br />
der API-Komponente. Teil von Nova ist<br />
überdies der Scheduler »nova‐schedule«,<br />
der weiß, welche Hypervisor-Knoten<br />
vorhanden sind, <strong>und</strong> welche VMs wo<br />
in der Wolke laufen. Soll eine neue VM<br />
hinzukommen, entscheidet eben dieser<br />
Scheduler, auf welchem Host sie laufen<br />
soll. Übrigens: »nova‐compute« setzt im<br />
Hintergr<strong>und</strong> auf die erprobte »libvirt«,<br />
um virtuelle Systeme zu verwalten. Es ist<br />
den Open Stack-Entwicklern hoch anzurechnen,<br />
dass sie das Rad an dieser Stelle<br />
nicht neu erf<strong>und</strong>en haben <strong>und</strong> stattdessen<br />
auf bewährte Technologien setzen.<br />
Das Dashboard<br />
Die sechs zuvor beschriebenen Komponenten<br />
bilden den Kern von Open Stack,<br />
der sich um das Thema Virtualisierung<br />
kümmert. Wie eingangs erwähnt ist aber<br />
auch der Faktor Storage durchaus von<br />
Interesse: Speicherlösungen wie Dropbox<br />
oder Amazons EC2 gehören ebenso zur<br />
Cloud wie virtuelle Maschinen. In Open<br />
Stack kümmert sich um diesen Teil Swift.<br />
Swift stammt ursprünglich von Rackspace<br />
<strong>und</strong> ist der Part, den der amerikanische<br />
Riesenhoster – als Heimat von Github<br />
bekannt – in das Projekt eingebracht hat.<br />
Bei Rackspace ist Swift bereits seit einiger<br />
Zeit produktiv im Einsatz, sodass es vielen<br />
Entwicklern bis heute als die ausgereifteste<br />
Open-Stack-Komponente gilt.<br />
Unter der Haube funktioniert Swift dabei<br />
ganz ähnlich wie Ceph: Sämtliche<br />
Dateien, die in Swift abgelegt sind, wandelt<br />
das Programm in binäre Objekte<br />
um, die dann über einen großen Cluster<br />
von Storage-Knoten verteilt <strong>und</strong> dabei<br />
inhärent repliziert werden. Weil Swift ein<br />
Kompatibilitätsinterface für Amazons S3-<br />
Protokoll hat, funktionieren alle für S3<br />
entwickelten Tools ebenfalls <strong>mit</strong> Swift.<br />
Wer also in Open-Stack-Manier Online-<br />
Speicher anbieten möchte, bekommt vom<br />
Open-Stack-Projekt das richtige Werkzeug<br />
an die Hand: Swift.<br />
Was es sonst noch braucht<br />
Zu jeder Open-Stack-Installation gehören<br />
zwei Komponenten, die nicht un<strong>mit</strong>telbar<br />
Teil von Open Stack sind: MySQL <strong>und</strong><br />
RabbitMQ. MySQL setzen sämtliche Open<br />
Stack-Komponenten <strong>mit</strong> Ausnahme von<br />
Swift ein, um ihre internen Datenbanken<br />
zu pflegen. Weil alle Open-Stack-Komponenten<br />
in Python geschrieben sind,<br />
haben die Entwickler auf das Python-<br />
Modul »sqlalchemy« gesetzt, um die Datenbankzugriffe<br />
aus ihren Applikationen<br />
heraus umzusetzen. Zwar unterstützt<br />
»sqlalchemy« auch andere Datenbanken<br />
wie PostgreSQL, nahezu sämtliche Open-<br />
Stack-Installation dürften gegenwärtig<br />
76 Ausgabe 06-2012 Admin www.admin-magazin.de