Назад | Перейти на главную страницу

Как управлять изменениями в наборе клонированных виртуальных машин?

Я пытаюсь создать работоспособную модель для развития. Мне интересно, есть ли у кого-нибудь рекомендации по программному обеспечению виртуальных машин и какой процесс следует выполнить, чтобы включить следующее:

Это несбыточная мечта?

Учитывая мои ограничения, я думаю, что могу выбрать либо VMWare Workstation или VirtualBox. Но я не думаю, что они сделают именно то, что я хочу.

В качестве компромисса - могу ли я использовать Hyper-V или ESX для создания шаблонов виртуальных машин, создания множества клонов шаблонов и каким-либо образом распространять эти клоны на отдельные рабочие станции?

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

Снимки: предпочтительный подход

  1. Создайте базовую виртуальную машину на своем компьютере. Для ваших целей вам будет идеально использовать файл образа диска с компактным / тонким предоставлением, поэтому не используйте файл фиксированного размера.

  2. Выключите свой экземпляр базовой виртуальной машины. (Приостановка / спящий режим не достаточно.)

  3. Сделайте снимок.

  4. Раздайте разработчикам после вы сделали снимок.

  5. Когда придет время, запустите базовую виртуальную машину и обновите ее. Любые внесенные вами изменения будут записаны в новые «дельта-файлы», размер которых будет равен сумме накопленных изменений, сделанных с момента создания моментального снимка. Поскольку вы сделали снимок, этот огромный файл образа диска останется на 100% неизменным.

  6. Выключите свой экземпляр базовой виртуальной машины. (Приостановка / спящий режим не достаточно.)

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

  8. В одночасье (а) либо перезагрузите каждую машину разработчика, либо программно завершите процесс гипервизора на каждой машине разработчика (нет, разработчики не не забудьте закрыть его (тема), а затем (б) скопируйте измененные файлы, используя РОБОКОПИЯ / МИР или т.п.

Конечно, для того, чтобы это работало, вам нужно будет передать все измененные файлы, связанные с виртуальной машиной, которые могут включать файлы конфигурации, содержащие метаданные о снимках, в дополнение к самим файлам снимков / дельта. Вам также необходимо убедиться, что на каждой машине разработчика виртуальная машина хранится в том же месте, что и на вашем собственном компьютере.

Rsync: альтернативный подход

Альтернативным подходом было бы использование виртуальных дисков фиксированного размера, нет снимки и клиент / сервер rsync, например DeltaCopy копировать только измененные части. Это не лучший подход, потому что:

  1. Это потребует установки программного обеспечения rsync на каждой машине разработчика.

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

Заключение: вы можете использовать для этого rsync, но это кажется излишним, если ваш гипервизор поддерживает моментальные снимки.

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

Поскольку я использую Linux, я не уверен, насколько гладко это работает с Windows, но есть решения, поддерживающие окна. Взгляни на этот вики-статья. у него хороший итог.