internet-logo41

Перенос виртуальных машин с гипервизора Hyper-V 2008 R2 в Hyper-V 2012 R2

Проблема с экспортом из Hyper-V 2008 R2 и импортом в Hyper-V 2012 R2

Симптомы проблемы

В случае, если Вы хотите перенести виртуальную машину с сервера Hyper-V 2008 R2 на сервер Hyper-V 2012 R2, у Вас возникнут проблемы: после экспорта виртуальной машины из Hyper-V 2008 R2 и копирования файлов на новый сервер, при попытке импорта в Hyper-V 2012 R2 Вы получите сообщение вида:
Hyper-V did Not Find virtual machines to import from location d:\..
или
Hyper-V не удалось найти виртуальные машины для импорта из расположения d:\..

Причины проблемы

Hyper-V в 2012 R2 использует новую версию WMI 2.0 , которая не поддерживает .EXP файлы, полученные после экспорта машины Hyper-V 2008 R2, в котором используется WMI 1.0. Поэтому и решение в данном случае : копирование+импорт, т.к. импорт без экспорта виртуальной машины поддерживается на уровне Server 2012 R2 и этих .exp при импорте просто нет, поэтому всё проходит гладко).
@The namespace for version 1.0 of WMI is deprecated. Prepare to adapt scripts for a revised namespace.@
@The WMI root\virtualization namespace is deprecated. The new namespace is root\virtualization\v2.@
http://technet.microsoft.com/en-us/library/hh831568.aspx

Решение проблемы

Необходимо использовать не экспорт+импорт, а копирование+импорт. Сделайте следующее:

  1. Остановите виртуальную машину (ВМ), которую необходимо перенести.
  2. Скопируйте .XML файл, содержащий конфигурацию виртуальной машины, а также .VHD или .VHDX файлы жестких дисков виртуальной машины на новый сервер.
  3. Импортируйте виртуальную машину в Hyper-V 2012 R2
  4. Если Вы уже сделали экспорт виртуальной машины, просто удалите (или переименуйте) файл с расширением .EXP, находящейся в папке с экспортированной ВМ.

Рекомендации по переносу виртуальных машин

  1. Когда делаете экспорт (или подготавливаете виртуальную машину к переносу), выключив виртуальную машину, зайдите в ее конфигурацию, и переключите MAC адрес сетевой карты с динамического в статический. При этом по умолчанию в качестве статического MAC адреса будет предложен старый MAC сетевой карты.
    Это позволит не перенастраивать параметры TCP/IP в виртуальной машине после переноса, поскольку MAC адрес карты не изменится и операционная система будет считать, что сетевая карта та же самая.
  2. Вы можете (это рекомендуется Microsoft) сменить (на время переноса виртуальной машины) тип использования оперативной памяти: назначить статическое выделение RAM. После импорта виртуальной машины (на новом сервере) можно снова поставить динамическое выделение RAM.
  3. Если у Вас несколько виртуальных машин на одном хосте, то иногда бывает сложно выяснить, какой .XML файл принадлежит нужной виртуальной машине: все XML файлы могут оказаться в одной папке. Ничего страшного! Скопируйте их все! При импорте виртуальной машины укажите папку с этими XML файлами, и Hyper-V 2012 R2 попросит Вас выбрать нужную виртуальную машину для импорта.
  4. При импорте (если Вы именно переносите виртуальную машину - т.е. на старом сервере она в результате будет удалена, а на новом должна быть запущена та же ВМ) выберите, каким способом производить импорт:
    1. Register the virtual machine in-place — зарегистрировать ВМ по месту с тем-же ID;
    2. Restore the virtual machine — скопировать ВМ в другую папку, ID оставить без изменения;
      Для переноса ВМ выберите этот вариант.
    3. Copy the virtual machine — скопировать ВМ в другую папку и сгенерировать для нее новый ID.
  5. Поскольку импорт (помимо всего прочего) требует копирования файлов жестких дисков, в случае больших файлов VHD(X) этот процесс хочется ускорить. С этой целью скопируйте (или переместите) VHD файл сразу в ту папку, где он должен будет находиться после импорта виртуальной машины. Затем в процессе импорта Hyper-V 2012 R2 запросит Вас, в какой папке взять файлы жестких дисков импортируемой виртуальной машины, а также куда их копировать в процессе импорта. На оба этих вопроса укажите папку, в которую Вы положили VHD файл импортируемой ВМ. То есть у Вас будет указана одинаковая папка "откуда копировать виртуальный диск" и "куда сохранять виртуальный диск".