Kvm перенести на hyper v

Обновлено: 07.07.2024

Конфигурация компьютера
Процессор: FX6300
Материнская плата: Asus
Память: "Kingston" 8GB
HDD: SSD Virtex 120Gb, WD 500Gb, Samsung PATA 500Gb, WD 1,5 Tb
Видеокарта: Asus Radeon 7750 1024mb
Блок питания: FPS 550W
CD/DVD: NEC
Монитор: Samsung 940N
Ноутбук/нетбук: Lenovo
ОС: Windows 7, FreeBSD 10, Debian 7 (new)
Индекс производительности Windows: 7.0

Добрый день.
Есть Витруальная машина (ProxMox) основанная на KVM.
Необходимо конвертнуть KVM с расширением *.raw, в Hyper-V на Windows.

ps Поиск в гугле мало что показал, все в основном делают на оборот.

Конфигурация компьютера
Процессор: FX6300
Материнская плата: Asus
Память: "Kingston" 8GB
HDD: SSD Virtex 120Gb, WD 500Gb, Samsung PATA 500Gb, WD 1,5 Tb
Видеокарта: Asus Radeon 7750 1024mb
Блок питания: FPS 550W
CD/DVD: NEC
Монитор: Samsung 940N
Ноутбук/нетбук: Lenovo
ОС: Windows 7, FreeBSD 10, Debian 7 (new)
Индекс производительности Windows: 7.0

Сам задал сам отвечу
Если вы переносите VM из среды Linux и там установлены KVM и QEMU
то можно воспользоваться встроенными утилитами QEMU

Для конвертации одного формата образа в другой используется опция convert:

Следом VBoxManage.exe конвертируем из vdi в vhd
создаём машину в Hyper-V и пользуемся.

Последний раз редактировалось kaEwituS, 21-01-2015 в 11:07 .

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Конфигурация компьютера
Процессор: FX6300
Материнская плата: Asus
Память: "Kingston" 8GB
HDD: SSD Virtex 120Gb, WD 500Gb, Samsung PATA 500Gb, WD 1,5 Tb
Видеокарта: Asus Radeon 7750 1024mb
Блок питания: FPS 550W
CD/DVD: NEC
Монитор: Samsung 940N
Ноутбук/нетбук: Lenovo
ОС: Windows 7, FreeBSD 10, Debian 7 (new)
Индекс производительности Windows: 7.0
Кому интересно:
все новые версии qemu могут портировать в любой формат.
код прежний:
Конфигурация компьютера
Процессор: FX6300
Материнская плата: Asus
Память: "Kingston" 8GB
HDD: SSD Virtex 120Gb, WD 500Gb, Samsung PATA 500Gb, WD 1,5 Tb
Видеокарта: Asus Radeon 7750 1024mb
Блок питания: FPS 550W
CD/DVD: NEC
Монитор: Samsung 940N
Ноутбук/нетбук: Lenovo
ОС: Windows 7, FreeBSD 10, Debian 7 (new)
Индекс производительности Windows: 7.0
Дополню:
как ещё проще перенести Вин машину из любой виртуалки.
Скачиваем disk2vhd, запускаем на виртуальной машине, программа делает полный образ любой Win машины, и запускаем в Hyper-V

Фарумчане, прошу помощи.

Я хочу использовать qemu-img conver, но у меня нет исходного файла!

тут исходный файл 100-2008r2.raw

все новые версии qemu могут портировать в любой формат.
код прежний:
Код:
qemu-img convert -f raw -O vhd 100-2008r2.raw 100-2008r2.vhd »

Я ни как не могу получить доступ к этому исходному файлу. Не могу зайти на хранилище


вот хранилище:

оно не имеет Path/Target`a . я не могу его ни куда примонтировать

Примонтировать просто /dev/sda3 неполучится - это же LVM.

так же мне не помогает vgdisplay -v . Непонятно как его примонтировать.

Увижу корневую систему, но мне то нужен *.raw файл VM машины.

Есть возможность сделать бекап машины с веб морды. Но как я понял, бекапирование с морды делается vz_dump`ом. Вот лог бекапирования:

Мне всегда нравился бесплатный гипервизор Xenserver, часто его использовал. Но недавно принял решение постепенно переходить на другой гипервизор. Какой именно - еще не решил окончательно. О причинах отказа от Xenserver и общих мыслях по поводу современных гипервизоров расскажу подробнее далее. В статье рассмотрю подробно вопрос переноса виртуальных машин с Xenserver на Hyper-v.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Введение

Статью изначально хотел написать на тему установки Xenserver 7 на mdadm raid1. Мне всегда нравился xen именно за возможность установить его на mdadm. Это позволяло использовать гипервизор на любом железе с двумя хардами, обеспечивая простую отказоустойчивость на уровне дисков. Это удобно и бюджетно. То же самое можно сделать на kvm, но лично мне у xen больше нравится оснастка управления в виде приложения для windows. В нее можно удобно подключать множество серверов и управлять всем из одного места. Как плюс, в сравнении с kvm, проще и быстрее установить и настроить в работу, передать кому-нибудь на управление.

Собственно, черновик статьи по установке Xenserver на софтовый рейд я подготовил и протестировал. На первый взгляд все работает. Проблемы начались, когда я стал проверять отказоустойчивость и отключать один хард. Как оказалось, xenserver не может нормально загрузиться, если рейд mdadm уходит в состояние degreaded. Я был очень расстроен этим фактом и потратил непрерывно почти сутки на то, чтобы разобраться с ситуацией и попробовать решить проблему. Но у меня это не получилось. И в интернете рецепта по решению проблемы тоже не нашел, но нашел подтверждение этой проблемы.

Похоже, XenServer с версии 7 больше не поддерживает работу на mdadm. Об этом даже упомянуто в официальном FAQ:

- Does XenServer support a software-based RAID implementation?
- No, XenServer does not support software RAID.

У меня до сих пор есть много виртуальных машин под управлением CentOS 5. Особенность этой версии в том, что для нормальной работы на XenServer на систему устанавливалось специальное ядро kernel-xen. В итоге, при переносе системы на другой гипервизор, она отказывалась работать. Необходимо серьезно поработать напильником, чтобы завести ее. Мне важно было отработать этот момент, так как в работе придется постепенно уходить от Xenserver в сторону либо Hyper-V, либо KVM. Пока еще не решил окончательно, так как на KVM у меня так и не получилось завести виртуальные машины с xen, а вот на Hyper-V удалось. Об этом и расскажу.

Перенос виртуальной машины с xenserver на kvm

Сам перенос виртуальной машины представляет из себя простое копирование диска с одного гипервизора на другой. Для бэкапа Xenserver я использую бесплатную версию программы Alike Free. К сожалению, ее больше нет в бесплатной редакции. Разработчики закрыли бесплатный проект, есть только триальная версия от платной. Но у меня остался и дистрибутив, и ключи для бесплатной версии. Я продолжаю ее использовать. Простая и удобная программа, которая позволяет делать инкрементные бэкапы виртуальных машин. Она же умеет выгружать бэкапы в vhd формате. Все что надо сделать для переноса виртуалки - создать такую же машину на hyper-v и в качестве диска указать перенесенный vhd образ с xenserver. Но если после этого просто запустить виртуалку, вы получите ошибку.

Виртуальная машина не загружается

Ничего удивительного в этом нет, модифицированное ядро для xen работает только на самом гипервизоре. Для работы в другой среде необходимо установить стандартное ядро linux. Вот этим я и займусь далее. Задача оказалась очень непростой, пришлось много ковыряться в различных нюансах. В первую очередь, чтобы не забыть приобретенный опыт, я и пишу эту статью. Хотя понимаю, что мало кому пригодится подобный опыт. Вряд ли найдется много людей, кто будет переносить уже снятую с поддержки систему CentOS 5 с гипервизора Xen куда-то в другое место. По-хорошему, системы надо переставлять, и я этим постепенно займусь. Но все равно необходимо иметь под рукой готовую инструкцию на случай всяких неожиданностей.

Описанный ниже способ восстановления загрузки виртуальной машины является универсальным средством для решения проблем с загрузкой linux сервера. Если у вас по какой-то причине не загружается linux сервер, сломался загрузчик или возникли проблемы после обновления ядра, рассказанные далее способы обновления и замены ядра и загрузчика могут помочь в решении этой проблемы.

Восстановление загрузки linux сервера

Для того, чтобы виртуальная машина заработала на hyper-v, как я уже сказал, необходимо установить стандартное ядро. Для этого загружаемся в виртуальной машине с загрузочного диска CentOS 7 и выбираем режим Rescue a CentOS system.

Rescue a CentOS system

Чтобы выбрать этот раздел, необходимо в главном меню выбрать Troubleshooting. Дожидаемся загрузки и выбираем первый предложенный вариант.

Загрузка в режиме rescue linux

Сразу чрутимся в нашу восстанавливаемую систему. Первым делом надо обновить систему и установить стандартное ядро. Скорее всего через yum у вас ничего не получится, так как ссылки на репозитории centos 5 стали неактивны, после того, как 31-го марта закончилась поддержка системы. Необходимо изменить файл /etc/yum.repos.d/CentOS-Base.repo, отредактировав пути соответствующих разделов на следующие:

Все строки с mirrorlist надо закомментировать, а baseurl изменить на указанные. После этого надо настроить сеть и запустить обновление системы.

Теперь установим стандартное ядро linux, а от xen удалим.

Дальше обновим initrd. Чтобы не было ошибок, необходимо в файле /etc/modprobe.conf закомментировать все строки, в которых есть упоминание xen.

Отключаем модули ядра

Теперь проверяем версию имеющихся библиотек ядра в системе.

Проверка модулей ядра

Берем самую свежу версию и собираем образ initrd.

Редактируем конфиг загрузчика /boot/grub/grub.conf, чтобы он выбрал при загрузке именно эту версию ядра.

Редактирование загрузчика grub

Параметр default=1 соответствует второй строке меню, так как отсчет идет от 0. То есть как раз будет выбрано нужное обновленное ядро. Обновляем загрузчик на диске.

Если получите ошибку:

Используйте такую команду:

По идее, на этом можно было бы и завершить. Мы фактически выполнили полное восстановление поломанной загрузки linux сервера. Но так как речь идет о xenserver, есть еще один нюанс. Если сейчас попробовать загрузить виртуальную машину, то все пройдет гладко почти до самого конца загрузки, а потом вылезет ошибка.

Закомментировать ее, а вместо нее снять комментарий со строки

Редактирование inittab

Теперь можно перезагружать виртуалку. Она должна благополучно загрузиться. По крайней мере у меня было так.

К сожалению, указанный выше способ не смог заставить загрузиться эту же виртуальную машину на гипервизоре KVM. Не знаю почему. После выбора в загрузчике версии ядра, система просто зависает в таком положении.

Не загружается vm на kvm

И дальше ничего не происходит. Никаких ошибок при этом нет. У меня даже нет идей из-за чего это может быть и в каком направлении двигаться, чтобы запустить виртуалку. Если у кого-то есть идеи как это сделать, прошу совета. Мне бы очень хотелось перенести виртуальные машины с centos 5 на kvm. Я пробовал переносить уже восстановленные виртуалки с hyper-v на kvm, конвертировал диск с vhd в qсow2, но все без результата. Они все равно зависают точно так же, как если бы я их переносил напрямую с xenserver.

Заключение

Если у кого-то есть опыт или советы в рассматриваемых в статье проблемах, прошу поделиться в комментариях. Больше всего меня интересует вопрос установки XenServer на mdadm и перенос виртуалок с xenserver на kvm.

date

27.07.2021

directory

Hyper-V, PowerShell, Windows Server 2016, Виртуализация

comments

комментария 4

В Hyper-V в отличии от VMWare нет встроенной функции клонирования виртуальной машины (клонирование есть только в Virtual Machine Manager). Чтобы создать полную копию существующей ВМ придется использовать функцию импорта/экспорта. В этой статье мы рассмотрим, как клонировать виртуальную машину в Hyper-V через импорт/экспорт через графический интерфейс Hyper-V Manager, PowerShell и Windows Admin Center (WAC).

При клонировании виртуальных машин с Windows не забывайте о том, что после клонирования ВМ у ее копии будет такой же SID. Для сброса SID нужно использовать утилиту sysprep. Если вы создали эталонный образ Windows, то перед клонированием на нем нужно выполнить команду:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

ВМ будет выключена и при следующей загрузке как оригинальной ВМ, так и ее клона для Windows будет сгенерирован новый SID. Также нежелательно клонировать ВМ, включенные в домен Active Directory.

Экспорт/импорт ВМ из консоли Hyper-V Manager

Сначала нужно экспортировать ВМ в отдельный каталог.

Запустите консоль Hyper-V manager, выберите ВМ и в контекстном меню выберите Export.

Начиная с версии Hyper-V в Windows Server 2012 R2 (в том числе в Free Hyper-V Server) вы можете экспортировать даже запущенные виртуальные машины без их остановки.

экспорт виртуальной машины через hyper-v manager

Укажите каталог, в который нужно экспортировать виртуальную машину.

каталог в который поместить копию ВМ

Статус экспорта ВМ будет отображен в строке состояния ВМ в консоли Hyper-V.

Многие используют экспорт ВМ как простейшее средство бэкапа ВМ на Hyper-V.

exporting VM в консоли hyper-v

Начиная с Hyper-V в Windows Server 2012 R2 вы можете экспортировать конкретный снимок (checkpoint) виртуальной машины. Для этого достаточно выбрать нужны снимок в дереве Checkpoints и выбрать Export.

экспорт снимка ВМ в hyper-v

Чтобы импортировать ВМ щелкните в консоли Hyper-V Manager по имени хоста и выберите Import Virtual Machine.

запустить Import Virtual Machine в консоли hyper-v

Затем нужно указать путь к каталогу, в котором находятся папки с файлами импортируемой ВМ. При импорте ВМ в Hyper-V предлагается 3 варианта регистрации ВМ на хосте:

  • Register the virtual machine in-place (use the existing unique ID) —зарегистрировать ВМ в каталоге с импортируемыми файлами, ID ВМ сохраняется;
  • Restore the virtual machine (use the existing unique ID) — скопировать файлы ВМ в другой каталог, сохранить исходный идентификатор ВМ;
  • Copy the virtual machine (create a new unique ID) — скопировать ВМ в другую каталог и сгенерировать новый ID.

копировать ВМ Hyper-V и сгенерировать новый ID

У каждой ВМ на хосте Hyper-V есть идентификатор ID, который должен быть уникальным в рамках хоста. Если вы импортируете, клонируете ВМ на другой хост, ID ВМ менять не обязательно.

Если вы попробуете импортировать ВМ с дублирующим ID, появится ошибка:

Чтобы создать клон ВМ с новым ID мы выбрали 3 вариант. Мастер предложит указать в каких каталогах нужно разместить файлы ВМ. По умолчанию, используются каталоги, заданные в настройках хоста Hyper-V.

указать каталог, в котором хранить файлы ВМ

Затем укажите каталог для хранения виртуальных дисков vhdx ВМ.

каталога для vhdx файлов ВМ hyper-v

После этого новая клонированная виртуальная машина появится в консоли Hyper-V.

Клонирование ВМ через экспорт/импорт в Hyper-V с помощью PowerShell

Рассмотрим, как клонировать виртуальную машину Hyper-V через импорт/экспорт из консоли PowerShell.

Для экспорта ВМ воспользуйтесь такой командой:

Export-VM -Name win10 -Path 'C:\VHD\export'

Export-VM в hyper-v с помощью powershell

Если вы хотите экспортировать запущенную ВМ, вы можете использовать параметр CaptuteLiveState, в котором определяется как нужно копировать оперативную память ВМ. Доступны три опции

  • CaptureSavedState – экспортировать оперативную память (по-умолчанию);
  • CaptureDataConsistentState – экспортировать состояние ВМ из Production checkpoint;
  • CaptureCrashConsistentState – не сохранять содержимое памяти.

Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

Если вы хотите экспортировать состояние ВМ в определеном снимке, нужно указать его имя.

Сначала выведите список снимков для указанной ВМ:

Get-VMSnapshot -VMName win10

Затем выполните экспорт нужного снимка по его имени:

Export-VMSnapshot -Name “win10 - (2/17/2021 - 9:52:20 PM) Standard” -VMName win10 -Path 'C:\VHD\export'

Export-VMSnapshot

После завершения экспорта ВМ вы можете импортировать ее. Если нужно зарегистрировать ВМ по месту хранения файлов, выполните команду:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx"

В параметре Path указываем расположение vmcx файла конфигурации ВМ (формат vmcx заменил XML формат конфигурационных файлов ВМ в Hyper-V Server 2016). Для копирования ВМ в другой каталог с тем же ID используйте параметр Copy. Чтобы сгенерировать нового идентификатор ВМ, используйте параметр GenerateNewId:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines\1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"

Также можно указать каталоги для хранения чекпоинтов ( SnapshotFilePath ) и файла подкачки ( SmartPagingFilePath ).

import-vm командлет powershell

Обратите внимание, что клонированная ВМ появилась в консоли Hyper-V с оригинальным именем. Переименуем новую ВМ, но сначала нужно получить ее ID:

get-vm | select VMNAME,VMId

Как вы видите в консоли есть две ВМ с одинаковым именем и разными ID. Нужно переименовать ВМ с ID, который отличается от ID импортируемой ВМ. Скопируйте ID новой ВМ и переименуйте ее:

переименовать виртуальную манину hyper-v из powershell

Затем для удобства можно переименовать виртуальный жесткий диск.

Get-VHD -VMId 24ad8934-f650-46f6-9caa-2a3b79b79bd5| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"

Изменим MAC адрес виртуального адаптера (можно указать новый статический MAC или настроить динамическое получение MAC адреса).

Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2

изменить имя виртуальных дисков ВМ hyper-v

Прежде, чем подключить новую ВМ в сеть, желательно переименовать ее и изменить IP адрес на новый (если используется DHCP адресация, этот шаг можно пропустить). В данном случае мы можем подключиться к новой ВМ через PowerShell Direct с помощью командлета Invoke-Command или Enter-PSSession:

Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.31.50 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer

Клонирование виртуальных машин Hyper-V через Windows Admin Center

Возможно клонировать ВМ Hyper-V напрямую без промежуточного экспорта/импорта появилась в Windows Admin Center v2009.

Запустите WAC, выберите раздел Virtual Machines, выберите ВМ -> Manage -> Clone.

Windows Admin Center клонировать виртулаьную машину

Затем нужно указать имя новой ВМ и каталог, в который нужно поместить ее файлы.

wac клонирование виртуальной машины с sysprep

Обратите внимание, что мастере клонирования есть опция “I have already run sysprep on my VM”. Если вы не выполнили генерализацию образа с помощью Sysprep, и не включили эту опцию, Hyper-V создаст снапшот исходной ВМ, выполните ее Sysprep и склонирует в новую (исходная ВМ будет несколько раз перезагружена и не доступна для работы). После этого исходная ВМ будет возвращена в первоначальное состояние, а снапшот удален.

При клонировании любых ВМ, с гостевыми ОС, отличными от Windows, всегда включайте эту опцию.

Windows Admin Center - pre-sysprep снимок при клонировании

Дождитесь окончания клонирования ВМ. Новой ВМ автоматически будет присвоен новый ID.

В данной статье мы рассмотрим как можно перенести виртуальную машину из Hyper-V в Proxmox (KVM).

Чтобы импортировать Vm из Hyper-V в Proxmox нужно конвертировать ее виртуальный диск.

Делается это в два этапа.

Первый этап это конвертирование диска Hyper-V в формат vhd.


Далее выберите диск вашей виртуальной машины


Выберите пункт преобразовать



В конце мастера укажите расположение конвертированного диска.

Подключитесь по Ssh к proxmox.

Создайте папку на датасторе (это можно сделать на примонтированном датасторе, например если вы используете датастор с ext4 или btrfs)

Далее загрузите в нее диск (например через winscp).

Мой датастор находится по пути /mnt/content/

Я создал следующую папку для диска /mnt/content/images/700/ и скопировал в нее по scp сконвертированный ранее vhd диск.

Теперь нужно запустить конвертацию vhd образа с qcow2.

qemu - img convert - f vpc - O qcow2 / mnt / content / images / 700 / VM . vhd / mnt / content / images / 700 / ADtest . local . qcow2

Это довольно долгая операция.

Теперь нужно создать VM и подключить к ней сконвертированный диск qcow2.

Создайте в proxmox виртуальную машину, по характеристикам идентичную вашей изначальной машине в Hyper-V.

При создании VM выберите тип контроллера sata, иначе если будет указан тип Virtio, ваша VM не загрузится.

После создания машины удалите пустой виртуальный диск, который создал Proxmox, он нам не понадобится.

Если в Hyper-V ваша машина была второго поколения, то в Proxmox для созданной ранее машины нужно изменить тип биос на OVMF и добавить EFI диск


Добавленный EFI диск.


Теперь нужно добавить сконвертированный ранее qcow2 диск.

Сделать это можно отредактировав конфиг VM.

В интерфейсе proxmox посмотрите номер VM, в моем случае номер 700


Теперь посмотрите название Вашего датастора, на котором храниться сконвертированный диск qcow2

У меня он называется Backup_Storage


Запомните id машины и название датастора, они нам понадобятся при редактировании конфига.

Читайте также: