- Экспорт виртуальных машин Hyper-V из Windows 10 в Windows Server 2012 R2
- Windows 10/Server 2016 и новый формат конфигурационного файла vmcx
- Апгрейд конфигурации ВМ в Hyper-V
- Возможно ли импортировать ВМ из Windows 10 в Windows 8.1/2012 R2
- Экспорт и импорт виртуальных машин Export and Import virtual machines
- Экспорт виртуальной машины Export a Virtual Machine
- Использование диспетчера Hyper-V Using Hyper-V Manager
- Использование PowerShell Using PowerShell
- Импорт виртуальной машины Import a Virtual Machine
- Импорт с помощью диспетчера Hyper-V Import using Hyper-V Manager
- Импорт с помощью PowerShell Import using PowerShell
- Регистрация на месте Register in place
- Восстановить Restore
- Импортировать как копию Import as a copy
- Типы импорта Import types
- Экспорт и импорт виртуальных машин в Windows Server 2012 R2
- Экспорт
- Экспорт снимка ВМ
- Импорт
- Проверка на совместимость
- Заключение
Экспорт виртуальных машин Hyper-V из Windows 10 в Windows Server 2012 R2
В некоторых случаях виртуальные машины, созданные на локальных машинах разработчиков или администраторов, требуется перенести в продуктивную среду на полноценный сервер. К своему удивлению, столкнулся с проблемой невозможностью импорта виртуальной машины, созданной на Windows 10 на хост Hyper-V под управлением Windows Server 2012 R2.
Windows 10/Server 2016 и новый формат конфигурационного файла vmcx
Проблема выглядит следующим образом. На сервере Hyper-V запустил мастер импорта виртуальных машин (Import Virtual Machine) и указал путь к файлам виртуальной машины, созданной на Windows 10:
Мастер наотрез отказывался видеть виртуальные машины, файлы которых были экспортированы с Windows 10, т.е. список Select Virtual Machine просто пустой.
Как вы видите, файлы виртуальной машины на месте, но мастер импорта просто не видит их.
Проблема в том, что в Windows 10 и Windows Server 2016 используется новый формат конфигурационного файла .vmcx, который поддерживается только этими ОС.
Явственно, обратный экспорт с Windows Server 2012 R2 на Windows 10 (Windows Server 2016) выполняется без проблем, т.к. новые ОС поддерживают формат старого файла конфигурации ВМ. Так в Windows Server 2012 R2 – используется версия конфигурации 5.0, а в Windows 10 – 6.2.
Как вы видите, версия конфигурации Hyper-V определяет формат конфигурационного файла, который в версии 6.2 изменился с .vmc на .vmcx . Устаревшие ОС, такие как Windows 8.1/2012 R2, при этом не поддерживают новый формат файла .vmcx.
Апгрейд конфигурации ВМ в Hyper-V
Используемую версию конфигурации ВМ можно увидеть в окне Hyper-V Manager. Есть возможность выполнить апгрейд конфигурации ВМ до 6.2 после того, как ВМ старой версии импортирована на новый Hyper-V под управлением Windows 10 или Windows Server 2016.
Для выполнения апгрейда, ВМ нужно остановить, затем щелкнув по ней ПКМ, выбрать опцию Upgrade Configuration Version….
Как вы видит, версия конфигурации обновилась с 5.0 до 6.2.
Пару важных замечаний по поводу апгрейда:
- После апгрейда конфигурационного файла до 6.2, вы не сможете запустить ВМ на Windows 8.1/2012 R2
- Откатить апгрейд и вернуть старую версию 5.0 нельзя
- После агрейда, ВМ использует новый формат конфигурационного файла vmcx
Возможно ли импортировать ВМ из Windows 10 в Windows 8.1/2012 R2
Единственный способ экспортировать виртуальную машину с Windows 10 и импортировать ее в Hyper-V на Windows 8.1/2010 R2 – остановка ВМ и ручное копирование vhd или vhdx файлов на целевой сервер Hyper-V. Естественно, при таком переносе будут потеряны настройки ВМ (сеть, память, процессоры и т.д.). На новом хосте нужно создать новую ВМ, указать нужные настройки и в качестве дисков подключить имеющиеся vhd/vhdx диски (Connect Virtual Hard Disk -> Use an existing virtual hard disk):
После того, как ВМ будет создана, ее можно запустить и проверить ее работу.
Экспорт и импорт виртуальных машин Export and Import virtual machines
Область применения: Windows 10, Windows Server 2016, Microsoft Hyper-V Server 2016, Windows Server 2019, Microsoft Hyper-V Server 2019 Applies To: Windows 10, Windows Server 2016, Microsoft Hyper-V Server 2016, Windows Server 2019, Microsoft Hyper-V Server 2019
В этой статье показано, как экспортировать и импортировать виртуальную машину, что является быстрым способом их перемещения или копирования. This article shows you how to export and import a virtual machine, which is a quick way to move or copy them. В этой статье также обсуждаются некоторые варианты, которые необходимо выполнить при экспорте или импорте. This article also discusses some of the choices to make when doing an export or import.
Экспорт виртуальной машины Export a Virtual Machine
Экспорт собирает все необходимые файлы в одну единицу — файлы виртуального жесткого диска, файлы конфигурации виртуальной машины и файлы контрольных точек. An export gathers all required files into one unit—virtual hard disk files, virtual machine configuration files, and any checkpoint files. Это можно сделать на виртуальной машине, которая находится в запущенном или остановленном состоянии. You can do this on a virtual machine that is in either a started or stopped state.
Использование диспетчера Hyper-V Using Hyper-V Manager
Чтобы экспортировать виртуальную машину: To create a virtual machine export:
В диспетчере Hyper-V щелкните правой кнопкой мыши виртуальную машину и выберите пункт Экспорт. In Hyper-V Manager, right-click the virtual machine and select Export.
Выберите место хранения экспортируемых файлов и нажмите кнопку Экспорт. Choose where to store the exported files, and click Export.
После завершения экспорта можно просмотреть все экспортированные файлы в расположении экспорта. When the export is done, you can see all exported files under the export location.
Использование PowerShell Using PowerShell
Откройте сеанс от имени администратора и выполните команду, как показано ниже, после замены и
: Open a session as Administrator and run a command like the following, after replacing and
Дополнительные сведения см. в разделе Export-VM. For details, see Export-VM.
Импорт виртуальной машины Import a Virtual Machine
При импорте виртуальной машины она регистрируется на узле Hyper-V. Importing a virtual machine registers the virtual machine with the Hyper-V host. Вы можете выполнить импорт в узел или на новый узел. You can import back into the host, or new host. При импорте в тот же узел вам не нужно сначала экспортировать виртуальную машину, так как Hyper-V пытается повторно создать виртуальную машину из доступных файлов. If you’re importing to the same host, you don’t need to export the virtual machine first, because Hyper-V tries to recreate the virtual machine from available files. Импорт виртуальной машины регистрирует ее, чтобы ее можно было использовать на узле Hyper-V. Importing a virtual machine registers it so it can be used on the Hyper-V host.
Мастер импорта виртуальных машин также помогает устранить несовместимости, которые могут существовать при переходе с одного узла на другой. The Import Virtual Machine wizard also helps you fix incompatibilities that can exist when moving from one host to another. Обычно это различие в физическом оборудовании, таком как память, виртуальные коммутаторы и виртуальные процессоры. This is commonly differences in physical hardware, such as memory, virtual switches, and virtual processors.
Импорт с помощью диспетчера Hyper-V Import using Hyper-V Manager
Чтобы импортировать виртуальную машину, выполните следующие действия. To import a virtual machine:
В меню действия в диспетчере Hyper-V щелкните Импорт виртуальной машины. From the Actions menu in Hyper-V Manager, click Import Virtual Machine.
Щелкните Далее. Click Next.
Выберите папку, содержащую экспортированные файлы, и нажмите кнопку Далее. Select the folder that contains the exported files, and click Next.
Выберите виртуальную машину для импорта. Select the virtual machine to import.
Выберите тип импорта и нажмите кнопку Далее. Choose the import type, and click Next. (Описание см. в разделе типы импортаниже.) (For descriptions, see Import types, below.)
Нажмите кнопку Готово. Click Finish.
Импорт с помощью PowerShell Import using PowerShell
Используйте командлет Import-VM , следуя примеру для требуемого типа импорта. Use the Import-VM cmdlet, following the example for the type of import you want. Описание типов см. в разделе типы импортаниже. For descriptions of the types, see Import types, below.
Регистрация на месте Register in place
Этот тип импорта использует файлы, где они хранятся во время импорта, и хранит идентификатор виртуальной машины. This type of import uses the files where they are stored at the time of import and retains the virtual machine’s ID. Следующая команда показывает пример файла импорта. The following command shows an example of an import file. Выполните аналогичную команду со своими собственными значениями. Run a similar command with your own values.
Восстановить Restore
Чтобы импортировать виртуальную машину, указав собственный путь к файлам виртуальной машины, выполните команду, подобную следующей, заменив примеры значениями. To import the virtual machine specifying your own path for the virtual machine files, run a command like this, replacing the examples with your values:
Импортировать как копию Import as a copy
Чтобы завершить импорт и переместить файлы виртуальной машины в расположение Hyper-V по умолчанию, выполните команду, подобную следующей, заменив примеры значениями. To complete a copy import and move the virtual machine files to the default Hyper-V location, run a command like this, replacing the examples with your values:
Дополнительные сведения см. в статье Импорт-виртуальная машина. For details, see Import-VM.
Типы импорта Import types
Hyper-V предлагает три типа импорта: Hyper-V offers three import types:
Регистрация на месте — этот тип предполагает, что файлы экспорта находятся в расположении, где вы храните и запускаете виртуальную машину. Register in-place – This type assumes export files are in the location where you’ll store and run the virtual machine. Импортированная виртуальная машина имеет тот же идентификатор, что и во время экспорта. The imported virtual machine has the same ID as it did at the time of export. Поэтому, если виртуальная машина уже зарегистрирована в Hyper-V, ее необходимо удалить перед тем, как будет работать импорт. Because of this, if the virtual machine is already registered with Hyper-V, it needs to be deleted before the import works. После завершения импорта файлы экспорта становятся файлами выполняющегося состояния и не могут быть удалены. When the import has completed, the export files become the running state files and can’t be removed.
Восстановите виртуальную машину . Восстановите виртуальную машину в выбранное расположение или используйте по умолчанию Hyper-V. Restore the virtual machine – Restore the virtual machine to a location you choose, or use the default to Hyper-V. Этот тип импорта создает копию экспортированных файлов и перемещает их в выбранное расположение. This import type creates a copy of the exported files and moves them to the selected location. При импорте идентификатор виртуальной машины такой же, как и при экспорте. When imported, the virtual machine has the same ID as it did at the time of export. Поэтому, если виртуальная машина уже запущена в Hyper-V, ее необходимо удалить перед завершением импорта. Because of this, if the virtual machine is already running in Hyper-V, it needs to be deleted before the import can be completed. После завершения импорта экспортированные файлы остаются неизменными и могут быть удалены или импортированы снова. When the import has completed, the exported files remain intact and can be removed or imported again.
Копировать виртуальную машину — аналогично типу восстановления в, в котором выбирается расположение для файлов. Copy the virtual machine – This is similar to the Restore type in that you select a location for the files. Разница заключается в том, что импортированная виртуальная машина имеет новый уникальный идентификатор. Это означает, что виртуальную машину можно импортировать на один узел несколько раз. The difference is that the imported virtual machine has a new unique ID, which means you can import the virtual machine to the same host multiple times.
Экспорт и импорт виртуальных машин в Windows Server 2012 R2
Возможность получить точную копию виртуальной машины очень удобно использовать в процессе разработки, тестирования или траблшутинга. В Windows Server 2012 R2 появилось несколько новых возможностей, связанных с экспортом\импортом ВМ, о которых мы и поговорим.
Экспорт
Раньше для того, чтобы экспортировать ВМ штатными средствами, предварительно необходимо было ее остановить. В Windows Server 2012 R2 можно экспортировать запущенные виртуальные машины ″наживую″, прямо в процессе работы. Для экспорта открываем Hyper-V Manager, выбираем нужную ВМ, кликаем на ней правой клавишей мыши и в контекстном меню выбираем «Export».
Указываем расположение, в которое будет производиться экспорт и жмем «Export».
Также для экспорта ВМ из консоли PowerShell можно воспользоваться такой командой:
Export-VM -Name SC3 -Path ″D:\Hyper-V\SC3Clone″
Экспорт снимка ВМ
Раньше для того, чтобы экспортировать снимок (checkpoint), надо было произвести полный экспорт ВМ вместе со всеми снимками, импортировать машину и только затем откатится на нужный снимок. В Windows Server 2012 R2 появилась возможность экспортировать только конкретный снимок виртуальной машины. Для этого выбираем нужную ВМ, переходим в поле «Checkpoints», кликаем правой клавишей на нужном снимке, выбираем «Export» и указываем, куда сохранять файлы.
И то же самое с помощью PowerShell. Выводим список снимков для указанной ВМ:
Get-VMSnapshot -VMName SC3
Выбираем нужный снимок и экспортируем его, например так:
Export-VMSnapshot -Name ′SC3 — (2/25/2014 — 4:03:55 PM)′ -VMName SC3 -Path D:\Hyper-V
Примечание. При создании снимка в качестве его имени по умолчанию берется имя ВМ и время создания. Для удобства экспорта снимкам можно давать вменяемые имена сразу при создании, с помощью команды Checkpoint-VM -SnapshotName . Также снимки можно переименовать командой Rename-VMSnapshot , либо из оснастки Hyper-V Manager.
Импорт
В импорте особых изменений нет. Открываем Hyper-V Manager, кликаем правой клавишей на имени хоста и в контекстном меню выбираем «Import Virtual Machine».
Запускается мастер импорта виртуальных машин. В первом окне жмем Next >
Затем указываем расположение папки с файлами импортируемой ВМ.
Выбираем машину для импорта (в указанной папке могут быть файлы нескольких ВМ).
Выбираем, каким образом производить импорт. Соответственно, есть три варианта:
1) Register the virtual machine in-place — зарегистрировать ВМ по месту с тем-же ID;
2) Restore the virtual machine — скопировать ВМ в другую папку, ID оставить без изменения;
3) Copy the virtual machine — скопировать ВМ в другую папку и сгенерировать для нее новый ID.
Обратите внимание, что у каждой ВМ на хосте Hyper-V есть уникальный идентификатор (ID), т.е. на одном хосте не может быть двух ВМ с одинаковым ID. Выбор варианта зависит от ситуации, так если вы разворачиваете скопированную машину на одном хосте с оригиналом, то подойдет только копирование с новым ID.
Дальше, в зависимости от выбранного варианта импорта либо сначала указываем папки для копирования файлов конфигурации, снимков
и виртуальных дисков ВМ.
Либо просто просматриваем суммарную информацию и жмем «Finish».
Импорт с помощью PowerShell. Для того, чтобы просто зарегистрировать ВМ по месту, надо выполнить команду:
Import-VM -Path ′D:\Hyper-V\SC3\Virtual Machines\4e782fc5-8a82-4311-8627-b69ab2e894f5.xml′
В параметре Path указываем расположение xml-файла конфигурации. Для копирования ВМ в другое место с тем же ID воспользуемся параметром Copy , а для генерации нового идентификатора используем параметр GenerateNewId :
Import-VM -Path ′D:\Hyper-V\SC3\Virtual Machines\4e782fc5-8a82-4311-8627-b69ab2e894f5.xml′ -Copy -GenerateNewId
Проверка на совместимость
Иногда при переносе ВМ на другой хост могут возникнуть проблемы с совместимостью. В этом случае просто импортировать машину не получится, при попытке будет выдана ошибка. Для выяснения причин несовместимости можно воспользоваться командлетом Compare-VM. Вот типичный пример — импорт не удался, в сообщении фигурирует ошибка в конфигурации. Попробуем уточнить, в чем проблема, для чего выведем отчет о совместимости командой:
Compare-VM -Path ′D:\SC3\Virtual Machines\4e782fc5-8a82-4311-8627-b69ab2e894f5.xml′
Как видно из отчета, в строке Incompatibilities стоит код ошибки, что означает проблему с совместимостью.
Для уточнения проблемы еще раз выведем отчет о совместимости и поместим его в переменную:
$report = Compare-VM -Path ′D:\SC3\Virtual Machines\4e782fc5-8a82-4311-8627-b69ab2e894f5.xml′
Затем извлечем причину несовместимости:
$report.Incompatibilities | ft -AutoSize
Как видно из сообщения, проблема в отсутствии на данном хосте виртуального свича с именем Private. Этот свич прописан в конфигурации ВМ, и для успешного импорта его надо оттуда удалить. Сделаем это с помощью команды:
Затем проверим еще раз совместимость:
Compare-VM -CompatibilityReport $report
И поскольку проблема устранена, то импортируем машину командой:
Import-VM -CompatibilityReport $report
Заключение
В заключение напомню о том, что при экспорте мы получаем точную копию виртуальной машины, включая идентификатор безопасности (SID), имя и IP-адрес (при статической адресации). Поэтому, во избежании конфликтов, при развертывании такой машины надо быть крайне осторожным, и делать это желательно в изолированной среде, особенно если виртуальная машина является членом домена AD.
На этот раз все, а в следующей статье мы рассмотрим динамическое клонирование виртуальных машин с помощью Virtual Machine Manager.