Насколько легко перенести образ виртуальной машины Linux из одной виртуальной среды в другую?
Если я придерживаюсь одного из стандартных хорошо поддерживаемых образов дисков VM (например, необработанного образа или VDI, VMDK, ...), можно ли легко перемещать виртуальные машины Linux между средами виртуальных машин? Например, между (скажем) VirtualBox и KVM или VMWare и Xen? Я говорю здесь о полностью виртуализированных средах, а не о паравиртуализации, требующей поддержки в гостевой ОС.
Мне кажется, что ядра в большинстве дистрибутивов Linux в наши дни настроены на... непредвзятость и обнаружение вещей во время загрузки, поэтому у вас нет проблемы, которая иногда возникает при перемещении виртуальной машины Windows из одной системы виртуализации к другому (я имею в виду, в частности, проблемы HAL, которые возникают у Windows, такие как ACPI или не-ACPI; у меня также были виртуальные машины Windows, которые обычно странно себя вели, например, при переходе с VMWare на VirtualBox).
Я ищу общий ответ, но если он поможет, в частности, я собираюсь делать это с гостями Ubuntu 8.04 LTS и 10.04 LTS. Но это может измениться.
3 ответа
Linux может загружать модули (драйверы) для своей аппаратной платформы по требованию. Пока ваше ядро способно находить модули для вашего аппаратного обеспечения, даже не имеет значения, на какой платформе вы запускаете виртуальную машину, за исключением нескольких предостережений:
- для всех типов гипервизоров используйте общее оборудование: используйте диски IDE (не SCSI, KVM отстой с дисками SCSI) и используйте сетевые адаптеры e1000. Для переносимости, держитесь подальше от дисков VDA KVM или VMware vmxnet. Это не всегда возможно (VMware использует SCSI по умолчанию), но это поможет.
- убедитесь, что вы используете те же MAC-адреса для перенесенной виртуальной машины на новой платформе, что и на старой
- используйте LVM для ваших дисков: загрузчик найдет ваше ядро и загрузит ваш initrd; если вы используете LVM, вам не нужно беспокоиться о том, что диски будут работать нормально (в любом случае, не беспокойтесь).
- оставьте конфигурацию вашей сети на DHCP, если это возможно
- не устанавливайте VMwareTools и подобные
- сгенерируйте initrd и попытайтесь поместить в него столько драйверов, сколько вам нужно на других платформах. Это сэкономит ваши усилия при попытке перейти от KVM (диски IDE) к VMware (диски SCSI), и у вас уже есть поддержка контроллера SCSI LSI Logic от VMware в вашем initrd.
Я перемещал виртуальные машины Linux из VMWare в xen, в openvz, в kvm и обратно, и у меня не было проблем, которые не могли бы быть решены с помощью небольшого массива / etc /modules, ничего такого, от чего вы действительно не могли бы избавиться, немного погуглив.
Windows - это другая история. Мне удалось переместить виртуальную машину сервера Win2003 из VMWare в xen, но не без операции на открытом сердце (монтирование образа в linux и ручное редактирование конфигурации загрузчика). Мне также удалось без проблем перейти с xen на kvm, но этого и следовало ожидать, так как они оба работают под qemu.
Я не профессионал, но я часто использую один и тот же VMDK из виртуальной машины VMware в VirtualBox, поэтому я предполагаю, что между виртуальным диском есть некоторые стандарты. Я никогда не пробовал Xen или другое решение.