Jak zsynchronizować dwa wystąpienia maszyny wirtualnej do użycia na różnych komputerach?

8

Od dłuższego czasu korzystam z VirtualBox na pulpicie. Po niedawnym zakupie notebooka chcę mieć możliwość zabrania ze sobą maszyny wirtualnej Ubuntu, a zmiany, które wprowadzę w notebooku, zostaną przeniesione na pulpit i odwrotnie, kiedy przyjadę / wyjdę z domu. System operacyjny hosta to Windows 7 na obu komputerach, na którym działa VirtualBox 4.

Moją pierwszą myślą było zsynchronizowanie samych plików dysków wirtualnych. Moim narzędziem z wyboru byłaby rsyncjego wersja Cygwin, wykorzystująca --inplaceopcję ograniczenia zapisu w jak największym stopniu. Byłoby to jednak niewykonalne: powstrzymałoby mnie to od osobnej pracy na maszynach wirtualnych, ponieważ rsyncnie miałbym możliwości wykrycia konfliktów i ich prawidłowego scalenia bez znajomości systemów plików znajdujących się w kontenerach.

Następną opcją byłoby rsyncpołączenie uruchomionych maszyn. Czy to zadziałałoby bez zbędnego zarządzania pakietami? Czy musiałbym robić coś ręcznie oprócz aktualizacji, takich jak nowe jądro lub sterowniki? Czy jest jakieś inne rozwiązanie, które mogłoby działać lepiej?

danielkza
źródło
Myślę, że powinieneś podzielić to pytanie na dwie części. Najpierw zapytaj o dublowanie serwera. Następnie, gdy (mam nadzieję) masz kilka odpowiedzi, zapytaj, jak zaimplementować je na maszynie wirtualnej.
Nifle
inną możliwością byłoby posiadanie pojedynczej instancji maszyny wirtualnej na komputerze przenośnym i dostęp zdalny z głównego systemu w domu.
Journeyman Geek
Będziesz musiał zsynchronizować tylko oprogramowanie i dokumenty - nie całe maszyny wirtualne - ponieważ nie możesz mieć w sieci dwóch komputerów z tymi samymi adresami MAC i nazwami hostów. Spowodowałoby to chaos.
paradroid
@Journeyman Geek: Nie myślałem o tym, to może rzeczywiście działać, ale byłoby trochę wolniej, biorąc pod uwagę, że dysk twardy mojego laptopa indeksuje się w porównaniu z dyskiem SSD na pulpicie.
danielkza
1
Czy istnieje powód, dla którego nie uruchamiasz maszyny wirtualnej na dysku zewnętrznym i nie przenosisz jej z systemu do systemu?
Dave M

Odpowiedzi:

2

Korzystanie rsyncz operacji dwukierunkowych jest trudne; Proponuję spojrzeć na to unisonjako alternatywę. Będzie działać w obie strony i powie ci, co zamierza zrobić, zanim to zrobi, a także wykryje pliki zmanipulowane jednocześnie po obu stronach.

Uruchomienie synchronizacji poza maszyną wirtualną spowoduje problemy, które opisujesz. Wyniki podczas uruchamiania w maszynie wirtualnej będą w dużej mierze zależeć od tego , co synchronizujesz.

  • Synchronizacja katalogu domowego nie powinna stanowić żadnego problemu i powinna zsynchronizować większość codziennej pracy.
  • Synchronizacja danych menedżera pakietów ma sens tylko wtedy, gdy wykonasz pełną synchronizację prawie wszystkiego, być może z kilkoma dobrze przemyślanymi wyjątkami. W przypadku synchronizacji dwukierunkowej prawie zawsze prowadzi to do konfliktu, więc radzę to tylko w przypadku podejścia w stylu rsync.
  • Synchronizacja, /etcpodobnie jak dom, powinna synchronizować większość danych konfiguracyjnych i nadal mieć niewielki wpływ na to, co robi menedżer pakietów. Ale jeśli zainstalujesz jakieś oprogramowanie na jednej maszynie wirtualnej, będziesz musiał ręcznie zainstalować je również na drugiej maszynie i prawdopodobnie powinieneś zsynchronizować dopiero po wykonaniu tej czynności, na wypadek gdyby aktualizacja zmieniła jakiś plik konfiguracyjny.
MvG
źródło
1

Zastanów się, czy w ogóle nie próbować „synchronizować” maszyny wirtualnej.

Pomyśl o tym: nie synchronizujesz komputera i notebooka w ten sposób. Traktujesz je jako osobne maszyny i korzystasz z usług takich jak Dropbox, Google Apps itp., A nawet z pamięci USB do pracy na swoich plikach. Podobnie traktuj dwie maszyny wirtualne Ubuntu jako osobne komputery i korzystaj z usług takich jak Ubuntu One i wyżej, aby synchronizować ważne pliki.

Jeśli martwisz się o synchronizację zainstalowanego oprogramowania, możesz użyć

dpkg --list-selections

aby uzyskać listę oprogramowania specjalnie zainstalowanego na jednym komputerze, a następnie zainstalować to samo oprogramowanie na drugim.

Michael Hampton
źródło