Univention Bugzilla – Bug 19950
dvs-tools: Verschieben von virtuellen Desktops von einem physikalischen Server
Last modified: 2011-05-03 12:10:40 CEST
Für Wartungsarbeiten oder das Herunterfahren von physikalischen Servern zu bestimmten Tageszeiten kann das Tool univention-dvs-free-server verwendet werden, welches die benötigten virtuellen Desktops auf andere Server verteilt. Falls im Hintergrund kein gemeinsamer Datenspeicher verwendet wird, so kann das Kopieren der Daten je nach Größe der virtuellen Desktops und Netzanbindung einige Zeit in Anspruch nehmen.
Die bisherige Implementierun läuft wie folgt ab: Das tool univention-dvs-free-server sammelt Leistungs daten über alle verfügbaren Virtualisierungsserver und exludiert dabei den Server welcher freigemacht werden soll. Statt allen kann auch spezifziert werden welche Virtualisierungsserver in den Vorgang mit einbezogen werden. Dann wir ein Liste von den virtuellen Maschinen erstellt ,welche auf Host vorhanden sind, dabei kann spezifiziert werden ob alle oder nur laufende virtuelle Maschinen beachtet werden. Es werden nur virtuelle Maschinen beachtet welche DVS Desktops sind. Die Liste wird nach dem Speicherverbrauch der VMs in absteigender Reihen folge sortiert. Danach werden die einzelnen VM round robin auf die Virtualisierungs server verteilt. Dabei werdene folgend Kriterien beachtet: 1. Hat der Rechner die nötigen Fähikeiten z.B. hvm, x86_64 usw. 2 Hat der Rechner genug freien Speicher 3. Hat der Rechner genug Rechenzeit übrig Am Ende erhält man ein Python Dictionary der Form redis[VMNAME] -> ZIELURI ist die Zieluri vom None Type konnte der Algorithmus die VM nicht verteilen. Der Algorithmus der Methode redistribute(self, hostlist, source, running = True): im Modul uvmmclient.py implentiert.
Das verschieben sollte auch mit DVS Instanzen funktionieren, die COW verwenden. Dafür ist notwendig, dass die Vorlage auf dem Zielsystem vorhanden ist. In der ersten Iteration würde ich vorschlagen, das Verschieben einer DVS Instanz nur zwischen DVS Nodes zu ermöglichen. Laut Philipp kann mit folgenden Kommandos festgestellt werden, was das Master-Image ist: qemu-img info <image-file> bzw. qemu-img-xen bzw. kvm-img Das Interessante Attribut in der Ausgabe ist "backing file". Es wäre zu bevorzugen, wenn man per-Image feststellen könnte ob es ein COW-Image ist, da die UCR-Variable dvs/desktop/cow ja ggf. auf dem Node gesetzt war, auf dem die Instanz erstellt wurde, aber nicht auf auf dem aktuellen Node, der freigeräumt werden soll.
Comment 2 muss nicht bis zum MS2 umgesetzt werden.
Das Programm funktioniert zu zeit nur wenn man root ist
(In reply to comment #4) > Das Programm funktioniert zu zeit nur wenn man root ist Genauere Problembeschreibung und mögliche Lösung https://forge.univention.org/bugzilla/show_bug.cgi?id=19951#c2
OpenDVDI MS2 ist "shipped".