Поддерживать и синхронизировать виртуальную виртуальную машину между двумя компьютерами

13

У меня есть виртуальная машина VirtualBox с проектом, над которым я работаю. Я хотел бы иметь возможность использовать эту виртуальную машину на двух отдельных компьютерах, чтобы я мог работать на ней там, где я оказался в то время. Я видел ответы о переносе, клонировании и резервном копировании виртуальных машин, но ничего о двух копиях и их синхронизации.

Какой самый простой (наименьший или самый простой шаг) или лучший (наименьший риск возникновения проблем) способ поддерживать один образ виртуальной машины на нескольких компьютерах?

В идеале, я бы предпочел не запускать виртуальную машину с USB-накопителя, поскольку один из двух компьютеров имеет очень мало USB-портов, но если это будет лучше, я возьму его (на самом деле я не уверен, что есть любые проблемы с запуском ВМ с USB-накопителя). Однако я планирую использовать USB-накопитель для передачи любых файлов между компьютерами.

rsgoheen
источник

Ответы:

10

Я думаю, что у вас есть два варианта: первый - установить (при установке Virtualbox на обоих компьютерах) папку, в которой виртуальные машины хранятся на каком-то портативном или удаленном жестком диске; Если компьютеры, которые вы будете использовать, связаны друг с другом в сети, вы можете использовать общую папку, если нет, я боюсь, что единственным решением является USB-накопитель или внешний жесткий диск. Чтобы установить папку, перейдите к File > Preferences > General > Default Machine Folder. Скорость USB-ключа может быть ограничением общей производительности.

Второе решение, которое также требует pendrive или чего-то подобного (но только для переноса файлов виртуальной машины), состоит в том, чтобы вручную экспортировать и импортировать нужную виртуальную машину каждый раз, когда вам нужно ее перенести. Вы можете сделать это, выбрав виртуальную машину и перейдя с File > Export Applianceи File > Import Appliance. При экспорте будет создан файл в формате .ova, это архив, содержащий все файлы, необходимые для использования виртуальной машины, и, импортировав его в другую установку, вы получите ту же виртуальную машину на втором компьютере. Таким образом, вы используете pendrive для простого переноса ваших файлов, которые при повторном импорте будут сохраняться и получать к ним доступ с вашего компьютера, поэтому скорость USB не имеет значения.

Sekhemty
источник
5

Столкнулся с точно такой же проблемой и, думаю, решил ее.

Скажем, у вас есть две машины, A и B. Создайте / подготовьте свой VM в A. После этого сделайте снимок или создайте связанный клон (оба работают, но дальнейшие шаги отличаются, даст один, вы можете разрешить другой)

Теперь убедитесь, что у вас есть только что установленная Virtualbox в B. Скопируйте виртуальные машины ~ / .VirtualBox и ~ / VirtualBox из A в B с USB (учитывая, что они находятся в удаленных местах)

Теперь, если вы выбрали способ моментального снимка, то синхронизируйте папку ~ / VirtualBox VMs / YourVM / Snapshots, пока она не станет достаточно большой. Если он станет больше, создайте еще один снимок в A и скопируйте папку YourVM в B один раз и синхронизируйте только этот новый файл снимка в папке Snapshots.

Если вы сделаете снимок или сделаете связанный клон в A или B, этот ритуал будет нарушен, будьте осторожны.

Проверено в 5.0.20

Malkocoglu
источник
очень интригующий ответ. Вы бы сделали это еще сегодня или есть лучший способ?
l -''''''--------- '' '' '' '' '' ''
4

Я знаю, что этой ветке уже год, но это лучший результат поиска в Google по вопросу разделения одной виртуальной машины между двумя местоположениями.

VirtualBox позволяет удаленно подключаться к работающей виртуальной машине, используя RDP. Если вы не хотите, чтобы виртуальная машина работала непрерывно, настройте ее для удаленного запуска.

Существует опция «Разрешить множественные подключения», поэтому вам даже не придется отключаться от одного места перед подключением из другого.

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

Я никогда не пробовал все это ...

cjpembo
источник
4

Я думаю, что ответ Sekhemty - единственный способ сделать то, что вы хотите.

Но почему ваша виртуальная машина должна быть перемещена? Почему бы просто не перенести ваш проект (ы)? Создайте свой проект в приватном git и просто нажмите и потяните, как вам нужно.

Другой способ попробовать, если вам нужно поддерживать согласованность машины и вы сильно меняетесь, - это использовать настройки vagrant и chef / puppet. Это работает с помощью chef (который является рубином) и puppet (я не использовал puppet), чтобы сообщить vagrant, что вы хотите, чтобы ваша виртуальная машина была включена и установлена.

Он работает с помощью сценария, с использованием chef или puppet, и vagrant читает этот сценарий при запуске виртуальной машины. Если вы хотите, чтобы что-то было установлено, просто добавьте это в скрипт, а если его еще нет, оно будет установлено, когда вы «бродите»! Мне потребовалось некоторое время, чтобы привыкнуть к нему, достаточно крутой курс обучения, но он очень эффективен, когда вы привыкнете к нему, и это будет означать, что вам просто нужно перемещаться по файлу сценария вместо целой виртуальной машины.

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

boundless08
источник
2
Речь идет не только о коде (который входит в репозиторий) и конфигурации; потому что виртуальная машина - это моя среда разработки. Я начал использовать VirtualBox, чтобы работать в Ubuntu на компьютере под управлением Windows. Это дало бы мне согласованную среду разработки, когда перемещать среду было бы менее удобно, чем копировать ее.
rsgoheen
Ну тогда бродяга и повар / марионетка кажутся лучшими. Таким образом, если вам нужно что-то изменить в своей среде разработки, вам не нужно экспортировать и импортировать вашу виртуальную машину, вы просто добавляете то, что вы установили в ваш скрипт, и vagrant встроит его в вашу виртуальную машину при запуске. Это очень удобно для различных экземпляров dev-сборок, так как vagrant работает с «базовым блоком (ОС)» и строит поверх того, что говорит сценарий, так что вы можете иметь несколько сред тестирования, но только с использованием пространство одного.
boundless08
2

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

Александр
источник
2
Немного больше деталей сделало бы это лучшим ответом. Можете ли вы уточнить?
Дэйв М,
2

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

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

Конечно, не будет никакого способа «объединить» конфликты, поэтому вам нужно быть дисциплинированным относительно того, как вы вносите изменения в ВМ, и отражать эти изменения.

Между тем, вы можете поместить большую часть своих личных данных на NAS, чтобы они всегда были актуальными и были доступны со всех компьютеров. Кроме того, вы можете смонтировать дополнительные диски .vdi для хранения раздела подкачки или другого временного хранилища, чтобы не увеличивать размер вашей системы .vdi.

Если вы используете Windows, вы должны установить cygwin (или msys2) для программы ssh и rsync.

Тиерат
источник
1

Одним из возможных решений, в зависимости от вашего варианта использования, является вариант ответа cjpembo.

Если оба отдельных компьютера находятся в одной и той же локальной сети в одном и том же месте, возможно, можно запустить одну виртуальную машину на сервере ESXi или аналогичном, и просто использовать функцию удаленной консоли инструментов управления (или даже SSH) для доступа это с обоих других компьютеров.

Очевидно, что если один из компьютеров, с которым вы хотите использовать виртуальную машину, - это ноутбук, который будет перемещаться, то это, возможно, не решение, особенно если вам приходится делить большой объем данных между «хостом» и «гостем». сред.

Если виртуальная машина относительно автономна, возможности удаленной консоли VMware довольно эффективны, поэтому, если вам не нужно воспроизведение видео на виртуальной машине, она может работать достаточно хорошо, даже удаленно, чтобы быть достаточно хорошей.

Майкл Ферт
источник
0

Я добился этого с помощью внешнего ssd на USB-диске. Виртуальная машина будет расположена на диске ssd и указана в моей настройке виртуальной коробки на обоих ноутбуках. Я взял USB 3.1 Gen2 Type-C (10 Гбит / с), модель 540 МБ / с, и производительность в порядке.

Мед Али Дифалла
источник