Come mantenere un piccolo disco rigido Virtualbox differenziale


8

Sto cercando di utilizzare un disco rigido di virtualbox su più computer utilizzando la sincronizzazione di dropbox (uno strumento cloud popolare). Presumo che due macchine non aprano la stessa unità contemporaneamente.

Per ridurre i trasferimenti di dati, vorrei utilizzare solo un differenziale del mio disco rigido che memorizzerà solo un piccolo volume di "documenti", non sincronizzando l'intero disco rigido (non mi fido che la sincronizzazione differenziale di Dropbox sia molto efficace) . Usando questa documentazione ufficiale di VirtualBox , ho realizzato il seguente trucco che mi soddisfa solo in parte.

  • Costruisci un differenziale con un trucco:
    • Rendere l'unità multiattach (vedere la documentazione sopra)
    • Apporta una semplice modifica all'unità sul guest, che creerà un file diff
  • Ripristina (utilizzando VBox Media Manager, File> Virtual Media Manager) l'unità di base in modalità "normale" (ho bisogno di questo per poterlo collegare a più macchine)
  • Staccare l'unità principale dalla macchina e collegare invece il diff
    • Questo richiede un ulteriore trucco quando si collega a una nuova macchina: collegare quindi scollegare il principale, quindi collegare il diff, altrimenti VirtualBox non riconoscerà il GUID del disco

Questo trucco fa il lavoro: dato che lavoro solo con il disco diff, la base non viene mai modificata e quindi mai sincronizzata sulla rete. La parte negativa è che, anche se la quantità di dati archiviati è in crescita molto ridotta , l'unità diff sta crescendo nello spazio che il vdi (file di archiviazione dell'unità virtuale sull'host) assume sull'host a causa di come il sistema operativo guest frammenta e sposta i file . E così sto iniziando a sincronizzare un disco rigido diff sempre crescente, perdendo i vantaggi di avere un diff.

Il problema è: voglio un modo per 'unire' regolarmente o 'deframmentare le modifiche' sul diff vdi per mantenere piccola la sincronizzazione. Posso permettermi (anche se non lo voglio) di effettuare una sincronizzazione completa del VDI principale ogni volta che faccio questa unione. Ma l'unico modo in cui ho pensato è ricreare un diff vdi usando lo stesso processo e ripristinare i file su quel disco attraverso un qualche tipo di backup. Non molto utile. Qualcuno ha un'idea migliore?

Ovviamente c'è un altro modo di lavorare solo su una directory condivisa (tra l'host e il guest), ma ciò richiederà una configurazione aggiuntiva (molti link simbolici sul guest) e non voglio che gli utenti host facciano casino file guest.

Sono stato abbastanza chiaro?


Alcune informazioni extra: Il mio sistema guest è un WinXP minimo con parte immutabile di ~ 5GiB e una parte 'documenti' di ~ 500MiB. Gli host sono diverse macchine Windows e Linux, alcuni sono piccoli laptop con connessione irregolare
PPC

Dici che "non ti fidi che la sincronizzazione differenziale di DropBox sia molto efficace". L'hai provato?
Colin 't Hart,

@ Colin'tHart: non è stato un test molto approfondito, ma ho apportato piccole modifiche all'unità virtuale (alcuni nuovi file e modificati alcuni vecchi) durante la produzione e la sincronizzazione ha impiegato all'incirca il tempo per caricare l'intero file. Forse Dropbox non è da biasimare (potrebbe essere NTFS che apporta cambiamenti maggiori del previsto), ma il risultato è: ci vogliono anni
PPC

Risposte:


3

VBoxManage edithd --compact eliminerà tutti i blocchi che è stato azzerato con uno strumento appropriato (consultare il manuale). Non sono sicuro se allegare un disco separato per i documenti (forse write-through ) sarebbe meglio per le tue esigenze.


Sembra una buona idea indagare. Non sono sicuro che conserverà effettivamente la larghezza di banda (se funziona su diff), poiché una tale modifica probabilmente confonderà molto l'algoritmo di "sincronizzazione intelligente" di Dropbox. Dovrei provare a rendere tale modifica il più sistematica possibile (ogni volta che un utente chiude la sua VM?). Ottima idea comunque.
PPC,

0

Se tutti i sistemi operativi host sono Mac OS 10.5+, è possibile utilizzare il meccanismo Sparse Bundle, adatto per la sincronizzazione / backup incrementale con strumenti come Time Machine o rsync: http://en.wikipedia.org/wiki/Sparse_image# Sparse_Bundle

Lo sto usando su Dropbox con un volume di 3 GB e funziona bene. Ovviamente, il tuo disco VM è probabilmente almeno 10-20 GB, quindi la prima sincronizzazione sarà molto lenta. Tuttavia, può essere accelerato da Dropbox con sincronizzazione LAN.

Inoltre, devi fare attenzione a montarlo solo una volta in un dato momento (come hai detto) e per consentire la sincronizzazione dopo lo stato di arresto / standby della VM.


Impossibile testare la tua soluzione, i miei host sono win7 e Ubuntu Natty :(
PPC
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.