Как синхронизировать два экземпляра виртуальной машины для использования на разных компьютерах?

8

Я давно пользуюсь VirtualBox на своем рабочем столе. Недавно купив ноутбук, я хочу иметь возможность взять с собой мою виртуальную машину Ubuntu, и чтобы изменения, которые я делаю на ноутбуке, распространялись на рабочий стол и наоборот, когда я приезжаю / ухожу из дома. Операционная система хоста - Windows 7 на обоих компьютерах, на которых работает VirtualBox 4.

Моей первой мыслью была синхронизация самих файлов виртуального диска. Мой инструмент выбора будет rsync, в частности, его версия Cygwin, с использованием --inplaceопции, чтобы максимально уменьшить количество записей. Но это было бы невыполнимо: это помешало бы мне когда-либо работать отдельно на виртуальных машинах, потому rsyncчто у меня не было бы возможности обнаруживать конфликты и правильно их объединять без знания файловых систем, которые находятся внутри контейнеров.

Следующим вариантом было бы rsyncзапускать машины друг к другу. Будет ли это работать без путаницы управления пакетами? Нужно ли что-то делать вручную, кроме обновлений, таких как новое ядро ​​или драйверы? Есть ли другое решение, которое могло бы работать лучше?

danielkza
источник
Я думаю, что вы должны разделить этот вопрос на две части. Сначала спросите о зеркалировании сервера. Затем, когда у вас (надеюсь) будет несколько ответов, спросите, как реализовать их на виртуальной машине.
Nifle
другой возможностью будет иметь один экземпляр виртуальной машины на ноутбуке и удаленный доступ к нему из основной системы дома.
Подмастерье Компьютерщик
Вам нужно будет синхронизировать только программное обеспечение и документы, а не целые виртуальные машины, поскольку у вас не может быть двух компьютеров в сети с одинаковыми MAC-адресами и именами хостов. Это вызвало бы беспредел.
paradroid
@ Journeyman Geek: Я не думал об этом, это могло бы действительно работать, но это было бы немного медленнее, если учесть, что жесткий диск на моем ноутбуке ползает по сравнению с SSD на моем рабочем столе.
Даниэлькза
1
Есть ли причина, по которой вы не запускаете виртуальную машину на внешнем диске и не перемещаете ее из системы в систему?
Дэйв М

Ответы:

2

Использование rsyncдля двунаправленных операций сложно; Я бы посоветовал вам посмотреть unisonкак альтернативу. Он будет работать в обоих направлениях и сообщать вам, что он собирается делать перед этим, а также обнаруживать файлы, с которыми манипулируют одновременно с обеих сторон.

Запуск синхронизации вне виртуальной машины будет иметь проблемы, которые вы описываете. Результаты при запуске внутри ВМ будут сильно зависеть от того, что вы синхронизируете.

  • Синхронизация вашего домашнего каталога не должна быть никакой проблемой, и я должен синхронизировать большую часть вашей повседневной работы.
  • Синхронизация данных менеджера пакетов будет иметь смысл только в том случае, если вы выполните полную синхронизацию практически всего, возможно, с несколькими хорошо продуманными исключениями. При двунаправленной синхронизации это почти всегда приводит к конфликту, поэтому я бы посоветовал это только для подхода в стиле rsync.
  • Синхронизация, /etcтак же как и ваш дом, должна синхронизировать большинство данных конфигурации и все же иметь небольшое влияние на то, что делает менеджер пакетов. Но если вы устанавливаете какое-либо программное обеспечение на одну виртуальную машину, вам придется вручную установить его и на другую виртуальную машину, и, вероятно, следует выполнять синхронизацию только после этого, если обновление изменило какой-либо файл конфигурации.
MVG
источник
1

Не пытайтесь вообще «синхронизировать» виртуальную машину.

Подумайте об этом: вы не «синхронизируете» свой рабочий стол и ноутбук таким образом. Вы относитесь к ним как к отдельным компьютерам и используете такие сервисы, как Dropbox, Google Apps и т. Д., Или даже флешку для работы с файлами. Аналогично, рассматривайте две виртуальные машины Ubuntu как отдельные компьютеры и используйте службы, такие как Ubuntu One и выше, для синхронизации важных файлов.

Если вы заинтересованы в синхронизации установленного программного обеспечения, вы можете использовать

dpkg --list-selections

чтобы получить список программного обеспечения, которое вы специально установили на одном компьютере, а затем установить то же самое программное обеспечение на другом.

Майкл Хэмптон
источник