Mantenere e sincronizzare una macchina virtuale VirtualBox tra due computer separati


13

Ho una VM VirtualBox con un progetto a cui sto lavorando. Mi piacerebbe poter usare questa VM su due computer separati, così posso lavorarci dove mi trovo in quel momento. Ho visto le risposte sul trasferimento, la clonazione e il backup delle macchine virtuali, ma nulla sull'avere due copie e mantenerle sincronizzate.

Qual è il modo più semplice (passaggi più semplici o più semplici) o migliore (il rischio più basso di problemi) per mantenere una singola immagine VM su più computer?

Idealmente, preferirei non eseguire la VM da un'unità USB poiché uno dei due computer ha pochissime porte USB, ma se sarà la cosa migliore, la prenderò (in realtà non sono sicuro che ci siano eventuali problemi con l'esecuzione di una macchina virtuale da un'unità USB). Tuttavia, avrei intenzione di utilizzare un'unità USB per trasferire qualsiasi file tra computer.

Risposte:


10

Penso che tu abbia due opzioni qui: la prima è quella di impostare (nelle installazioni di Virtualbox su entrambi i computer) la cartella in cui sono archiviate le VM su una sorta di disco rigido portatile o remoto; se i computer che utilizzerai sono collegati insieme su una rete, puoi utilizzare una cartella condivisa, in caso contrario, temo che l'unica soluzione sia un pendrive USB o un disco rigido esterno. Per impostare la cartella, vai a File > Preferences > General > Default Machine Folder. La velocità della chiave USB potrebbe essere un limite alle prestazioni complessive.

La seconda soluzione, che richiede anche un pendrive o qualcosa di simile (ma solo per portare con sé i file della VM), è esportare e importare manualmente la VM desiderata ogni volta che è necessario portarla via. Puoi farlo selezionando la VM e vai con File > Export Appliancee File > Import Appliance. Esportando, verrà creato un file con il formato .ova, è un archivio che contiene tutti i file necessari per usare la VM, importandolo in un'altra installazione, avrai la stessa VM sul secondo computer. In questo modo stai usando il pendrive semplicemente per portare in giro i tuoi file, che una volta reimportati verranno archiviati e accessibili dal tuo computer, quindi la velocità USB non è un problema.


5

Di fronte esattamente allo stesso problema e penso di averlo risolto.

Supponi di avere due macchine, A e B. Crea / prepara la tua VM in A. Dopo di che scatta un'istantanea o crea un clone collegato (entrambi funzionano, ma ulteriori passaggi differiranno, ne darà uno, puoi risolvere l'altro)

Ora, assicurati di avere un Virtualbox appena installato in B. Copia VM ~ / .VirtualBox e ~ / VirtualBox da A a B con una USB (considerando che si trovano in siti lontani)

Ora, se hai scelto il modo snapshot, sincronizza la cartella ~ / VirtualBox VMs / YourVM / Snapshots fino a quando non diventa abbastanza grande. Se diventa più grande, quindi crea un'altra istantanea in A e copia la cartella YourVM in B per una volta e sincronizza solo questo nuovo file di istantanea nella cartella Istantanee.

Se scatti un'istantanea o crei un clone collegato in A o B, questo rituale verrà infranto, avvisato.

Testato in 5.0.20


risposta molto intrigante. lo faresti ancora oggi o c'è un modo migliore?
l --''''''--------- '' '' '' '' '' ''

4

So che questa discussione ha un anno, ma è un risultato di ricerca importante su Google per il problema della condivisione di una VM tra due posizioni.

VirtualBox consente di connettersi in remoto a una VM in esecuzione utilizzando RDP. Se non vuoi che la VM funzioni continuamente, scegli un modo per avviarla da remoto.

C'è un'opzione per "Consenti connessioni multiple", quindi non dovresti nemmeno disconnetterti da una posizione prima di connetterti da un'altra.

Se non sei in grado di ospitare la tua VM, una rapida ricerca su Google ha trovato i provider che ospiteranno le tue immagini VirtulaBox per te.

Non ho mai provato tutto questo ...


4

Penso che la risposta di Sekhemty sia l'unico modo per fare quello che vuoi.

Ma perché è necessario spostare la macchina virtuale? Perché non spostare semplicemente i tuoi progetti? Imposta il tuo progetto in un git privato e basta spingere e tirare quando ne hai bisogno.

Un altro metodo da provare, se è necessario mantenere la coerenza della macchina e si sta cambiando molto, sarebbe quello di utilizzare una configurazione vagabonda e chef / burattino. Funziona usando uno chef (che è una gemma rubino) e un pupazzo (non ho usato il burattino) per dire al vagabondo cosa vuoi che la tua VM includa e installi.

Funziona usando uno script, usando chef o burattino, e Vagrant legge questo script all'avvio della VM. Se vuoi che qualcosa sia installato, basta aggiungerlo allo script e se non è già lì verrà installato quando "vaghi su"! Mi ci è voluto un po 'di tempo per abituarmi, curva di apprendimento abbastanza ripida, ma è molto efficiente una volta che ti ci abitui e significherà che devi solo spostarti all'interno di un file di script anziché di un'intera VM.

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


2
Non si tratta solo del codice (che va in un repository) e della configurazione; è perché la VM è il mio ambiente di sviluppo. Ho iniziato a usare VirtualBox in modo da poter lavorare su Ubuntu su un computer con Windows. Questo mi darebbe un ambiente di sviluppo coerente quando è meno conveniente spostare l'ambiente di quanto non sarebbe spostarne una copia.
rsgoheen,

Bene, allora il vagabondo e lo chef / burattino sembrano i migliori. In questo modo se devi cambiare qualcosa nel tuo ambiente di sviluppo, non è necessario esportare e importare la tua VM, aggiungi semplicemente ciò che hai installato nello script e Vagrant lo inserirà nella tua VM all'avvio. È molto utile anche per avere diverse istanze di build di sviluppo, in quanto Vagrant funziona con una "base-box (OS)" e si basa anche su ciò che lo script dice, in modo da poter avere più ambienti di test ma usando solo il spazio di uno.
boundless08

2

È possibile risincronizzare le immagini della macchina virtuale tra i due computer.


2
Un po 'più di dettagli renderebbe questa una risposta migliore. Puoi elaborare?
Dave M,

2

Seguendo il principio KISS, dopo che le VM sono state registrate e le impostazioni sono state regolate, basta attraversare rsyncil *.vdifile mentre entrambi i lati sono spenti.

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

Ovviamente non ci sarà modo di "unire" i conflitti, quindi è necessario essere disciplinati su come apportare modifiche alla VM e rispecchiarle.

Nel frattempo, potresti mettere la maggior parte dei tuoi dati personali su un NAS in modo che sia sempre aggiornato e accessibile da tutte le macchine. Inoltre, è possibile montare ulteriori dischi .vdi per contenere la partizione di swap o altri archivi temporanei in modo da non aumentare le dimensioni del sistema .vdi.

Se sei su Windows, dovresti installare cygwin (o msys2) per il programma ssh e rsync.


1

Una possibile soluzione, a seconda del caso d'uso, è una variazione sulla risposta di cjpembo.

Se i due computer separati si trovano entrambi sulla stessa LAN nella stessa posizione, potrebbe essere possibile eseguire una macchina virtuale su un server ESXi o simile e utilizzare la funzione di console remota degli strumenti di gestione (o anche SSH) per accedere da entrambi gli altri computer.

Ovviamente, se uno dei computer con cui vuoi usare la VM è un laptop che si sposterà, probabilmente questa non è una soluzione, specialmente se devi condividere una grande quantità di dati tra "host" e "guest" ambienti.

Se la VM è relativamente autonoma, le funzionalità della console remota di VMware sono piuttosto efficienti, quindi a meno che non sia necessaria la riproduzione video nella VM, potrebbe funzionare abbastanza bene anche da remoto per essere abbastanza buono.


0

Ho raggiunto questo obiettivo utilizzando un SSD esterno su disco USB C. La macchina virtuale si troverà nel disco ssd e farà riferimento nella mia configurazione di virtualbox su entrambi i laptop. Ho preso un USB 3.1 Gen2 Type-C (10 Gbps), modello 540 MB / s, e le prestazioni sono buone.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.