VirtualBox + Teleport = Bug

26.04.2013

Ich stelle hier die ernüchternden Ergebnisse meiner Tests mit dem Teleport-Feature der Virtualisierungslösung VirtualBox von Oracle vor. Diese Tests hinterließen einen zwiespältigen Eindruck, da das Feature einen seit langem ausstehenden Bug hat, der scheinbar nie gefixt werden wird.

Ich benutze seit langem die Virtualisierungslösung VirtualBox von Oracle - sowohl für die Arbeit als auch privat. Während der Einsätze schöpfe ich aber nicht alle Features der Software aus: Die Features, die ich benötige, funktionieren hervorragend. Manchmal jedoch packt es mich - dann will ich Neues ausprobieren; Features nur um sagen zu können: "Ja, das habe ich auch schon getan!" Einer dieser Anfälle hat dafür gesorgt, sich mit dem Feature Teleport zu beschäftigen.

Teleport

Teleport heißt bei VirtualBox das Feature, das ich unter der Bezeichnung "Live-Migration" kennengelernt habe: Dabei geht es darum, einen virtuellen Rechner auf dem physischen Rechner A auf den physischen Rechner B zu verschieben. "Live" bedeutet dabei, daß Anwender, die Dienste der virtuellen Maschine in Anspruch nehmen, von dieser Migration nichts bemerken: die virtuelle Maschine arbeitet einfach weiter. Prozeß der Live-Migration Oft wird dieses Feature, das nicht nur VirtualBox bietet, mittels des Szenarios erklärt, ohne Unterbrechung wichtiger Dienste Wartungen an der physischen Hardware vornehmen zu können. Im oben beschriebenen Beispiel wäre es also möglich, nach erfolgreicher Migration Rechner A herunterzufahren, um verschlissene Komponenten zu ersetzen.

Setup

Als Vorbereitung dieses Tests muß man dafür sorgen, daß der Massenspeicher, der an die zu migrierende virtuelle Maschine angebunden ist, nicht an die beiden physischen Rechner A und B gebunden ist. Das habe ich über die Einrichtung eines iSCSI-Servers auf einer Ubuntu 12.04 Installation gelöst. Dabei ist zu beachten, daß die Benutzung mit VirtualBox sofort schief geht. Das ist allerdings noch relativ einfach zu lösen: Dazu mussten die Werte MaxRecvDataSegmentLength und MaxXmitDataSegmentLength in der Datei /etc/iet/ietd.conf angepasst werden:
	MaxRecvDataSegmentLength 65536		# Max data per PDU to receive
	MaxXmitDataSegmentLength 65536		# Max data per PDU to transmit

Die virtuelle Maschine, die ich zum Testen benutzte, war ein Ubuntu 12.04 Server. Die physischen Rechner A und B wurden von zwei Desktop-Rechnern mit Intel-Prozessoren und Windows7 und Ubuntu 12.04 als Betriebssystemen übernommen.

Testergebnisse

Das Ergebnis des ersten Tests war ernüchternd: bereits kurz nach Initiierung der Migration brach der Prozeß mit einer kryptischen Fehlermeldung ab. Nach Sicherstellen, daß auf den Rechnern A und B exakt die gleiche Version von VirtualBox installiert war, war der erste Gedanke: "Ich wollte zu viel: gleich von Windows-Host auf Linux-Host migrieren..." Also versuchte ich mein Glück mit der in der VirtualBox-Dokumentation angeregten Variante der Migration "auf sich selbst": Ich verschob die virtuelle Maschine von Rechner A auf Rechner A. Das Ergebnis war ernüchternd: Die Fehlermeldung blieb exakt identisch.

Zeit, Tante Google zu fragen. Einige Suchergebnisse schilderten exakt dasselbe Verhalten, das auch ich gesehen hatte. Allerdings konnte und wollte ich den vorgeschlagenen Lösungen nicht glauben: "Installiere eine veraltete Version!" Nach einigen frustrierenden Versuchen, diesem Problem anders auf die Spur zu kommen war ich kaputtgespielt: ich ging stufenweise in den Versionen zurück und installierte Schritt für Schritt ältere Versionen von VirtualBox.

Siehe da: Wer beschreibt meine Überraschung, als sich herausstellt, daß das Internet Recht hatte: Die letzte Version, mit der Teleport funktioniert, ist 4.0 - zum Vergleich: aktuell ist Version 4.2

Fazit

Die Ergebnisse der Tests waren zwiespältig: Wenn das Feature funktioniert, funktioniert es wie beworben: die Zeitspanne zur Migration ist subjektiv nicht meßbar, die virtuelle Maschine läuft ohne Unterbrechung weiter.

Allerdings wirft es - nach meiner Meinung - ein mehr als schlechtes Licht auf die Praktiken von Oracle, ein so lange bestehendes Problem nicht anzupacken: Es existiert nicht einmal eine Information, wann das Problem angegangen werden soll.

Wer also das Feature Teleport in VirtualBox nur mal ausprobieren möchte, sollte sich das gut überlegen: Er muß dazu unter Umständen die funktionierende Version der Anwendung gegen eine veraltete (die letzte VirtualBox-Version 4.0 war die 4.0.18 - veröffentlicht am 18.12.2012) austauschen. Für den Produktiveinsatz muß man überlegen, ob man auf eine veraltete Software setzt, oder lieber die Mitbewerber (VMWare, Xen oder ähnliche) in die Entscheidung einbezieht.

Artikel, die hierher verlinken

VirtualBox + Teleport = Erfolg!

02.03.2014

Ich stelle hier die Ergebnisse meiner Tests mit dem Teleport-Feature der Virtualisierungslösung VirtualBox von Oracle in der Version 4.3 vor. Diese Tests zeigen, daß Bugs manchmal doch gefixt werden.

LXC - mein Einstieg

30.04.2013

Dieser Artikel gibt einen kurzen Überblick über meine ersten Tests mit einer (für mich) neuen Form der Virtualisierung: Linux Resource Containers oder kurz LXC

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.