Was ist Haizea?
Bei Haizea handelt es sich um eine Open Source Lease-Management Architektur auf Basis von virtuellen Maschinen. Genauer gesagt ist Haizea eine Software mit der, in Kombination mit dem OpenNebula Virtual Infrastructure Manager, Xen, KVM oder VMWare Cluster verwaltet werden können. Haizea erlaubt zudem das Deployment unterschiedlicher “Miet”-Arten (lease) von instanziierten virtuellen Maschinen. Weiterhin verfügt Haizea über einen Simulationsmodus, in dem mit Scheduling-Algorithmen experimentiert werden kann, die speziell auf das Deployment von virtuellen Maschinen ausgerichtet sind, bzw. das Leasing abstrahieren.
Haizea ist ein Ressourcen Manager / Ressourcen Scheduler
Haizea ist eine Softwarekomponente, die eine Reihe von Computern – typischerweise einen Cluster – verwalten kann. Dabei ermöglicht sie Benutzern die exklusive Nutzung von Ressourcen, wobei die Anfrage an die Ressourcen unterschiedlich formuliert sein kann. Anfragen wären z.B. “Ich benötige genau zu diesem Zeitpunkt 10 Nodes mit je 1 Gigabyte Arbeitsspeicher.” oder “Ich benötige morgen in der Zeit von 14.00 Uhr bis 16.00 Uhr 4 Nodes mit je 2 CPUs und 2 Gigabyte Arbeitsspeicher.”
Haizea verwendet den Leasing-Ansatz
Die grundlegende Ressource Bereitstellung in Haizea wurde von dem bekannten Prinzip des Leasings abstrahiert. Ein Leasingverhältnis ist eine Form von Vertrag, bei dem sich eine Vertragspartei dazu verpflichtet, eine Reihe von Ressourcen (z.B. ein Auto), einer anderen Partei zur Verfügung zu stellen.
Dieser Ansatz wurde von Haizea adaptiert. Das bedeutet, wenn ein Benutzer Rechenressourcen bei Heizea anfordert, werden ihm diese im Sinne des Leasings bereitgestellt.
Haizea nutzt virtuelle Maschinen
Der Haizea Ansatz sieht die Nutzung von virtuellen Maschinen (VM) als das Optimum an, um Ressourcen auf Basis des Leasing-Prinzips zu bereitzustellen. Dazu sind Haizea’s Scheduling-Algorithmen zur Verwaltung von virtuellen Maschinen ausgerichtet.
Haizea ist Open Source
Haizea wurde unter der Apache License 2.0 veröffentlicht.
Wozu dient Haizea?
Haizea kann auf zwei Arten verwendet werden. Zum einen als Standalone-Komponente, zum anderen als Scheduling-Backend für einen Virtual Infrastructure Manager wie z.B. OpenNebula.
Haizea zusammen mit OpenNebula verwenden
Haizea kann als Plugin für OpenNebula’s Scheduling-Daemon verwendet werden. Mit OpenNebula können Ressourcen aus einem Pool von physikalischen Ressourcen dynamisch verteilt und neu zugeteilt werden. OpenNebula und Haizea ergänzen einander, indem OpenNebula für die Verarbeitung und Bereitstellung der Virtualisierung (Verwaltung von virtuellen Maschinen auf Basis von Xen, KVM und VMWare innerhalb eines Clusters) zuständig ist und Haizea das Scheduling übernimmt.
Haizea als Standalone-Komponente
In erster Linuie ist Haizea eine Ressourcen Management Komponente für virtuelle Maschinen, mit der Leasing-Anfragen entgegengenommen und Entscheidungen bzgl. des Scheduling getroffen werden können. Allerdings ist Haizea nicht in der Lage, diese getroffenen Entscheidungen zu delegieren.
Haizea ist z.B. in der Lage zu bestimmen, wann das Leasing einer bestimmten Anzahl von virtuellen Maschinen beginnt und wieder endet. Allerdings fehlt die Möglichkeit einem Virtual Machine Manager anzuweisen, diese Aktionen durchzuführen.
Haizea kann solche Anweisungen für sich selbst simulieren und ist daher im Standalone-Betrieb für die Scheduling-Forschung (Leasing, VMs) und die Simulation einer lang anhaltenden Arbeitslast (über Wochen und Monate) geeignet.
Funktionen von Haizea
Haizea unterstützt die folgenden Leasing-Arten:
- Best-Effort Leasing: Die Leasing-Anfrage wird in einer Queue abgelegt bis Ressourcen verfügbar sind.
- Advance Reservation Leasing: Das Leasing muss zu einem bestimmten Zeitpunkt beginnen.
- Immediate Leasing: Das Leasing muss sofort oder überhaupt nicht beginnen.
Das Leasing erfordert eine einzelne virtuelle Maschine oder eine Gruppe von virtuellen Maschinen, die parallel ausgeführt werden.
Haizeas Scheduling Algorithmen verfügen über folgende Eigenschaften:
- Explizite Zeitplanung zur Bereitstellung von virtuellen Maschinen, ohne den manuellen Eingriff eines Benutzers. Soll z.B. ein Leasing um 14:00 Uhr starten, erstellt Haizea einen Zeitplan für den Transfer der erforderlichen virtuellen Maschinen Images zu dem physikalischen Node auf welchem die virtuellen Maschinen ausgeführt werden sollen.
- Verwenden der Suspend/Resume Funktion der virtuellen Maschinen, um höher priorisierten Leasing-Anfragen ihre Ressourcen zuteilen zu können. Weiterhin wird die Cold Migration von virtuellen Maschinen verwendet. Dabei wird eine angehaltene (“eingefrorene”) virtuelle Maschine auf einen anderen Host migriert und dort anschließend wieder gestartet. Die Zeitplanung für eine Live-Migration ist derzeit in Arbeit.
- Für Best-Effort Leasing-Anfragen wird eine First-Come First-Serve Queue inkl. Backfilling (aggressiv, konservativ, oder mit einer beliebigen Anzahl von Reservierungen) verwendet.