Wie synchronisiere ich zwei Instanzen einer virtuellen Maschine, die auf verschiedenen Computern verwendet werden sollen?

8

Ich benutze VirtualBox schon eine ganze Weile auf meinem Desktop. Nachdem ich kürzlich ein Notebook gekauft habe, möchte ich meine virtuelle Ubuntu-Maschine mitnehmen und die Änderungen, die ich am Notebook vornehme, auf den Desktop übertragen und umgekehrt, wenn ich zu Hause ankomme / gehe. Das Host-Betriebssystem ist Windows 7 auf beiden Computern, auf denen VirtualBox 4 ausgeführt wird.

Mein erster Gedanke war, die Dateien der virtuellen Festplatte selbst zu synchronisieren. Mein bevorzugtes Werkzeug wäre rsync, genauer gesagt die Cygwin-Version, die --inplaceOption zu verwenden, um Schreibvorgänge so weit wie möglich zu reduzieren. Aber das wäre nicht machbar: Es würde mich daran hindern, jemals separat an den VMs zu arbeiten, da rsyncich ohne Kenntnis der Dateisysteme, die sich in den Containern befinden, keine Möglichkeit hätte, Konflikte zu erkennen und ordnungsgemäß zusammenzuführen.

Die nächste Option wäre, rsyncdie laufenden Maschinen miteinander zu verbinden. Würde das funktionieren, ohne die Paketverwaltung durcheinander zu bringen? Müsste ich etwas anderes manuell tun als Updates wie neuen Kernel oder Treiber? Gibt es eine andere Lösung, die besser funktionieren könnte?

danielkza
quelle
Ich denke, Sie sollten diese Frage in zwei Teile teilen. Fragen Sie zuerst nach der Serverspiegelung. Wenn Sie dann (hoffentlich) einige Antworten haben, fragen Sie, wie Sie diese auf einer VM implementieren können.
Nifle
Eine andere Möglichkeit wäre, eine einzelne Instanz der VM auf dem Notebook zu haben und von zu Hause aus vom Hauptsystem aus auf sie zuzugreifen.
Geselle Geek
Sie müssten nur Software und Dokumente synchronisieren - nicht die gesamten VMs - da Sie nicht zwei Computer im Netzwerk mit denselben MAC-Adressen und Hostnamen haben können. Das würde Chaos verursachen.
Paradroid
@Journeyman Geek: Ich hatte nicht darüber nachgedacht, es könnte zwar funktionieren, aber es wäre etwas langsamer, wenn man bedenkt, dass die Festplatte meines Notebooks im Vergleich zur SSD auf meinem Desktop crawlt.
Danielkza
1
Gibt es einen Grund, warum Sie die VM nicht auf einem externen Laufwerk ausführen und von System zu System verschieben?
Dave M

Antworten:

2

Die Verwendung rsyncfür bidirektionale Operationen ist schwierig. Ich würde vorschlagen, dass Sie unisonals Alternative betrachten. Es funktioniert in beide Richtungen und sagt Ihnen, was es vorher tun wird, und erkennt auch Dateien, die gleichzeitig auf beiden Seiten manipuliert wurden.

Wenn Sie die Synchronisierung außerhalb der VM ausführen, treten die von Ihnen beschriebenen Probleme auf. Die Ergebnisse beim Ausführen innerhalb der VM hängen stark davon ab, was Sie synchronisieren.

  • Das Synchronisieren Ihres Home-Verzeichnisses sollte überhaupt kein Problem sein und den größten Teil Ihrer täglichen Arbeit synchronisieren, nehme ich an.
  • Das Synchronisieren von Paketmanagerdaten ist nur dann sinnvoll, wenn Sie fast alles vollständig synchronisieren, möglicherweise mit einigen wohlüberlegten Ausnahmen. Bei einer bidirektionalen Synchronisierung führt dies jedoch fast immer zu einem Konflikt. Daher würde ich dies nur für einen rsync-ähnlichen Ansatz empfehlen.
  • Sowohl die Synchronisierung /etcals auch Ihr Zuhause sollten die meisten Konfigurationsdaten synchronisieren und dennoch nur geringe Auswirkungen auf die Funktionen des Paketmanagers haben. Aber wenn Sie eine Software auf einer VM installieren, müssen Sie manuell es auch auf der anderen Seite installieren, und wahrscheinlich sollte nur sync nach so tun, falls das Upgrade geändert einige Konfigurationsdatei.
MvG
quelle
1

Versuchen Sie nicht, die virtuelle Maschine überhaupt zu "synchronisieren".

Denken Sie darüber nach: Sie "synchronisieren" Ihren Desktop und Ihr Notebook nicht auf diese Weise. Sie behandeln sie als separate Computer und verwenden Dienste wie Dropbox, Google Apps usw. oder sogar einen USB-Stick, um Ihre Dateien zu bearbeiten. Behandeln Sie die beiden Ubuntu-VMs auf ähnliche Weise als separate Computer und verwenden Sie Dienste wie Ubuntu One und die oben genannten, um Ihre wichtigen Dateien synchron zu halten.

Wenn Sie Bedenken haben, die installierte Software synchron zu halten, können Sie verwenden

dpkg --list-selections

um eine Liste der Software zu erhalten, die Sie speziell auf einem Computer installiert haben, und installieren Sie dann dieselbe Software auf dem anderen.

Michael Hampton
quelle