Konserwacja i synchronizacja maszyny wirtualnej VirtualBox między dwoma oddzielnymi komputerami

13

Mam maszynę wirtualną VirtualBox, która ma projekt, nad którym pracuję. Chciałbym móc korzystać z tej maszyny wirtualnej na dwóch osobnych komputerach, więc mogę pracować na niej tam, gdzie akurat jestem. Widziałem odpowiedzi na temat przesyłania, klonowania i tworzenia kopii zapasowych maszyn wirtualnych, ale nic na temat posiadania dwóch kopii i utrzymywania ich w synchronizacji.

Jaki jest najłatwiejszy (najmniejszy lub najprostszy krok) lub najlepszy (najmniejszy ryzyko problemów) sposób utrzymania jednego obrazu maszyny wirtualnej na wielu komputerach?

Idealnie wolałbym nie uruchamiać maszyny wirtualnej z napędu USB, ponieważ jeden z dwóch komputerów ma bardzo mało portów USB, ale jeśli to będzie najlepsze, wezmę to (właściwie nie jestem pewien, czy są wszelkie problemy z uruchomieniem maszyny wirtualnej z dysku USB). Chciałbym jednak użyć dysku USB do przesyłania dowolnych plików między komputerami.

rsgoheen
źródło

Odpowiedzi:

10

Myślę, że masz tutaj dwie opcje: pierwszą jest ustawienie (w instalacjach Virtualbox na obu komputerach) folderu, w którym maszyny wirtualne są przechowywane na jakimś przenośnym lub zdalnym dysku twardym; jeśli komputery, których będziesz używać, są połączone ze sobą w sieci, możesz użyć folderu współdzielonego, jeśli nie, obawiam się, że jedynym rozwiązaniem jest pendrive USB lub zewnętrzny dysk twardy. Aby ustawić folder, przejdź do File > Preferences > General > Default Machine Folder. Szybkość klucza USB może ograniczać ogólną wydajność.

Drugim rozwiązaniem, które również wymaga pendrive'a lub czegoś podobnego (ale tylko do przenoszenia plików VM), jest ręczne eksportowanie i importowanie pożądanej maszyny wirtualnej za każdym razem, gdy trzeba ją zabrać. Możesz to zrobić, wybierając maszynę wirtualną i przejść za pomocą File > Export Appliancei File > Import Appliance. Po wyeksportowaniu zostanie utworzony plik w formacie .ova, jest to archiwum zawierające wszystkie pliki potrzebne do korzystania z maszyny wirtualnej, importując ją w innej instalacji, będziesz mieć tę samą maszynę wirtualną na drugim komputerze. W ten sposób używasz pendrive do przenoszenia plików, które po ponownym zaimportowaniu będą przechowywane i dostępne z twojego komputera, dlatego prędkość USB nie stanowi problemu.

Sekhemty
źródło
5

W obliczu dokładnie tego samego problemu i myślę, że go rozwiązałem.

Załóżmy, że masz dwie maszyny: A i B. Utwórz / przygotuj maszynę wirtualną w A. Następnie zrób migawkę lub stwórz połączony klon (oba działają, ale dalsze kroki różnią się, da jeden, możesz rozwiązać drugi)

Teraz upewnij się, że masz świeżo zainstalowany Virtualbox w B. Skopiuj maszyny wirtualne ~ / .VirtualBox i ~ / VirtualBox z A do B za pomocą USB (biorąc pod uwagę, że znajdują się one w odległych witrynach)

Teraz, jeśli wybrałeś migawkę, zsynchronizuj folder ~ / VirtualBox VMs / YourVM / Snapshots, aż stanie się wystarczająco duży. Jeśli się powiększy, utwórz kolejną migawkę w A i skopiuj folder YourVM do B raz i zsynchronizuj tylko ten nowy plik migawki w folderze Migawki.

Jeśli zrobisz migawkę lub utworzysz połączonego klona w A lub B, ten rytuał zostanie przerwany, ostrzegaj.

Testowane w 5.0.20

Malkocoglu
źródło
bardzo intrygująca odpowiedź. zrobiłbyś to jeszcze dzisiaj, czy jest lepszy sposób?
l - '' '' ----------- '' '' '' '
4

Wiem, że ten wątek ma już rok, ale jest to najlepszy wynik wyszukiwania w Google dotyczący problemu udostępniania jednej maszyny wirtualnej między dwiema lokalizacjami.

VirtualBox pozwala na zdalne połączenie z uruchomioną maszyną wirtualną za pomocą RDP. Jeśli nie chcesz, aby maszyna wirtualna działała nieprzerwanie, skonfiguruj sposób jej zdalnego uruchomienia.

Istnieje opcja „Zezwalaj na wiele połączeń”, więc nie musisz nawet rozłączać się z jednej lokalizacji przed połączeniem z inną.

Jeśli nie jesteś w stanie hostować własnej maszyny wirtualnej, szybkie wyszukiwanie w wyszukiwarce google znalazło dostawców, którzy będą hostować twoje obrazy VirtulaBox dla Ciebie.

Nigdy tego nie próbowałem ...

cjpembo
źródło
4

Myślę, że odpowiedź Sekhemty'ego jest jedynym sposobem na robienie tego, co chcesz.

Ale dlaczego trzeba przenieść maszynę wirtualną? Dlaczego nie przenieść swoich projektów? Skonfiguruj swój projekt w prywatnym git i po prostu pchaj i ciągnij w razie potrzeby.

Inną metodą, jeśli chcesz zachować spójność maszyny i często się zmieniasz, byłoby użycie włóczęgi i konfiguracji szefa kuchni / lalek. Działa to za pomocą szefa kuchni (który jest rubinowym klejnotem) i marionetki (nie użyłem marionetki), aby powiedzieć włóczęgi, co chcesz, aby Twoja maszyna wirtualna dołączyła i zainstalowała.

Działa przy użyciu skryptu, szefa kuchni lub marionetki, a włóczęga czyta ten skrypt podczas uruchamiania maszyny wirtualnej. Jeśli chcesz coś zainstalować, po prostu dodaj go do skryptu, a jeśli jeszcze go nie ma, zostanie on zainstalowany po „włóczeniu się”! Zajęło mi trochę czasu, aby się do tego przyzwyczaić, wystarczająco stroma krzywa uczenia się, ale jest bardzo wydajna, gdy się do tego przyzwyczaisz, a to oznacza, że ​​będziesz musiał po prostu poruszać się po pliku skryptu zamiast całej maszyny wirtualnej.

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

bezgraniczna08
źródło
2
Nie chodzi tylko o kod (który trafia do repozytorium) i konfigurację; to dlatego, że VM jest moim środowiskiem programistycznym. Zacząłem używać VirtualBox, aby móc pracować w Ubuntu na komputerze z systemem Windows. To dałoby mi spójne środowisko programistyczne, gdy przeniesienie środowiska jest mniej wygodne niż przeniesienie jego kopii.
rsgoheen
Cóż, włóczęga i szef kuchni / kukiełka wydają się najlepsi. W ten sposób, jeśli chcesz coś zmienić w środowisku deweloperskim, nie musisz eksportować i importować swojej maszyny wirtualnej, po prostu dodajesz to, co zainstalowałeś do skryptu, a włóczęga wbuduje ją w maszynę wirtualną podczas uruchamiania. Jest to bardzo przydatne w przypadku różnych wersji kompilacji deweloperskiej, ponieważ włóczęga działa w oparciu o „system podstawowy” i opiera się na tym, co mówi skrypt, abyś mógł mieć wiele środowisk testowych, ale tylko używając przestrzeń jednego.
bezgraniczna08
2

Możesz synchronizować obrazy maszyn wirtualnych między dwoma komputerami.

Alexander
źródło
2
Trochę więcej szczegółów sprawi, że będzie to lepsza odpowiedź. Czy możesz rozwinąć?
Dave M
2

Zgodnie z zasadą KISS po VMS są zarejestrowane i ustawienia są regulowane, podobnie plik drugiej zaś obie strony są wyłączane.rsync*.vdi

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

Oczywiście nie będzie możliwości „scalenia” konfliktów, więc musisz być zdyscyplinowany w zakresie wprowadzania zmian w maszynie wirtualnej i ich odzwierciedlania.

Tymczasem możesz umieścić większość swoich danych osobowych na serwerze NAS, aby był zawsze aktualny i dostępny ze wszystkich urządzeń. Ponadto można zamontować dodatkowe dyski .vdi, które będą zawierać partycję wymiany lub inną pamięć tymczasową, aby nie zwiększać rozmiaru systemu .vdi.

Jeśli korzystasz z systemu Windows, powinieneś zainstalować cygwin (lub msys2) dla programu ssh i rsync.

T Nierath
źródło
1

Jednym z możliwych rozwiązań, w zależności od przypadku użycia, jest odmiana odpowiedzi cjpembo.

Jeśli dwa oddzielne komputery znajdują się w tej samej sieci LAN w tej samej lokalizacji, może być możliwe uruchomienie jednej maszyny wirtualnej na serwerze ESXi lub podobnym, i po prostu użyj funkcji konsoli zdalnej narzędzi zarządzania (lub nawet SSH), aby uzyskać dostęp z obu innych komputerów.

Oczywiście, jeśli jednym z komputerów, z którymi chcesz korzystać z maszyny wirtualnej, jest laptop, który się porusza, prawdopodobnie nie jest to rozwiązanie, zwłaszcza jeśli musisz udostępnić dużą ilość danych między „hostem” i „gościem” środowiska.

Jeśli maszyna wirtualna jest względnie niezależna, możliwości konsoli zdalnej VMware są dość wydajne, więc jeśli nie potrzebujesz odtwarzania wideo na maszynie wirtualnej, może działać wystarczająco dobrze, nawet zdalnie, aby być wystarczająco dobrym.

Michael Firth
źródło
0

Osiągnąłem to, używając zewnętrznego ssd na dysku USB c. Maszyna wirtualna będzie znajdować się na dysku ssd i będzie wymieniona w mojej konfiguracji Virtualbox na obu laptopach. Wziąłem model USB 3.1 Gen2 Type-C (10 Gb / s), model 540 MB / s, a wydajność jest w porządku.

Med Ali Difallah
źródło