Как легко перенести виртуальные машины между XCP-ng и KVM?

XCP-ng и KVM — популярные платформы с открытым исходным кодом для запуска виртуальных машин. В этой статье объясняются различия между ними и приводятся четкие инструкции по миграции виртуальных машин между этими платформами. Продолжайте чтение, чтобы узнать, как безопасно и эффективно переносить ваши рабочие нагрузки.

download-icon
Скачайте Бесплатно
Для ВМ, ОС, БД, файлов, NAS и т.д.
oleg-ye

Обновлено Oleg Ye 2026/09/18

Оглавление
  • Что такое XCP-ng?

  • Что такое KVM?

  • XCP-ng и KVM: ключевые различия и сценарии использования

  • Ручная миграция между средами XCP-ng и KVM

  • Как перенести виртуальные машины с помощью Vinchin Backup & Recovery

  • Часто задаваемые вопросы о миграции между XCP-ng и KVM

  • Заключение

Виртуализация позволяет сделать ИТ-инфраструктуру более гибкой и эффективной. Многие организации используют такие решения с открытым исходным кодом, как XCP-ng и KVM, для запуска виртуальных машин (VM). Но что делать, если необходимо перенести рабочие нагрузки с одной платформы на другую?

Для администраторов, работающих с гибридными средами или планирующих миграцию, такая задача может оказаться непростой из-за различий в архитектуре и инструментах управления. В этой статье разберём особенности XCP-ng и KVM, сравним их ключевые характеристики, а также рассмотрим ручную миграцию виртуальных машин и более простой вариант с использованием Vinchin Backup & Recovery.

Что такое XCP-ng?

XCP-ng — это платформа виртуализации с открытым исходным кодом, построенная на гипервизоре Xen Project. Изначально она появилась как форк Citrix XenServer, созданный сообществом, но со временем стала самостоятельным проектом с полным набором доступных функций и активной разработкой при участии сообщества.

XCP-ng относится к гипервизорам типа 1 (bare-metal): он устанавливается непосредственно на физическое оборудование, а не поверх другой операционной системы. Такая архитектура обеспечивает хорошую изоляцию виртуальных машин, что особенно важно для критически важных рабочих нагрузок.

Для управления XCP-ng можно использовать такие инструменты, как Xen Orchestra и XCP-ng Center. Они предоставляют графические интерфейсы для создания виртуальных машин, выполнения резервного копирования, живой миграции между хостами, управления хранилищами и сетями, создания снимков, настройки высокой доступности и других операций.

XCP-ng поддерживает такие функции, как кластеры высокой доступности, при которых виртуальные машины автоматически перезапускаются при отказе оборудования, живая миграция работающих ВМ между хостами без простоя, различные типы хранилищ — от локальных дисков до общих SAN/NAS, а также ролевое управление доступом для выполнения требований безопасности.

Что такое KVM?

KVM (Kernel-based Virtual Machine) — это модуль ядра Linux, который превращает совместимый дистрибутив Linux в полнофункциональный гипервизор. В зависимости от способа развертывания и наличия графической оболочки хостовой ОС KVM может использоваться как гипервизор типа 1 или типа 2.

KVM использует аппаратные расширения виртуализации, такие как Intel VT-x и AMD-V, чтобы эффективно запускать несколько изолированных виртуальных машин на одном физическом сервере.

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

Для управления KVM можно использовать командные инструменты (virsh, qemu-img), графические приложения вроде virt-manager или средства автоматизации на основе API libvirt. Последние применяются, в частности, в облачных платформах OpenStack и oVirt.

KVM поддерживает практически любые гостевые ОС: различные версии Windows Server, основные дистрибутивы Linux и даже варианты BSD благодаря широкой поддержке драйверов в ядре.

Благодаря использованию нативных возможностей Linux, включая cgroups для управления ресурсами, KVM может масштабироваться от небольших односерверных лабораторий до крупных облачных сред с большим количеством виртуальных машин.

XCP-ng и KVM: ключевые различия и сценарии использования

При сравнении XCP-ng и KVM необходимо учитывать несколько факторов: архитектуру, подход к управлению, особенности экосистемы, производительность, безопасность, удобство масштабирования и типичные сценарии эксплуатации.

Архитектура

XCP-ng работает поверх гипервизора Xen, установленного непосредственно на физическое оборудование. Это обеспечивает хорошую изоляцию виртуальных машин друг от друга на одном хосте и особенно актуально для многопользовательских сред.

KVM, напротив, интегрирован непосредственно в ядро Linux. Виртуальные машины используют общие базовые ресурсы, управление которыми осуществляется механизмами планирования процессов Linux.

Инструменты управления

XCP-ng предоставляет централизованные веб-консоли, например Xen Orchestra, с помощью которых можно управлять кластером из единого интерфейса: создавать виртуальные машины, контролировать состояние инфраструктуры, управлять хранилищами и выполнять другие операции.

KVM в основном управляется через командные инструменты (virsh, qemu-img) и дополнительные графические интерфейсы, например virt-manager. Поэтому администратору может потребоваться более глубокое понимание Linux.

При масштабировании KVM автоматизация становится особенно важной. Для этого можно использовать скрипты, Ansible и API libvirt.

Производительность и безопасность

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

Модель микроядра Xen обеспечивает дополнительную изоляцию рабочих нагрузок, тогда как глубокая интеграция KVM с Linux позволяет быстрее использовать новые возможности процессоров и функции, появляющиеся в ядре Linux, например поддержку вложенной виртуализации.

С точки зрения безопасности обе платформы регулярно получают обновления. При этом в некоторых сценариях организации могут отдавать предпочтение архитектуре Xen благодаря более строгой изоляции рабочих нагрузок. Это может быть актуально для облачных провайдеров и регулируемых отраслей, где разные клиенты или рабочие нагрузки размещаются на одном оборудовании.

Типичные сценарии использования

XCP-ng подходит для сред, где важны централизованное управление, кластеризация и высокая доступность. Такие возможности могут быть востребованы как в корпоративных дата-центрах, так и в лабораторных средах.

KVM больше ориентирован на гибкость и тесную интеграцию с Linux. Он хорошо подходит для сред, где требуется автоматизация с помощью скриптов и API, а также для различных сценариев — от тестовых стендов до производственных инфраструктур и частных или публичных облаков.

Ручная миграция между средами XCP-ng и KVM

Ручная миграция виртуальных машин между KVM и XCP-ng включает несколько этапов: подготовку исходной ВМ, экспорт и конвертацию диска, передачу файла на целевой сервер, импорт диска и создание новой виртуальной машины.

Этап 1. Подготовка виртуальной машины на хосте KVM

Перед экспортом необходимо убедиться, что в гостевой ОС установлены необходимые драйверы. Это позволит виртуальной машине корректно загрузиться после переноса в среду Xen.

Для большинства современных Linux-систем можно обновить образ initramfs с помощью команды:

dracut --add-drivers "xen-blkfront xen-netfront" --force

Если система использует загрузку в режиме BIOS, необходимо пересоздать конфигурацию GRUB:

dracut --regenerate-all -f && grub2-mkconfig -o /boot/grub2/grub.cfg

Для систем с UEFI путь необходимо изменить в соответствии с используемым дистрибутивом:

dracut --regenerate-all -f && grub2-mkconfig -o /boot/efi/EFI/<your distribution>/grub.cfg

После этого корректно выключите виртуальную машину. Это можно сделать с помощью кнопки SHUTDOWN в консоли virt-manager или выполнить команду:

virsh shutdown <domain>

Корректное завершение работы поможет избежать несогласованности файловой системы на следующих этапах миграции.

Этап 2. Экспорт и конвертация образа диска

Найдите основной файл виртуального диска выбранной ВМ. Обычно он находится в каталоге:

/var/lib/libvirt/images

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

Затем с помощью qemu-img преобразуйте диск из формата QCOW2 в формат VHD, который поддерживается XCP-ng:

qemu-img convert -O vpc myvm.qcow2 myvm.vhd

Во время этой операции исходный образ считывается и преобразуется в совместимый формат, после чего полученный VHD можно импортировать в XCP-ng.

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

Этап 3. Передача и импорт диска в XCP-ng

Перенесите полученный файл .vhd на целевой сервер. Для этого можно использовать SCP, RSYNC, SFTP или другой подходящий способ передачи файлов.

После копирования проверьте целостность образа с помощью встроенных инструментов:

vhd-util repair -n myvm.vhd
vhd-util check -n myvm.vhd

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

Затем в выбранном Storage Repository создайте пустой виртуальный диск, размер которого должен быть немного больше импортируемого файла.

После этого импортируйте VHD:

xe vdi-import filename=myvm.vhd format=vhd --progress uuid=<VDI UUID>

Здесь необходимо использовать UUID созданного виртуального диска.

Этап 4. Создание новой ВМ и подключение импортированного диска

В Xen Orchestra или XCP-ng Center создайте новую виртуальную машину с параметрами, соответствующими исходной ВМ.

Необходимо учесть количество виртуальных процессоров, конфигурацию CPU, объём оперативной памяти и другие параметры исходной машины.

Также важно выбрать правильный тип прошивки — BIOS или UEFI — в зависимости от того, какой режим загрузки использовался на исходной виртуальной машине.

Как перенести виртуальные машины с помощью Vinchin Backup & Recovery

Чтобы упростить миграцию между средами XCP-ng и KVM, сократить количество ручных операций и снизить риски простоев, можно использовать Vinchin Backup & Recovery — решение для резервного копирования и агентной миграции виртуальных машин.

Vinchin Backup & Recovery поддерживает широкий спектр платформ виртуализации, включая VMware vSphere/ESXi, Microsoft Hyper-V, Proxmox VE, oVirt/RHV/OLVM, Citrix XenServer/XCP-ng, OpenStack и другие платформы.

Процесс миграции достаточно прост: сначала создаётся резервная копия исходной виртуальной машины, после чего она восстанавливается на целевой хост. Все операции выполняются через веб-консоль Vinchin Backup & Recovery.

Шаг 1. Выберите точку восстановления

Выберите резервную копию и нужную точку восстановления виртуальной машины.

vmware to proxmox 1

Шаг 2. Выберите целевое расположение

Укажите хост, на который необходимо восстановить виртуальную машину.

vmware to proxmox 2

Шаг 3. Настройте параметры восстановления

Настройте необходимые параметры восстановления. Если дополнительных изменений не требуется, можно перейти к следующему шагу, нажав Next.

vmware to proxmox 3

Шаг 4. Проверьте параметры и запустите задание

Проверьте выбранные параметры и отправьте задание на выполнение.

vmware в proxmox 4

Vinchin Backup & Recovery позволяет использовать резервное копирование как основу для миграции виртуальных машин между различными платформами виртуализации, что помогает упростить переход на новую инфраструктуру и снизить операционные риски.

Часто задаваемые вопросы о миграции между XCP-ng и KVM

Вопрос 1. Можно ли перенести только часть дисков большой виртуальной машины из KVM в XCP-ng?

Нет. Все подключённые к виртуальной машине диски необходимо переносить вместе. Разделение дисков между разными этапами миграции может привести к нарушению зависимостей приложений внутри гостевой ОС.

Вопрос 2. Может ли миграция между XCP-ng и KVM повлиять на программные лицензии, привязанные к идентификаторам оборудования?

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

Вопрос 3. Можно ли автоматизировать установку драйверов перед миграцией сотен виртуальных машин?

Да. С помощью скриптов можно массово обновить образы initramfs на виртуальных машинах перед экспортом. Однако после автоматической обработки необходимо проверить каждую ВМ, чтобы убедиться в корректности результата.

Заключение

Миграция виртуальных машин между XCP-ng и KVM требует предварительной подготовки, особенно если выполняется вручную. Необходимо учитывать драйверы гостевой ОС, формат виртуальных дисков, параметры загрузки и конфигурацию целевой виртуальной машины.

Для небольшого количества ВМ ручной перенос может быть подходящим вариантом. Если же необходимо перенести большое количество виртуальных машин или одновременно обеспечить резервное копирование и возможность восстановления, использование специализированного решения может значительно упростить процесс.

Vinchin Backup & Recovery позволяет использовать резервные копии виртуальных машин для миграции между различными платформами виртуализации, помогая сократить количество ручных операций и снизить риски при переходе на новую инфраструктуру.


поделиться:

Категории: Перенос ВМ