Як синхронізувати два екземпляри віртуальної машини для використання в різних комп’ютерах?


8

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

Перша моя думка - синхронізація самих файлів віртуальних дисків. Моїм інструментом вибору буде rsync, більш конкретно, версія Cygwin, використовуючи --inplaceопцію максимально скоротити записи. Але це було б нездійсненно: це не дозволило б мені коли-небудь працювати окремо над VM, бо не rsyncбуло б можливості виявити конфлікти та об'єднати їх належним чином без знання файлових систем, що лежать всередині контейнерів.

Наступним варіантом буде rsyncподання працюючих машин один одному. Чи вдасться це працювати, не псуючи управління пакетами? Чи потрібно мені робити що-небудь вручну, окрім оновлень, таких як нове ядро ​​чи драйвери? Чи є якесь інше рішення, яке могло б працювати краще?


Я думаю, ви повинні розділити це питання надвоє. Спочатку запитайте про дзеркальне відображення сервера. Тоді, коли у вас (сподіваємось) у вас є кілька відповідей, запитайте, як їх реалізувати на VM.
Nifle

Інша можливість полягає в тому, щоб мати один ноутбук VM на ноутбуці та віддалений доступ до нього з основної системи, коли він знаходиться вдома.
Подорожник Geek

Вам потрібно буде синхронізувати лише програмне забезпечення та документи - не всі VM, - оскільки у вас не може бути двох машин у мережі з однаковими MAC-адресами та іменами хостів. Це призведе до погрому.
парадороїд

@Journeyman Geek: Я не замислювався над цим, це може справді працювати, але це буде зовсім повільніше, враховуючи, що жорсткий диск мого ноутбука сканує порівняно з SSD на моєму робочому столі.
danielkza

1
Чи є причина, що ви не запускаєте VM на зовнішньому накопичувачі та переміщуєте його із системи в систему?
Дейв М

Відповіді:


2

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

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

  • Синхронізація домашнього каталогу не повинна бути проблемою взагалі, і повинна синхронізувати більшість ваших щоденних робіт, які я припускаю.
  • Синхронізація даних менеджера пакунків матиме сенс лише в тому випадку, якщо ви виконаєте повну синхронізацію майже всього, можливо, за кількома добре розглянутими винятками. У двосторонній синхронізації це майже завжди призведе до конфлікту, тому я радив би це лише для підходу в стилі rsync.
  • Синхронізація /etc, а також ваш будинок, повинні синхронізувати більшість конфігураційних даних і все ще мало впливати на те, що робить менеджер пакунків. Але якщо ви встановите деяке програмне забезпечення на одній машині, вам доведеться його вручну встановити і на інший, і, ймовірно, слід синхронізувати лише після цього, якщо оновлення змінило якийсь конфігураційний файл.

1

Подумайте, що взагалі не намагаєтесь "синхронізувати" віртуальну машину.

Подумайте над цим: ви не "синхронізуєте" робочий стіл та ноутбук таким чином. Ви ставитесь до них як до окремих машин і використовуєте сервіси, такі як Dropbox, Google Apps тощо, або навіть USB-накопичувач для роботи над своїми файлами. Аналогічно поводьтеся з двома віртуальними машинами Ubuntu як з окремими комп'ютерами та використовуйте такі сервіси, як Ubuntu One та вище, щоб синхронізувати важливі файли.

Якщо ви стурбовані синхронізацією встановленого програмного забезпечення, ви можете використовувати його

dpkg --list-selections

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

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