Jak zachować mały różnicowy dysk twardy Virtualbox

8

Próbuję użyć dysku twardego virtualbox na kilku komputerach, używając synchronizacji Dropbox (popularne narzędzie chmurowe). Zakładam, że żadne dwie maszyny nie otworzą tego samego dysku w tym samym czasie.

Aby zmniejszyć transfer danych, chciałbym użyć tylko różnicowego dysku twardego, który będzie przechowywać niewielką ilość „dokumentów”, a nie synchronizację całego dysku twardego (nie ufam, że synchronizacja różnicowa Dropbox jest bardzo skuteczna) . Korzystając z tej oficjalnej dokumentacji VirtualBox , podjąłem następującą sztuczkę, która tylko częściowo mnie satysfakcjonuje.

  • Zbuduj napęd różnicowy za pomocą triku:
    • Ustaw dysk w tryb multiattach (patrz powyższa dokumentacja)
    • Dokonaj prostej zmiany na dysku gościa, który utworzy plik diff
  • Przywróć (używając VBox Media Manager, Plik> Virtual Media Manager) napęd podstawowy do trybu „normalnego” (potrzebuję tego, aby móc podłączyć go do kilku komputerów)
  • Odłącz główny dysk od maszyny i zamiast tego podłącz dyferencjał
    • To wymaga dodatkowej sztuczki podczas dołączania do nowego komputera: dołącz, a następnie odłącz główny, a następnie dołącz diff, w przeciwnym razie VirtualBox nie rozpozna GUID dysku

Ta sztuczka spełnia swoje zadanie: ponieważ pracuję tylko z dyskiem różnicowym, baza nigdy nie jest modyfikowana, a zatem nigdy nie jest synchronizowana przez sieć. Zła część jest jednak, że nawet jeśli niewiele rośnie w ilości przechowywanych danych , napęd diff jest rosnąca w przestrzeni VDI (Virtual plik Dysku na hoście) wykonuje się na komputerze , ponieważ, jak fragmenty gość systemowe i pliki porusza . I tak zaczynam synchronizować ciągle powiększający się dysk twardy diff, tracąc zalety posiadania diff.

Problem polega na tym, że chcę, aby sposób na regularne „scalanie” lub „defragmentację zmian” na diff vdi utrzymywał małą synchronizację. Mogę sobie pozwolić (choć nie chcę) na pełną synchronizację głównego vdi za każdym razem, gdy dokonam tego scalenia. Ale jedynym sposobem, jaki wymyśliłem, jest odtworzenie pliku różnicowego vdi przy użyciu tego samego procesu i przywrócenie plików na tym dysku za pomocą pewnego rodzaju kopii zapasowej. Niezbyt przydatny. Czy ktoś ma lepszy pomysł?

Oczywiście istnieje inny sposób pracy tylko we współdzielonym katalogu (między hostem a gościem), ale będzie on wymagał dodatkowej konfiguracji (wiele dowiązań symbolicznych na gościu) i nie chcę, aby użytkownicy hosta mieli z tym problem pliki gości.

Czy byłem wystarczająco jasny?

PPC
źródło
Kilka dodatkowych informacji: Mój system gościa to minimalna wersja WinXP z niezmienną częścią ~ 5GiB i częścią „dokumentów” ~ 500MiB. Hosty to kilka komputerów z systemem Windows i Linux, niektóre to małe laptopy dyskowe z nieregularnym połączeniem
PPC
Mówisz, że „nie ufasz, że synchronizacja różnicowa DropBox jest bardzo skuteczna”. Czy rzeczywiście to przetestowałeś?
Colin 't Hart
@ Colin'tHart: Niezbyt dokładne testowanie, ale wprowadziłem niewielkie zmiany na dysku wirtualnym (kilka nowych plików i zmodyfikowałem kilka starych) podczas produkcji, a synchronizacja zajęła mniej więcej czas na przesłanie całego pliku. Być może Dropbox nie jest winny (może to NTFS wprowadza większe zmiany niż oczekiwano), ale rezultat jest taki: trwa wieki
PPC

Odpowiedzi:

3

VBoxManage modyfikuj - compact wycina wszystkie wyzerowane bloki za pomocą odpowiedniego narzędzia (patrz instrukcja). Nie jestem pewien, czy podłączenie oddzielnego dysku dla dokumentów (może zapisu ) byłoby lepsze dla twoich potrzeb.

ignis
źródło
Brzmi jak dobry pomysł do zbadania. Nie jestem pewien, czy rzeczywiście zachowa przepustowość (jeśli działa na diff), ponieważ taka zmiana prawdopodobnie zepsuje algorytm dropbox „inteligentnej synchronizacji”. Powinienem spróbować wprowadzić taką zmianę tak systematyczną, jak to możliwe (za każdym razem, gdy użytkownik zamyka swoją maszynę wirtualną?). W każdym razie świetny pomysł.
PPC,
0

Jeśli wszystkie systemy operacyjne hosta to Mac OS 10.5+, możesz użyć mechanizmu Sparse Bundle, który dobrze nadaje się do przyrostowej synchronizacji / tworzenia kopii zapasowych za pomocą narzędzi takich jak Time Machine lub rsync: http://en.wikipedia.org/wiki/Sparse_image# Sparse_Bundle

Używam go przez Dropbox z woluminem 3 GB i działa dobrze. Oczywiście Twój dysk VM ma prawdopodobnie co najmniej 10-20 GB, więc pierwsza synchronizacja będzie bardzo wolna. Może to zostać przyspieszone przez Dropbox z synchronizacją LAN.

Ponadto, musisz uważać, aby zamontować go tylko raz w danym momencie (jak powiedziałeś) i pozwolić na synchronizację po zatrzymaniu maszyny wirtualnej / stanie gotowości.

norz
źródło
Nie mogłem przetestować twojego rozwiązania, moi gospodarze to win7 i Ubuntu Natty :(
PPC