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

Насколько легко перенести образ виртуальной машины Linux из одной среды виртуальной машины в другую?

Если я буду придерживаться одного из стандартных, хорошо поддерживаемых образов дисков виртуальных машин (например, необработанного образа или VDI, VMDK, ...), легко ли перемещать виртуальные машины Linux между средами виртуальных машин? Например, между (скажем) VirtualBox и KVM или VMWare и Xen? Я говорю здесь о полностью виртуализированных средах, а не о паравиртуализации, требующей поддержки в гостевой ОС.

Мне кажется, что ядра в большинстве дистрибутивов Linux в наши дни настроены так, чтобы ... сохранять непредвзятость и обнаруживать вещи во время загрузки, поэтому у вас нет проблемы, связанной с перемещением виртуальной машины Windows из одной системы виртуализации. к другому (я думаю, в частности, о проблемах HAL, которые есть в Windows, таких как ACPI и не-ACPI; например, у меня также были виртуальные машины Windows, которые обычно странно себя вели при перемещении с VMWare на VirtualBox).

Я ищу общий ответ, но если это поможет, я в основном собираюсь делать это с гостями Ubuntu 8.04 LTS и 10.04 LTS. Но это могло измениться.

Я перемещал виртуальные машины Linux с VMWare на xen, затем на openvz, на kvm и обратно, и у меня не было проблем, которые нельзя было бы решить с помощью массажа / etc /модули немного, ничего, что вы действительно не могли бы выбраться с небольшим поиском в Google.

Windows - это совсем другая история. Мне удалось переместить виртуальную машину сервера Win2003 с VMWare на xen, но не без операции на открытом сердце (установка образа в Linux и ручное редактирование конфигурации загрузчика). Мне также удалось без проблем перейти с xen на kvm, но этого и следовало ожидать, поскольку они оба работают под управлением qemu.

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

  • для всех типов гипервизоров используйте стандартное оборудование: используйте диски IDE (не SCSI, KVM - отстой с дисками SCSI) и используйте сетевые адаптеры e1000. Для портативности держитесь подальше от дисков KVM vda или VMware vmxnet. Это не всегда возможно (VMware по умолчанию использует SCSI), но это поможет.
  • убедитесь, что вы используете те же MAC-адреса для перенесенной виртуальной машины на новой платформе, что и на старой.
  • используйте LVM для ваших дисков: загрузчик найдет ваше ядро ​​и скармливает ему ваш initrd; если вы используете LVM, вам не нужно беспокоиться о том, что диски отключатся (во всяком случае, не беспокойтесь).
  • если возможно, оставьте конфигурацию сети на DHCP
  • не устанавливайте VMwareTools и подобные
  • сгенерируйте initrd и попытайтесь поместить в него столько драйверов, которые вам понадобятся для других платформ. Это спасет вас при попытке перейти с KVM (диски IDE) на VMware (диски SCSI), и у вас уже есть поддержка контроллера LSI Logic SCSCI от VMware в вашем initrd.

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