Come sincronizzare due istanze di una macchina virtuale da utilizzare in diversi computer?


8

Uso VirtualBox sul mio desktop da un po 'di tempo. Avendo recentemente acquistato un notebook, voglio essere in grado di portare con me la mia macchina virtuale Ubuntu e fare in modo che le modifiche che faccio sul notebook si propaghino sul desktop e viceversa quando arrivo / esco di casa. Il sistema operativo host è Windows 7 su entrambi i computer, con VirtualBox 4.

Il mio primo pensiero è stato la sincronizzazione dei file del disco virtuale stessi. Il mio strumento preferito sarebbe rsync, in particolare la versione di Cygwin, utilizzando l' --inplaceopzione per ridurre il più possibile le scritture. Ma sarebbe impossibile: mi impedirebbe di lavorare separatamente sulle macchine virtuali, perché non rsyncavrebbe modo di rilevare i conflitti e unirli correttamente senza la conoscenza dei filesystem che si trovano all'interno dei contenitori.

L'opzione successiva sarebbe quella di rsyncunire le macchine in esecuzione l'una con l'altra. Funzionerebbe senza incasinare la gestione dei pacchetti? Dovrei fare qualcosa manualmente oltre agli aggiornamenti come nuovo kernel o driver? Esistono altre soluzioni che potrebbero funzionare meglio?


Penso che dovresti dividere questa domanda in due. Per prima cosa chiedere il mirroring del server. Quindi quando (si spera) hai qualche risposta, chiedi come implementarli su una VM.
Nifle,

un'altra possibilità sarebbe quella di avere una singola istanza della VM sul notebook e di accedervi in ​​remoto dal sistema principale da casa.
Journeyman Geek

Dovresti solo sincronizzare software e documenti - non le intere VM - poiché non puoi avere due macchine in rete con gli stessi indirizzi MAC e nomi host. Ciò causerebbe caos.
paradroid

@Journeyman Geek: non ci avevo pensato, avrebbe funzionato davvero, ma sarebbe stato un po 'più lento considerando il disco rigido del mio notebook che scansiona rispetto all'SSD sul mio desktop.
danielkza,

1
C'è un motivo per cui non si esegue la VM su un'unità esterna e la si sposta da un sistema all'altro?
Dave M,

Risposte:


2

L'uso rsyncper le operazioni bidirezionali è difficile; Ti suggerirei di guardare unisoncome alternativa. Funzionerà in entrambi i modi e ti dirà cosa farà prima di farlo, e rileverà anche i file manipolati contemporaneamente su entrambi i lati.

L'esecuzione della sincronizzazione all'esterno della macchina virtuale avrà i problemi descritti. I risultati quando eseguiti all'interno della VM dipenderanno notevolmente da ciò che si sincronizza.

  • Sincronizzare la tua home directory non dovrebbe essere affatto un problema e dovrei sincronizzare la maggior parte del tuo lavoro quotidiano presumo.
  • La sincronizzazione dei dati del gestore pacchetti avrà senso solo se si esegue una sincronizzazione completa di quasi tutto, forse con alcune eccezioni ben ponderate. In una sincronizzazione bidirezionale, ciò porterà quasi sempre a un conflitto, quindi consiglio questo solo per un approccio in stile rsync.
  • La sincronizzazione /etce la casa dovrebbero sincronizzare la maggior parte dei dati di configurazione e avere comunque un impatto limitato su ciò che fa il gestore pacchetti. Ma se installi un software su una VM, dovrai installarlo manualmente anche sull'altra e probabilmente dovresti sincronizzarlo solo dopo averlo fatto, nel caso in cui l'aggiornamento abbia cambiato un file di configurazione.

1

Valuta di non provare a "sincronizzare" la macchina virtuale.

Pensaci: non "sincronizzare" desktop e notebook in questo modo. Li tratti come macchine separate e usi servizi come Dropbox, Google Apps, ecc. O persino una chiavetta USB, per lavorare sui tuoi file. Allo stesso modo, tratta le due macchine virtuali Ubuntu come computer separati e usa servizi come Ubuntu One e quelli precedenti per mantenere sincronizzati i tuoi file importanti.

Se sei preoccupato di mantenere sincronizzato il software installato, puoi usarlo

dpkg --list-selections

per ottenere un elenco del software che hai installato specificamente su un computer, quindi installa lo stesso software sull'altro.

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.