Während Applikationen in der Cloud im Idealfall so aufgebaut sind, dass der Ausfall einer virtuellen Maschine durch das Starten einer anderen virtuellen Maschine aufgefangen werden kann (Cattle-Model), sind in der Praxis noch häufig virtuelle Maschinen anzutreffen, deren Ausfall nur durch das Wiederherstellen genau dieser virtuellen Maschine aufgefangen werden kann (Pet-Model).

Aber selbst wenn man nur mit cloud-nativen Applikationen arbeitet, wo also ein Ausfall durch das Starten einer neuen virtuellen Maschine behoben werden kann, will man gegebenenfalls das Wiederherstellen von virtuellen Maschinen automatisieren.

Hochverfügbare VMs (VMHA) mit Masakari

Dieses automatische Wiederherstellen bezeichnet man als Virtual Machine High Availability (VMHA). Wobei der Begriff „Hochverfügbarkeit“ in diesem Fall eher weit ausgelegt wird: Nicht die unterbrechungsfreie Verfügbarkeit steht im Mittelpunkt, sondern die automatische Wiederherstellung.

In OpenStack stellt die Komponente Masakari genau diese Funktionalität bereit. 2015 vom japanischen Telekommunikationsunternehmen NTT gestartet, gehört Masakari seit 2016 offiziell zu OpenStack.

Aufbau von Masakari

Masakari besteht grob aus drei Komponenten: Einer API, mit deren Hilfe sich Failover-Segmente definieren lassen; Monitor-Diensten, die jeweils den Host, den Virtual Machine Manager und die virtuelle Maschine selbst überwachen; und einer Engine, die im Fehlerfall mit anderen OpenStack-APIs kommuniziert um einen Failover einzuleiten.

Um auch den Ausfall eines kompletten Hypervisors abfangen zu können, sollten die virtuellen Maschinen auf einem Shared Storage liegen. Um einen Ausfall dieser Art erkennen zu können, setzt Masakari auf Pacemaker in Verbindung mit seinem Hostmonitor, während der Processmonitor und der Instancemonitor jeweils direkt nova-compute und libvirtd überwachen.

Weitere Informationen

Einen weiterführenden Überblick gibt die Vorstellung von Masakari auf dem OpenStack Summit in Tokyo 2015.

OpenStack Wiki:
https://wiki.openstack.org/wiki/Masakari

OpenStack Git:
https://git.openstack.org/cgit/openstack/masakari/
https://git.openstack.org/cgit/openstack/masakari-monitors/
https://git.openstack.org/cgit/openstack/python-masakariclient/

Dokumentation:
https://docs.openstack.org/masakari/latest/index.html

IRC-Channel:
#openstack-masakari auf freenode.org

David Rabel arbeitet bei B1 Systems als Trainer und Consultant für Themen rund um Linux und OpenStack. Er ist Mitglied des Debian OpenStack Packaging Teams und steuert selbst gelegentlich Patches zum OpenStack Code oder der Dokumentation bei.