Підтримуйте та синхронізуйте програму VM VirtualBox між двома окремими комп'ютерами


13

У мене є VirtualBox VM, в якому є проект, над яким я працюю. Я хотів би мати можливість використовувати цей VM на двох окремих комп’ютерах, тому я можу працювати над ним там, де я в той час опинився. Я бачив відповіді щодо передачі, клонування та створення резервних копій VM, але нічого про те, щоб мати дві копії та синхронізувати їх.

Який найпростіший (найменший чи найпростіший крок) чи найкращий (найнижчий ризик виникнення проблем) спосіб збереження одного образу ВМ на декількох комп'ютерах?

В ідеалі я б не запускав VM з USB-накопичувача, оскільки один з двох комп'ютерів має дуже мало портів USB, але якщо це стане найкращим, тоді я візьму його (я фактично не впевнений, чи є будь-які проблеми із запуском VM з USB-накопичувача). Однак я б планував використовувати USB-накопичувач для передачі будь-яких файлів між комп'ютерами.

Відповіді:


10

Я думаю, що у вас є два варіанти: перший - встановити (в установках Virtualbox на обох комп’ютерах) папку, в якій VM зберігаються на якомусь портативному або віддаленому жорсткому диску; якщо комп'ютери, якими ви будете користуватися, пов’язані між собою в мережі, ви можете використовувати спільну папку, якщо ні, я побоююся, що єдине рішення - це USB-підвіска або зовнішній жорсткий диск. Щоб встановити папку, перейдіть до File > Preferences > General > Default Machine Folder. Швидкість USB-ключа може бути обмеженням загальної продуктивності.

Друге рішення, для якого також потрібен pendrive або щось подібне (але просто для перенесення ваших VM-файлів), - це вручну експортувати та імпортувати потрібний VM кожен раз, коли вам потрібно його перенести. Це можна зробити, вибравши VM та перейти до File > Export Applianceта File > Import Appliance. Експортуючи, буде створено файл у форматі .ova, це архів, який містить усі файли, необхідні для використання VM, імпортуючи його в іншу установку, у вас буде той самий VM на другому комп’ютері. Таким чином, ви використовуєте pendrive, щоб просто переносити ваші файли, які при повторному імпорті будуть зберігатися та отримувати доступ з вашого комп'ютера, тому швидкість USB не викликає занепокоєння.


5

Зіткнувся з точно такою ж проблемою, і, думаю, я її вирішив.

Скажімо, у вас є дві машини, A і B. Створіть / підготуйте свій vm в A. Після цього зробіть знімок або створіть зв'язаний клон (обидва роботи, але подальші кроки відрізняються, дасть одну, ви можете вирішити іншу)

Тепер переконайтеся, що у вас є щойно встановлений Virtualbox у B. Скопіюйте ~ / .VirtualBox та ~ / VirtualBox VM з А на В за допомогою USB (враховуючи, що вони знаходяться на далеких сайтах)

Тепер, якщо ви обрали спосіб знімка, синхронізуйте папку ~ / VirtualBox VMs / YourVM / Snapshots, поки вона не стане достатньо великою. Якщо він збільшиться, створіть ще один знімок у A та скопіюйте папку YourVM у B на один раз та лише синхронізуйте цей новий файл знімка у папці Знімки.

Якщо ви зробите знімок або зробите зв'язаний клон або в А, або в Б, цей ритуал буде порушений, будьте попереджені.

Випробувано в 5.0.20


дуже інтригуюча відповідь. Ви б це зробили ще сьогодні чи є кращий спосіб?
l - '' '''--------- '' '' '' '' '' '

4

Я знаю, що цій темі рік, але це найкращий результат пошуку в google за питанням спільного використання однієї VM між двома локаціями.

VirtualBox дозволяє віддалено підключитися до працюючої ВМ за допомогою RDP. Якщо ви не хочете, щоб VM постійно працював, спробуйте запустити його віддалено.

Існує опція "Дозволити кілька підключень", тому вам навіть не доведеться відключатись від одного місця, перш ніж підключитися до іншого.

Якщо ви не в змозі розмістити власну віртуальну машину, швидкий пошук у Google знайшов постачальників, які розмістять ваші зображення VirtulaBox для вас.

Я ніколи цього не пробував ...


4

Я думаю, що відповідь Сехемті - єдиний спосіб робити те, що ти хочеш.

Але чому потрібно перемістити вашу віртуальну машину? Чому б просто не перемістити свої проекти? Створіть свій проект приватним набором і просто натисніть і потягніть, як вам потрібно.

Ще одним методом, який потрібно спробувати, якщо вам потрібно підтримувати послідовність роботи машини і ви багато чого змінюєте, було б використовувати налаштування бродяг та кухарів / маріонеток. Це працює, використовуючи або шеф-кухаря (який є рубіновим каменем), і лялечку (я ще не використовував лялечку), щоб сказати блукаючим, що ви хочете, щоб ваш VM включив і встановив.

Він працює за допомогою сценарію, за допомогою шеф-кухаря чи маріонетки, і бродячий читає цей сценарій під час запуску VM. Якщо ви хочете, щоб щось було встановлено, просто додайте його до сценарію, а якщо його вже немає, воно буде встановлено, коли ви "бродять"! У мене знадобився певний час, щоб звикнути до цього, досить крутий кривий досвід навчання, але це дуже ефективно, коли ви звикнете до нього, і це означатиме, що вам просто доведеться переміщатися по файлу сценарію, а не цілому віртуальному комп'ютеру.

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


2
Йдеться не лише про код (який дійсно переходить у сховище) та конфігурацію; це тому, що VM - це моє середовище розвитку. Я почав використовувати VirtualBox, щоб я міг працювати в Ubuntu на комп'ютері під управлінням Windows. Це дало б мені стійке середовище розробки, коли переміщувати середовище менш зручно, ніж було б перемістити його копію.
rsgoheen

Ну тоді бродячий і шеф-кухар / лялька здається, що це найкраще. Таким чином, якщо вам потрібно щось змінити у вашому середовищі розробників, немає необхідності експортувати та імпортувати свій VM, ви просто додасте те, що встановлено у свій скрипт, а бродяг вбудує його у свій віртуальний комп'ютер при запуску. Це дуже зручно і для того, щоб мати різні екземпляри розробок розробників, оскільки бродяг працює з "базової коробки" (OS) "і будує поверх того, що говорить і сценарій, так що ви можете мати декілька середовищ тестування, але тільки використовуючи простір одного.
безмежний08

2

Ви можете синхронізувати зображення віртуальної машини між вашими двома комп'ютерами.


2
Трохи більше деталей зробить це кращою відповіддю. Чи можете ви докладно?
Дейв М

2

Виходячи з принципу цілуються, після того , як віртуальні машини реєструються і налаштування коригуються, тільки файл через в той час як обидві сторони вимикаються.rsync*.vdi

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

Звичайно, ніякого способу "злиття" конфліктів не буде, тому вам доведеться бути дисциплінованими щодо того, як ви вносите зміни в VM та відображати ці зміни.

Тим часом ви можете розмістити більшість своїх особистих даних у NAS, щоб вони завжди були актуальними та доступними для всіх машин. Крім того, ви можете встановити додаткові диски .vdi, щоб містити розділ swap або інше тимчасове сховище, щоб не збільшити розмір вашої системи .vdi.

Якщо у вас є Windows, вам слід встановити cygwin (або msys2) для програми ssh та rsync.


1

Одне з можливих рішень, залежно від випадку використання, - це варіація відповіді cjpembo.

Якщо обидва окремі комп’ютери знаходяться в одній локальній мережі в одному і тому ж місці, можливо, можливо, запустити одну віртуальну машину на сервері ESXi або подібній, і просто використовувати функцію віддаленої консолі інструментів управління (або навіть SSH) для доступу це з обох інших комп'ютерів.

Очевидно, якщо один з комп'ютерів, з яким ви хочете використовувати VM, - це ноутбук, який буде рухатися, то це, можливо, не є рішенням, особливо якщо вам доведеться ділитися великою кількістю даних між "хостом" і "гостем" середовища.

Якщо VM відносно автономний, можливості віддаленої консолі VMware є досить ефективними, тому, якщо вам не потрібне відтворення відео в VM, воно може працювати досить добре навіть віддалено, щоб бути досить хорошим.


0

Я домігся цього, використовуючи зовнішній ssd на диску usb c. VM розташовуватиметься на диску ssd та посилатиметься в моїй установці virtualbox на обох ноутбуках. Я взяв USB 3.1 Gen2 Type-C (10 Гбіт / с), модель 540 МБ / с, а продуктивність чудова.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.