Verwalten und synchronisieren Sie eine VirtualBox-VM zwischen zwei separaten Computern

13

Ich habe eine VirtualBox-VM mit einem Projekt, an dem ich arbeite. Ich möchte diese VM auf zwei separaten Computern verwenden können, damit ich dort arbeiten kann, wo ich mich gerade befinde. Ich habe Antworten zum Übertragen, Klonen und Sichern von VMs gesehen, aber nichts dazu, zwei Kopien zu haben und sie synchron zu halten.

Was ist der einfachste (kleinste oder einfachste Schritt) oder beste (geringstes Problemrisiko) Weg, um ein einzelnes VM-Image auf mehreren Computern zu verwalten?

Im Idealfall würde ich die VM lieber nicht von einem USB-Laufwerk ausführen, da einer der beiden Computer nur über sehr wenige USB-Anschlüsse verfügt. Wenn dies jedoch am besten ist, nehme ich es (ich bin mir eigentlich nicht sicher, ob es welche gibt) Probleme beim Ausführen einer VM von einem USB-Laufwerk). Ich würde jedoch planen, ein USB-Laufwerk zu verwenden, um Dateien zwischen Computern zu übertragen.

rsgoheen
quelle

Antworten:

10

Ich denke, dass Sie hier zwei Möglichkeiten haben: Die erste besteht darin, (in den Installationen von Virtualbox auf beiden Computern) den Ordner festzulegen, in dem die VMs auf einer tragbaren oder Remote-Festplatte gespeichert sind; Wenn die Computer, die Sie verwenden, in einem Netzwerk miteinander verbunden sind, können Sie einen freigegebenen Ordner verwenden. Wenn nicht, befürchte ich, dass die einzige Lösung ein USB-Laufwerk oder eine externe Festplatte ist. Um den Ordner festzulegen, gehen Sie zu File > Preferences > General > Default Machine Folder. Die Geschwindigkeit des USB-Sticks kann die Gesamtleistung einschränken.

Die zweite Lösung, für die ebenfalls ein Pendrive oder ähnliches erforderlich ist (aber nur zum Mitführen Ihrer VM-Dateien), besteht darin, die gewünschte VM jedes Mal manuell zu exportieren und zu importieren, wenn Sie sie mitnehmen müssen. Sie können dies tun, indem Sie die VM auswählen und mit File > Export Applianceund gehen File > Import Appliance. Beim Exportieren wird eine Datei im .ova-Format erstellt. Es handelt sich um ein Archiv, das alle zur Verwendung der VM erforderlichen Dateien enthält. Wenn Sie sie in eine andere Installation importieren, befindet sich dieselbe VM auf dem zweiten Computer. Auf diese Weise verwenden Sie das Pendrive, um Ihre Dateien einfach mit sich herumzutragen. Wenn sie erneut importiert werden, werden sie von Ihrem Computer gespeichert und abgerufen, sodass die USB-Geschwindigkeit keine Rolle spielt.

Sekhemty
quelle
5

Konfrontiert mit genau dem gleichen Problem und ich denke, ich habe es gelöst.

Angenommen, Sie haben zwei Maschinen, A und B. Erstellen / bereiten Sie Ihre VM in A vor. Machen Sie danach einen Schnappschuss oder erstellen Sie einen verknüpften Klon (beide Arbeiten, aber weitere Schritte unterscheiden sich, geben einen, Sie können den anderen auflösen).

Stellen Sie jetzt sicher, dass Sie eine frisch installierte Virtualbox in B haben. Kopieren Sie ~ / .VirtualBox- und ~ / VirtualBox-VMs von A nach B mit einem USB-Stick (vorausgesetzt, sie befinden sich an weit entfernten Standorten).

Wenn Sie sich für den Snapshot-Weg entschieden haben, synchronisieren Sie den Ordner ~ / VirtualBox VMs / YourVM / Snapshots, bis er groß genug ist. Wenn es größer wird, erstellen Sie einen weiteren Snapshot in A und kopieren Sie den YourVM-Ordner einmal nach B und synchronisieren Sie diese neue Snapshot-Datei nur im Snapshots-Ordner.

Wenn Sie einen Schnappschuss machen oder einen verknüpften Klon in A oder B erstellen, wird dieses Ritual abgebrochen, seien Sie gewarnt.

Getestet in 5.0.20

Malkocoglu
quelle
sehr faszinierende Antwort. Würden Sie das heute noch tun oder gibt es einen besseren Weg?
l - '' '' '
4

Ich weiß, dass dieser Thread ein Jahr alt ist, aber es ist ein Top-Suchergebnis bei Google für das Problem, eine VM zwischen zwei Standorten zu teilen.

Mit VirtualBox können Sie mithilfe von RDP eine Remoteverbindung zu einer laufenden VM herstellen. Wenn Sie nicht möchten, dass die VM kontinuierlich ausgeführt wird, können Sie sie auf irgendeine Weise remote starten.

Es gibt eine Option für "Mehrere Verbindungen zulassen", sodass Sie nicht einmal die Verbindung zu einem Ort trennen müssen, bevor Sie eine Verbindung zu einem anderen herstellen.

Wenn Sie nicht in der Lage sind, Ihre eigene VM zu hosten, hat eine schnelle Google-Suche Anbieter gefunden, die Ihre VirtulaBox-Images für Sie hosten.

Ich habe das alles noch nie versucht ...

cjpembo
quelle
4

Ich denke, Sekhemtys Antwort ist der einzige Weg, um das zu tun, was Sie wollen.

Aber warum muss Ihre virtuelle Maschine verschoben werden? Warum nicht einfach Ihre Projekte verschieben? Richten Sie Ihr Projekt in einem privaten Git ein und drücken und ziehen Sie es einfach nach Bedarf.

Eine andere Methode, die Sie ausprobieren sollten, wenn Sie die Maschinenkonsistenz beibehalten müssen und sich stark verändern, ist die Verwendung eines Vagabund- und Koch- / Puppen-Setups. Dies funktioniert, indem Sie entweder einen Koch (der ein Rubinjuwel ist) oder eine Puppe (ich habe keine Puppe verwendet) verwenden, um Vagabund zu sagen, was Ihre VM enthalten und installieren soll.

Es funktioniert mithilfe eines Skripts, eines Küchenchefs oder einer Marionette, und Vagrant liest dieses Skript beim Starten der VM. Wenn Sie möchten, dass etwas installiert wird, fügen Sie es einfach dem Skript hinzu. Wenn es noch nicht vorhanden ist, wird es installiert, wenn Sie "vagabundieren"! Ich habe eine Weile gebraucht, um mich daran zu gewöhnen, die Lernkurve ist steil genug, aber es ist sehr effizient, wenn man sich erst einmal daran gewöhnt hat, und es bedeutet, dass man sich nur in einer Skriptdatei anstatt in einer ganzen VM bewegen muss.

http://red-badger.com/blog/2013/02/21/automating-your-infrastructure-with-vagrant-chef-from-development-to-the-cloud/

boundless08
quelle
2
Es geht nicht nur um den Code (der in ein Repository gelangt) und die Konfiguration. Das liegt daran, dass die VM meine Entwicklungsumgebung ist. Ich habe angefangen, VirtualBox zu verwenden, damit ich in Ubuntu auf einem Computer mit Windows arbeiten kann. Dies würde mir eine konsistente Entwicklungsumgebung geben, wenn es weniger bequem ist, die Umgebung zu verschieben, als eine Kopie davon zu verschieben.
Rsgoheen
Na dann Vagabund und Koch / Puppe scheint es das Beste zu sein. Auf diese Weise müssen Sie Ihre VM nicht exportieren und importieren, wenn Sie etwas in Ihrer Entwicklungsumgebung ändern müssen. Fügen Sie einfach das, was Sie installiert haben, zu Ihrem Skript hinzu, und vagrant baut es beim Start in Ihre VM ein. Es ist sehr praktisch, um auch verschiedene Instanzen von Entwickler-Builds zu haben, da Vagrant auf einer "Base-Box (OS)" arbeitet und auf dem aufbaut, was das Skript auch sagt, sodass Sie mehrere Testumgebungen haben können, aber nur die verwenden Raum von einem.
boundless08
2

Sie können die Images der virtuellen Maschine zwischen Ihren beiden Computern synchronisieren.

Alexander
quelle
2
Ein bisschen mehr Details würden dies zu einer besseren Antwort machen. Können Sie das näher erläutern?
Dave M
2

Nach dem KISS-Prinzip wird nach dem Registrieren der VMs und dem Anpassen der Einstellungen nur rsyncdie *.vdiDatei überquert, während beide Seiten ausgeschaltet werden.

rsync -aPh <path-to-vm>/<diskname>.vdi <remote>:<path-to-vm>/

Es gibt natürlich keine Möglichkeit, Konflikte "zusammenzuführen". Sie müssen also diszipliniert sein, wie Sie Änderungen an der VM vornehmen und diese Änderungen spiegeln.

In der Zwischenzeit können Sie die meisten Ihrer persönlichen Daten auf einem NAS speichern, sodass sie immer auf dem neuesten Stand sind und von allen Computern aus zugänglich sind. Darüber hinaus können Sie zusätzliche .vdi-Festplatten mounten, um die Swap-Partition oder einen anderen temporären Speicher zu enthalten, um die Größe Ihres .vdi-Systems nicht zu erhöhen.

Wenn Sie unter Windows arbeiten, sollten Sie cygwin (oder msys2) für das Programm ssh und rsync installieren.

T Nierath
quelle
1

Eine mögliche Lösung, abhängig von Ihrem Anwendungsfall, ist eine Variation der Antwort von cjpembo.

Wenn sich die beiden separaten Computer im selben LAN am selben Standort befinden, kann möglicherweise eine VM auf einem ESXi-Server oder ähnlichem ausgeführt werden, und Sie können nur die Remote-Konsolenfunktion der Verwaltungstools (oder sogar SSH) verwenden, um darauf zuzugreifen es von beiden anderen Computern.

Wenn einer der Computer, mit denen Sie die VM verwenden möchten, ein Laptop ist, der sich bewegt, ist dies möglicherweise keine Lösung, insbesondere wenn Sie eine große Datenmenge zwischen dem "Host" und dem "Gast" teilen müssen. Umgebungen.

Wenn die VM relativ eigenständig ist, sind die Remote-Konsolenfunktionen von VMware ziemlich effizient. Wenn Sie also keine Videowiedergabe in der VM benötigen, funktioniert sie möglicherweise auch aus der Ferne gut genug, um gut genug zu sein.

Michael Firth
quelle
0

Ich habe dies durch die Verwendung einer externen SSD auf USB-C-Festplatte erreicht. Die VM befindet sich auf der SSD-Festplatte und wird in meinem Virtualbox-Setup auf beiden Laptops referenziert. Ich habe ein USB 3.1 Gen2 Typ C (10 Gbit / s), ein 540 MB / s-Modell genommen, und die Leistung ist in Ordnung.

Med Ali Difallah
quelle