Scheduling-Modul für OpenStack für DaaS/VDI und GreenIT
“Desktop-as-a-Service” (DaaS) bzw. Virtual Desktop Infrastruktur (VDI) ist ein Dienst zur Bereitstellung interaktiver Desktops (VMs) in einer Cloud (z. B. OpenStack) für den Fernzugriff. Etablierte Techniken zur Ressourcenverwaltung (z. B. OpenStack Placement) sind häufig beschränkt auf die Gegenwart. Es gibt bestimmte Use Cases, die eine längerfristige Planung der Ressourcen für VMs (z. B. CPU, RAM, GPU, ...) erfordern, die über das übliche Ad-hoc-Placement von VMs in OpenStack hinausgeht. Für geplante Ressourcen besteht eine Garantie auf deren Verfügbarkeit durch ein Unterbinden von Overbooking. Neben der Planung ist der Scheduler auch in der Lage, bestehende Ressourcenbelegungen zu optimieren, indem VMs zwischen Compute-Nodes verschoben werden.
Aufgabe
Ausgehend von einer bereits durchgeführten Anforderungsanalyse und Konzipierung (siehe Paper unten) soll eine prototypische Entwicklung erfolgen, die eine langfristig planbare Zeitsteuerung der Cloud ermöglicht.
Sie entwickeln einen Scheduler, welcher die folgenden Anforderungen erfüllt:
- Anfragen zur Resservierung von Ressourcen für einen begrenzten Zeitraum werden auf Erfüllbarkeit geprüft und anschließend vorgenommen oder abgelehnt.
Use Case: Ein Seminar benötigt in drei Wochen 20 VMs vom Typ A. Ihr Scheduler plant die Vergabe dieser Ressourcen, sodass benötigte Ressourcen am Stichtag nicht belegt sind. - Das Anlegen, Start, Stop, Suspend/Resume und Löschen von VMs, welche durch den Scheduler geplant oder verwaltet sind, kann angeregt werden. Der Erfolg der angeregten Aktion wird überwacht und gegebenenfalls gemeldet.
- Geplante und verwaltete VMs werden zu den Stichtagen bereitgestellt und nach Ablauf des Zeitfensters auch wieder entfernt.
Use Case: Am Stichtag wird sichergestellt, dass 20 VMs für ein Seminar erzeugt werden können.
Use Case: Sind nicht ausreichend Ressourcen verfügbar (schlecht), müssen VMs zwischen Compute-Nodes verschoben oder (sehr schlecht!) gelöscht werden.
Green-IT-Scheduling minimiert den Energieverbrauch bei gleichzeitigem Erhalt aller Dienste. Ihr Scheduler ist nach obigem ebenfalls in der Lage:
- Auf Wunsch den Stromverbrauch der Cloud zu minimieren.
Use Case: Wenn alle VMs von einem Compute-Node weg verschoben werden, kann diese abgeschaltet werden.
Vorgehen
Die Realisierung des oben beschriebenen Scheduler benötigt voraussichtlich eine theoretische Vorarbeit.
- MS I: Analyse der erforderlichen Informationen für den Scheduler.
- MS II: Beispielszenario (wie ein Unit-Test) zur Demonstration der Arbeit des Schedulers.
- MS III: Integration der Scheduler-Implementierung in OpenStack.
Vorangegangene Arbeiten und Weiterführendes
- A Resource-aware Scheduling Concept for an OpenStack-based VDI
- bwCloud usage (OpenStack)
- Knapsack-Problem mit einem multidimensionalen Gewicht (Priority, CPU, RAM, ...), mehreren Knapsacks (Compute-Nodes) und semi-online (due to reservations).
Sinnvolle Vorkenntnisse
Programmierkenntnisse Python; Erfahrungen im Umgang mit REST; Gundverständniss von Cloud und Virtualisierung; Verständnis von Algorithmen