Перейти к содержанию

XCP-ng

В этой статье

Информация

XCP-ng (Xen Cloud Platform - New Generation) - это бесплатный гипервизор с открытым исходным кодом, основанный на Xen Project. XCP-ng был создан как открытая альтернатива Citrix XenServer после того, как Citrix ограничил функциональность бесплатной версии. Проект предоставляет полнофункциональную платформу виртуализации корпоративного уровня без каких-либо искусственных ограничений, поддерживает живую миграцию, высокую доступность, управление хранилищами и интеграцию с системами оркестрации. XCP-ng распространяется под лицензиями GPLv2 и совместимыми свободными лицензиями.

XCP-ng. Основные возможности

  • Виртуализация: XCP-ng поддерживает запуск множества виртуальных машин на одном физическом сервере с полной изоляцией и эффективным распределением ресурсов. Поддерживаются гостевые ОС Linux, Windows и другие.
  • Живая миграция: возможность перемещения работающих виртуальных машин между хостами без простоя, что обеспечивает непрерывность работы сервисов при обслуживании оборудования.
  • Высокая доступность (HA): автоматический перезапуск виртуальных машин на других хостах пула при отказе одного из серверов.
  • Управление хранилищами: поддержка различных типов хранилищ (Storage Repositories), включая локальные диски, NFS, iSCSI, Ceph и другие.
  • Снапшоты и резервное копирование: создание мгновенных снимков состояния виртуальных машин для быстрого восстановления и резервного копирования.
  • Пулы ресурсов: объединение нескольких хостов XCP-ng в единый пул для централизованного управления и распределения нагрузки.
  • Сетевые возможности: поддержка VLAN, бондинга сетевых интерфейсов, SR-IOV и программно-определяемых сетей.
  • Веб-интерфейсы управления: XCP-ng включает встроенный веб-интерфейс XO Lite для базового управления, а полнофункциональный Xen Orchestra (XO) предоставляет расширенные возможности автоматизации, мониторинга и резервного копирования.

Варианты управления XCP-ng

Для работы с XCP-ng доступны несколько интерфейсов управления:

XO Lite (встроенный, бесплатный):

  • Доступен сразу после установки XCP-ng по адресу https://<IP-адрес_сервера>;
  • Базовый веб-интерфейс для создания и управления виртуальными машинами;
  • Мониторинг ресурсов и выполнение базовых операций;
  • Подходит для домашних лабораторий и небольших проектов;
  • Не требует дополнительной настройки.

Xen Orchestra from Sources (бесплатный, требует установки):

  • Полнофункциональная система управления с открытым исходным кодом;
  • Автоматические резервные копии, репликация, расширенный мониторинг;
  • Централизованное управление несколькими хостами;
  • Требует создания отдельной виртуальной машины и самостоятельной установки (Ubuntu/Debian);
  • Обслуживание и обновления выполняются вручную;
  • Поддержка через community-форумы.

Xen Orchestra Appliance (XOA) (платная подписка, требует развертывания):

  • Готовая виртуальная машина с предустановленным Xen Orchestra;
  • Развертывается через кнопку "Deploy XOA" в интерфейсе XO Lite;
  • Официальная техническая поддержка от компании Vates (24/7);
  • Автоматические обновления и SLA-гарантии;
  • Тарифы для малого бизнеса: 2 000 €/год (ESSENTIAL, до 3 хостов) или 4 000 €/год (ESSENTIAL+, полный доступ) – подробнее;
  • Рекомендуется для production-окружений с требованиями к поддержке.

Выбор варианта зависит от масштаба инфраструктуры и требований к технической поддержке. Для начала работы достаточно встроенного XO Lite, более продвинутые функции доступны через установку полнофункционального Xen Orchestra.

Особенности сборки

ID Название ОС Алиас Активно BM GPU VPS VDS Семейство Группа ОС CloudInit Доступность
306 XCP-ng 8.3 - Да + + + - XCP-ng Others Нет ЗАКАЗАТЬ

Минимальные требования к серверу:

  • RAM: 8 ГБ;
  • HDD: 60 ГБ;
  • Виртуализация: поддержка вложенной виртуализации (nested virtualization).

Начало работы после развертывания XCP-ng

После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и API - Invapi.

Данные для авторизации, которые можно найти или во вкладке Информация >> Теги панели управления сервером или в присланном e-mail:

  • Логин: root;
  • Пароль: приходит в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО.

Авторизация

Для доступа к серверу XCP-ng доступны два способа: через веб-интерфейс XO Lite и через SSH.

Подключение через XO Lite

XO Lite - это встроенный веб-интерфейс для управления XCP-ng, доступный непосредственно с хоста.

  • Открыть браузер и перейти по адресу https://<IP-адрес_сервера>:

  • Ввести логин root и пароль из письма, затем нажать кнопку Login.

Информация

Браузер может показать предупреждение о недоверенном сертификате - это нормально для самоподписанного сертификата. Добавьте исключение для продолжения.

Подключение через SSH

  • Открыть терминал и подключиться к серверу командой:

    ssh root@<IP-адрес_сервера>
    
  • Ввести пароль при запросе. После успешного подключения вы окажетесь в командной строке XCP-ng.

Подключение через HTML5-консоль

Для доступа к консоли хоста также можно использовать HTML5-консоль в панели управления Invapi:

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

Работа с xsconsole

При подключении через SSH или VNC-консоль можно использовать xsconsole - встроенную текстовую консоль управления XCP-ng для конфигурации и администрирования хоста.

Для запуска xsconsole введите команду:

xsconsole

После запуска откроется меню управления системой:

Основные разделы xsconsole

Status Display

  • Мониторинг состояния хоста (CPU, память, сеть, хранилище);
  • Просмотр работающих виртуальных машин;
  • Общая информация о системе.

Network and Management Interface

  • Настройка сетевых интерфейсов;
  • Конфигурация IP-адресов (статический/DHCP);
  • Настройка шлюза (gateway) и DNS-серверов.

Authentication

  • Изменение пароля root;
  • Управление SSH-доступом;
  • Настройка учетных записей.

Virtual Machines

  • Просмотр списка виртуальных машин;
  • Базовое управление VM (запуск, остановка);
  • Контроль состояния гостевых систем.

Disks and Storage Repositories

  • Просмотр подключенных дисков;
  • Управление хранилищами (Storage Repositories);
  • Создание и удаление SR.

Resource Pool Configuration

  • Создание пула из нескольких хостов;
  • Присоединение к существующему пулу;
  • Управление кластером серверов.

Hardware and BIOS Information

  • Информация о процессоре и памяти;
  • Данные о сетевых картах;
  • Версия BIOS и прошивок.

Keyboard and Timezone

  • Настройка раскладки клавиатуры;
  • Установка часового пояса системы.

Remote Service Configuration

  • Настройка удаленного доступа;
  • Конфигурация SSH;
  • Управление SSL-сертификатами.

Backup, Restore and Update

  • Резервное копирование конфигурации хоста;
  • Восстановление настроек;
  • Проверка и установка обновлений системы.

Technical Support

  • Генерация отчета для технической поддержки (bug report);
  • Сбор системных логов;
  • Диагностическая информация.

Local Command Shell

  • Выход в стандартную командную строку bash;
  • Для выполнения произвольных команд и скриптов.

Reboot or Shutdown

  • Перезагрузка хоста;
  • Корректное выключение системы.

Навигация в xsconsole

  • Enter - выбрать пункт меню/подтвердить действие;
  • ↑/↓ - перемещение по пунктам меню;
  • Tab - переключение между элементами формы;
  • Esc или q - возврат в предыдущее меню/выход.

Совет

xsconsole особенно полезен для первоначальной настройки сервера, экстренного восстановления доступа или конфигурации сети, когда веб-интерфейс XO Lite недоступен. Для выхода из xsconsole в обычную командную строку выберите пункт Local Command Shell.

Работа с XO Lite

После авторизации в XO Lite открывается главная панель управления (Dashboard):

Интерфейс XO Lite содержит следующие разделы:

  • DASHBOARD: общий обзор состояния хоста, статус виртуальных машин, использование хранилища и уведомления;
  • ALARMS: просмотр системных предупреждений и оповещений;
  • STATS: статистика производительности и использования ресурсов;
  • SYSTEM: системные настройки хоста;
  • NETWORK: управление сетевыми интерфейсами и виртуальными сетями;
  • STORAGE: управление хранилищами данных (Storage Repositories);
  • TASKS: журнал выполняемых и завершённых задач;
  • HOSTS: информация о хостах в пуле;
  • VMS: управление виртуальными машинами.

Управление сетями

Во вкладке NETWORK отображаются доступные сети и их параметры:

Здесь можно просмотреть Pool-wide сети (доступные всем хостам в пуле) и Host internal сети (внутренние сети хоста), а также создать новые сетевые подключения.

Создание виртуальной машины

Подготовка: загрузка ISO-образа

Перед созданием виртуальной машины необходимо загрузить ISO-образ операционной системы в Storage Repository.

Загрузка ISO через SSH

XO Lite не поддерживает загрузку ISO-образов через веб-интерфейс. Для загрузки ISO необходимо использовать командную строку:

  1. Подключиться к серверу по SSH

    ssh root@<IP-адрес_сервера>
    
  2. Если после подключения открылась консоль xsconsole, выйти в обычную командную строку, выбрав пункт меню Local Command Shell или нажав комбинацию клавиш Ctrl+C.

  3. Найти UUID хранилища ISO

    xe sr-list content-type=iso
    
    Скопировать UUID хранилища с именем "XCP-ng Tools".

  4. Перейти в директорию хранилища ISO

    cd /opt/xensource/packages/iso
    
  5. Загрузить ISO-образ

    Скачать с интернета:

    wget https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9-latest-x86_64-boot.iso
    

    Или загрузить с локального компьютера (выполнить на вашем ПК)

    scp /path/to/file.iso root@<IP-сервера>:/opt/xensource/packages/iso/
    
  6. Пересканировать хранилище

    xe sr-scan uuid=<UUID_SR>
    
    Где <UUID_SR> - это UUID, полученный на шаге 3.

    После этого ISO-образ появится в списке доступных образов при создании виртуальной машины.

Создание VM через XO Lite

  • Нажать кнопку New VM в правом верхнем углу интерфейса.

  • В открывшемся окне заполнить параметры виртуальной машины:

    • Template: выбрать шаблон операционной системы (например, AlmaLinux 9);
    • Install settings: выбрать способ установки:
      • ISO/DVD: установка с ISO-образа (рекомендуется) - выбрать загруженный ISO из списка;
      • PXE: сетевая установка (требует настроенный PXE-сервер).
    • System: указать имя VM, описание, тип прошивки (BIOS/UEFI);
    • Memory: задать количество vCPU и объём RAM.
  • Настроить сетевые подключения и хранилище:

    • Network: выбрать сетевой интерфейс для подключения VM;
    • Storage: выбрать хранилище и указать размер диска;
    • Settings: включить автоматический запуск VM при загрузке (опционально).
  • Проверить итоговую конфигурацию в разделе Summary и нажать кнопку Create.

После создания виртуальная машина автоматически запустится и начнется загрузка с ISO-образа. В интерфейсе XO Lite откроется страница Dashboard созданной VM:

На странице Dashboard отображается:

  • Quick info: основная информация о VM (состояние, UUID, хост, ресурсы);
  • CPU usage: график использования процессора;
  • RAM usage: график использования оперативной памяти;
  • Network throughput: график сетевой активности;
  • VDI throughput: график дисковой активности;
  • Change state: меню управления состоянием VM (запуск, пауза, перезагрузка, выключение).

Для доступа к консоли виртуальной машины и начала установки операционной системы перейдите на вкладку CONSOLE.

Совет

Для сетевой установки (Boot ISO) убедитесь, что виртуальная машина имеет доступ в интернет через настроенную сеть, так как установочные пакеты будут загружаться из репозитория.

Выбор ISO-образа

При выборе ISO-образа учитывайте тип образа:

Для Linux (на примере AlmaLinux):

  • DVD/Full ISO (~4-10 GB) - полный образ, содержит все пакеты, не требует интернета
    • AlmaLinux-9-latest-x86_64-dvd.iso;
    • Ubuntu-22.04-server.iso.
  • Boot/Minimal ISO (~1 GB) - минимальный образ, требует активного интернет-соединения для загрузки пакетов
    • AlmaLinux-9-latest-x86_64-boot.iso;
    • Ubuntu-22.04-live-server.iso.

Рекомендация: Для надежной установки используйте полные ISO-образы (DVD/Full), особенно если у VM нестабильное или отсутствует интернет-соединение.

Рекомендации по выбору прошивки

  • UEFI - рекомендуется для современных ОС:
    • Linux: AlmaLinux 9+, Ubuntu 20.04+, Debian 11+;
    • Windows: Windows Server 2016+, Windows 10/11.
  • BIOS - для совместимости:
    • Старые версии ОС;
    • При проблемах с загрузкой UEFI;
    • Специфические сценарии (legacy applications).

Выбор Software Selection

При установке Linux-дистрибутивов доступны различные варианты окружения:

  • Minimal Install - базовая система без GUI (~400-600 пакетов, установка 5-10 минут)
    • Рекомендуется для серверов и production;
    • Минимальное потребление ресурсов.
  • Server with GUI - полная система с графическим интерфейсом (~1000-1500 пакетов, установка 15-30 минут)
    • Удобно для обучения и тестирования;
    • Требует больше ресурсов (RAM, CPU, диск).

Для production-серверов рекомендуется Minimal Install.

Установка XCP-ng Guest Tools

После установки операционной системы критически важно установить XCP-ng Guest Tools для корректной работы виртуальной машины.

Зачем нужны Guest Tools

Guest Tools обеспечивают:

  • Корректное выключение и перезагрузку VM (soft shutdown);
  • Отображение IP-адреса и состояния VM в интерфейсе XCP-ng;
  • Улучшенную производительность сети и дисков;
  • Синхронизацию времени между хостом и гостевой ОС;
  • Поддержку снапшотов с quiesce (консистентные снимки);

Важно

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

Последовательность установки Guest Tools

Шаг 1: Завершение установки ОС

После установки операционной системы, когда появится сообщение о завершении или предложение перезагрузки:

Важно

Не перезагружайте виртуальную машину сразу. Сначала необходимо заменить установочный ISO на guest-tools.iso.

Исключение: Если вы уже перезагрузили VM, ничего страшного - ISO можно подключить после первой загрузки установленной системы.

Шаг 2: Замена ISO на Guest Tools (на XCP-ng хосте)

Подключитесь к хосту XCP-ng по SSH и выполните команды.

Найдите UUID вашей VM:

xe vm-list name-label="VM_NAME"

Или получите список всех запущенных VM:

xe vm-list power-state=running

Пример вывода:

uuid ( RO)           : 0218d2ca-bfb7-fdfb-0c78-7a115a69ecdc
     name-label ( RW): AlmaLinux 9
    power-state ( RO): running

Извлеките установочный ISO (если подключен):

xe vm-cd-eject uuid=<UUID_VM>

Вставьте guest-tools ISO:

xe vm-cd-insert uuid=<UUID_VM> cd-name="guest-tools.iso"

Проверьте, что ISO заменен:

xe vbd-list vm-uuid=<UUID_VM> type=CD

Пример вывода:

uuid ( RO)             : 5f644369-7b28-a39d-6bc0-2221ec2b92d3
          vm-uuid ( RO): 0218d2ca-bfb7-fdfb-0c78-7a115a69ecdc
    vm-name-label ( RO): AlmaLinux 9
         vdi-uuid ( RO): dd994bfa-83a6-482a-a2c4-f952a5d8ab81
            empty ( RO): false
           device ( RO): xvdd
Обратите внимание на параметр device - это имя устройства в гостевой системе (в данном случае xvdd).

Шаг 3: Перезагрузка VM

  • Если еще не перезагружали после установки: В консоли VM нажмите "Reboot System" или выполните команду reboot;
  • Если уже в работающей системе: Перезагрузка не требуется, переходите к Шагу 4.

Шаг 4: Установка Guest Tools в гостевой ОС

Процедура установки зависит от операционной системы:

Для Linux (RHEL-based: AlmaLinux, Rocky, CentOS, RHEL)

Войдите в систему как root и выполните команды.

Создайте точку монтирования:

mkdir -p /mnt/cdrom

Смонтируйте guest-tools ISO:

mount /dev/sr0 /mnt/cdrom

Если /dev/sr0 не работает, попробуйте альтернативные варианты:

mount /dev/cdrom /mnt/cdrom

или

mount /dev/xvdd /mnt/cdrom

Проверьте содержимое:

ls -la /mnt/cdrom/Linux/

Перейдите в директорию:

cd /mnt/cdrom/Linux

Запустите установку:

bash install.sh

Пример вывода:

Detected 'AlmaLinux release 9.7 (Moss Jungle Cat)' (almalinux version 9).

The following changes will be made to this Virtual Machine:
 * update arp_notify sysctl
 * packages to be installed/upgraded:
   - xe-guest-utilities-7.30.0-12.x86_64.rpm

Continue? [y/n] y

Нажмите y и подождите завершения установки.

Примечание

Установка может зависнуть на 100% на 30-60 секунд - это нормально. Если зависло более 2 минут - нажмите Ctrl+C и проверьте результат.

Проверьте установку:

rpm -qa | grep xe-guest
Должно вывести что-то вроде:
xe-guest-utilities-7.30.0-12.legacy.x86_64

Проверьте наличие init.d скрипта:

ls /etc/init.d/ | grep xe

Должно показать:

xe-linux-distribution

Важно для AlmaLinux 9 / RHEL 9 / Rocky 9:

Проблема с systemd в современных дистрибутивах

Скрипт install.sh устанавливает только init.d скрипт, но не создает systemd unit файл. Это означает, что команды systemctl status xe-linux-distribution и chkconfig работать не будут.

Симптомы:

systemctl status xe-linux-distribution
Unit xe-linux-distribution.service could not be found.

chkconfig xe-linux-distribution on
bash: chkconfig: command not found...

Решение: Создание systemd unit файла вручную. Пример создания файла:

cat > /etc/systemd/system/xe-linux-distribution.service << 'EOF'
[Unit]
Description=XCP-ng Guest Utilities
After=network.target

[Service]
Type=oneshot
ExecStart=/etc/init.d/xe-linux-distribution start
ExecStop=/etc/init.d/xe-linux-distribution stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF
Активируйте и запустите службу:

systemctl daemon-reload
systemctl enable xe-linux-distribution
systemctl start xe-linux-distribution

Проверьте статус сервиса:

systemctl status xe-linux-distribution

Размонтируйте ISO:

cd ~
umount /mnt/cdrom

Перезагрузите систему для применения изменений:

reboot

Для Linux (Debian-based: Ubuntu, Debian)

Войдите в систему как root или используйте sudo.

Создайте точку монтирования:

sudo mkdir -p /mnt/cdrom

Смонтируйте guest-tools ISO:

sudo mount /dev/sr0 /mnt/cdrom

Перейдите в директорию:

cd /mnt/cdrom/Linux

Запустите установку:

sudo bash install.sh

Проверьте установку:

dpkg -l | grep xe-guest

Проверьте статус сервиса:

sudo systemctl status xe-linux-distribution

Размонтируйте ISO:

cd ~
sudo umount /mnt/cdrom

Перезагрузите систему:

sudo reboot

Альтернативный метод для Linux: установка через репозиторий

Если монтирование ISO не работает или вы хотите установить Guest Tools через пакетный менеджер.

Для RHEL-based (AlmaLinux, Rocky, CentOS) установите EPEL репозиторий:

sudo dnf install -y epel-release

Установите xe-guest-utilities:

sudo dnf install -y xe-guest-utilities

Включите сервис:

sudo systemctl enable xe-linux-distribution

Запустите сервис:

sudo systemctl start xe-linux-distribution

Проверьте статус:

sudo systemctl status xe-linux-distribution

Примечание

Установка через репозиторий требует активного интернет-соединения в VM.

Шаг 5: Проверка работы Guest Tools

После перезагрузки и установки Guest Tools проверьте их работу.

В гостевой ОС (Linux) проверьте статус сервиса:

systemctl status xe-linux-distribution

Или через init.d:

/etc/init.d/xe-linux-distribution status

Пример корректного вывода:

os_distro="almalinux"
os_majorver="9"
os_minorver="7"
os_uname="5.14.0-611.5.1.el9_7.x86_64"
os_name="AlmaLinux release 9.7 (Moss Jungle Cat)"

На XCP-ng хосте проверьте отображение сетевой информации:

xe vm-param-get uuid=<UUID_VM> param-name=networks

Проверьте статус PV drivers:

xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-version

Получите общую информацию о VM:

xe vm-param-list uuid=<UUID_VM> | grep -E "PV-drivers|networks"
В интерфейсе XO Lite

После запуска службы xe-linux-distribution в Dashboard VM должно отображаться (обновляется через 10-30 секунд):

  • IP address: IP адрес VM;
  • Guest tools: версия установленных Guest Tools (например, 7.30.0-12);
  • OS name: определенная операционная система (например, AlmaLinux release 9.7):

Управление виртуальными машинами

Во вкладке VMS отображается список всех виртуальных машин с возможностью управления:

Доступные действия:

  • Change state: запуск, остановка, перезагрузка VM;
  • Migrate: миграция VM на другой хост;
  • Copy: создание копии виртуальной машины;
  • Edit config: редактирование конфигурации VM;
  • Snapshot: создание снимка состояния;
  • Export: экспорт VM в файл;
  • Delete: удаление виртуальной машины.

Работа с хранилищами, ISO и сетями

Управление Storage Repositories (SR)

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

Список всех SR

xe sr-list
Детальная информация о конкретном SR

xe sr-param-list uuid=<UUID_SR>
Просмотр использования дискового пространства

xe sr-list params=name-label,physical-size,physical-utilisation,uuid

Работа с ISO Storage:

Найти ISO SR

xe sr-list content-type=iso
Узнать путь к ISO SR

xe pbd-list sr-uuid=<UUID_SR>
Перейти в директорию ISO (обычно /opt/xensource/packages/iso)

cd /opt/xensource/packages/iso
Просмотреть доступные ISO

ls -lh
Загрузить ISO из интернета

wget https://example.com/os.iso
Загрузить ISO с локального компьютера

scp /path/to/file.iso root@<IP-сервера>:/opt/xensource/packages/iso/

Внимание

Необходимо пересканировать SR после добавления ISO

xe sr-scan uuid=<UUID_SR>
Проверить, что ISO появился

xe vdi-list sr-uuid=<UUID_SR>

Управление локальным хранилищем

Просмотр виртуальных дисков (VDI):

xe vdi-list sr-uuid=

Проверить свободное место:

df -h

Просмотр списка снапшотов:

xe snapshot-list | grep snapshot

Удалить снапшот:

xe snapshot-uninstall snapshot-uuid=

Управление сетями

Просмотр всех сетей:

xe network-list

Детальная информация о сети:

xe network-param-list uuid=

Просмотр физических интерфейсов (PIF):

xe pif-list

Детали конкретного PIF:

xe pif-param-list uuid=

Проверить IP-адрес хоста:

ip addr show

Создать внутреннюю сеть:

xe network-create name-label="Internal Network" name-description="Private VM network"

Создать VLAN сеть:

xe network-create name-label="VLAN100" name-description="VLAN 100" vlan=100 pif-uuid=

Просмотр сетевых интерфейсов VM:

xe vif-list vm-uuid=

Создать новый сетевой интерфейс для VM:

xe vif-create vm-uuid= network-uuid= device=0

Основные команды CLI

Управление виртуальными машинами

Список всех VM:

xe vm-list

Только запущенные VM:

xe vm-list power-state=running

Детальная информация о VM:

xe vm-param-list uuid=<UUID_VM>

Запустить VM:

xe vm-start uuid=<UUID_VM>

Выключить VM:

xe vm-shutdown uuid=<UUID_VM>

Перезагрузить VM:

xe vm-reboot uuid=<UUID_VM>

Приостановить VM:

xe vm-suspend uuid=<UUID_VM>

Принудительное выключение VM:

xe vm-shutdown uuid=<UUID_VM> force=true

Создать снапшот:

xe vm-snapshot uuid=<UUID_VM> new-name-label="backup-$(date +%Y%m%d)"

Список снапшотов:

xe snapshot-list

Восстановить из снапшота:

xe snapshot-revert snapshot-uuid=<UUID_snapshot>

Удалить снапшот:

xe snapshot-uninstall snapshot-uuid=<UUID_snapshot>

Экспорт VM:

xe vm-export uuid=<UUID_VM> filename=/path/to/backup.xva

Импорт VM:

xe vm-import filename=/path/to/backup.xva

Мониторинг и диагностика

Информация о хосте:

xe host-list params=all

Мониторинг процессов:

top

Расширенный мониторинг процессов:

htop

Проверка использования памяти:

free -h

Свободная память хоста:

xe host-param-get uuid=<UUID_host> param-name=memory-free

Использование CPU виртуальными машинами:

xe vm-list params=name-label,power-state,VCPUs-utilisation

Просмотр основного лога XCP-ng:

tail -f /var/log/xensource.log

Системные логи:

journalctl -xe

Просмотр системных сообщений:

tail -f /var/log/messages

Логи Xen:

xl dmesg

Создать bug report (содержит всю диагностическую информацию):

xen-bugtool -y

Расположение отчета

Результат сохранится в /var/opt/xen/bug-report/

Управление ISO-образами и CD-приводами

Список доступных ISO-образов:

xe cd-list

Подробная информация об ISO в SR:

xe vdi-list sr-uuid= content-type=iso

Подключить ISO к VM:

xe vm-cd-insert uuid= cd-name=".iso"

Извлечь ISO из VM:

xe vm-cd-eject uuid=

Проверить подключенные CD/ISO к VM:

xe vbd-list vm-uuid= type=CD

Перейти в директорию ISO на хосте:

cd /opt/xensource/packages/iso

Загрузить ISO с интернета:

wget https://example.com/os.iso

Пересканировать SR после загрузки ISO:

xe sr-scan uuid=

Проверка состояния Guest Tools

Проверить версию PV drivers:

xe vm-param-get uuid= param-name=PV-drivers-version

Проверить актуальность PV drivers:

xe vm-param-get uuid= param-name=PV-drivers-up-to-date

Получить информацию о гостевой ОС:

xe vm-param-get uuid= param-name=os-version

Проверить обнаружение PV drivers:

xe vm-param-get uuid= param-name=PV-drivers-detected

Получить сетевую информацию VM:

xe vm-param-get uuid= param-name=networks

Типичные проблемы и решения

Проблема: VM загружается в Emergency/Recovery Mode

Симптомы:

Появляется сообщение "You are in emergency mode" или "Welcome to emergency mode";

Типичные причины:

  • Ошибки в конфигурации загрузки (fstab для Linux);
  • Повреждение файловой системы;
  • Проблемы с виртуализацией;
  • Неправильное выключение VM.

Решение для Linux:

Войдите в систему с паролем root (или нажмите Ctrl+D для продолжения).

Проверьте системные логи:

journalctl -xb | grep -i error

Проверьте сообщения ядра:

dmesg | grep -i error

Проверьте файловую систему:

cat /etc/fstab

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

df -h

Проверьте блочные устройства:

lsblk

Если проблема в fstab (например, отсутствует swap или диск), отредактируйте файл:

nano /etc/fstab

Закомментируйте проблемную строку, добавив # в начале. Пример:

# /dev/mapper/almalinux-swap none swap defaults 0 0

Если нужно проверить файловую систему, сначала размонтируйте раздел:

umount /dev/xvda2

Проверьте и исправьте файловую систему:

fsck -y /dev/xvda2

Перезагрузите систему:

systemctl reboot

Проблема: GRUB не загружается или зависает

Симптомы:

  • VM зависает на экране TianoCore (UEFI);
  • Появляется "Welcome to GRUB" и ничего не происходит;
  • Черный экран с курсором после BIOS/UEFI.

Типичные причины:

  • Неправильный boot order (порядок загрузки);
  • ISO все еще подключен как первое загрузочное устройство;
  • Повреждение загрузчика GRUB;
  • Несовместимость UEFI/BIOS.

Решение 1: Проверить и изменить boot order

На XCP-ng хосте проверьте текущий boot order:

xe vm-param-get uuid=<UUID_VM> param-name=HVM-boot-params

Возможные значения order: - cdn - HDD ©, CD (d), Network (n) - dcn - CD (d), HDD ©, Network (n) - c - только HDD

Для установки ОС установите CD первым:

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:order=dcn

После установки ОС установите загрузку только с HDD:

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:order=c

Извлеките установочный ISO если он еще подключен:

xe vm-cd-eject uuid=<UUID_VM>

Перезагрузите VM:

xe vm-reboot uuid=<UUID_VM> --force

Решение 2: Загрузка через GRUB rescue (для Linux)

Если попали в GRUB command line (появился prompt grub>), выполните следующие команды.

Найдите доступные разделы:

ls
Вывод будет примерно таким: (hd0) (hd0,msdos2) (hd0,msdos1)

Найдите раздел с /boot (обычно msdos1 или gpt1):

ls (hd0,msdos1)/

Проверьте содержимое boot:

ls (hd0,msdos1)/boot/

Вы должны увидеть файлы vmlinuz, initramfs и папку grub2.

Для BIOS систем выполните:

set root=(hd0,msdos1)
set prefix=(hd0,msdos1)/grub2
insmod normal
normal

Для UEFI систем выполните:

set root=(hd0,gpt1)
set prefix=(hd0,gpt1)/boot/grub2
insmod normal
normal

После загрузки системы восстановите GRUB.

Для RHEL-based (AlmaLinux, Rocky, CentOS):

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Для UEFI систем:

sudo grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

Для Debian-based (Ubuntu, Debian):

sudo update-grub

Переустановите GRUB если нужно (для BIOS):

sudo grub2-install /dev/xvda

Решение 3: Переключение между UEFI и BIOS

Если проблемы продолжаются, на XCP-ng хосте проверьте текущий режим:

xe vm-param-get uuid=<UUID_VM> param-name=HVM-boot-params

Переключить на BIOS (может потребоваться переустановка ОС):

xe vm-param-remove uuid=<UUID_VM> param-name=HVM-boot-params param-key=firmware

Или явно установить BIOS:

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:firmware=bios

Проблема: Сеть не работает после установки

Симптомы:

  • VM не получает IP-адрес;
  • Сетевой интерфейс показывает "disconnected" или "no carrier";
  • Ping не работает;
  • IP-адрес не отображается в XCP-ng интерфейсе;

Типичные причины:

  • Guest Tools не установлены (основная причина);
  • Неправильная конфигурация сети в VM;
  • Проблемы с виртуальным сетевым адаптером;
  • Firewall блокирует соединение.

Решение:

  1. Установите Guest Tools (см. раздел выше) - это решит 90% проблем с сетью

  2. Проверьте статус сетевого интерфейса в гостевой ОС

    Для Linux проверьте состояние интерфейсов:

    ip link show
    

    Проверьте IP-адреса:

    ip addr show
    

    Для систем с NetworkManager:

    nmcli device status
    

    Проверьте подключения:

    nmcli connection show
    

    Для систем с systemd-networkd:

    networkctl status
    

    Проверьте маршрутизацию:

    ip route show
    

  3. Включите и настройте интерфейс

    Для RHEL-based с NetworkManager включите интерфейс:

    sudo nmcli device set eth0 managed yes
    

    Поднимите подключение:

    sudo nmcli connection up eth0
    

    Или перезапустите NetworkManager:

    sudo systemctl restart NetworkManager
    

    Для Debian-based проверьте конфигурацию (Ubuntu 18.04+):

    cat /etc/netplan/00-installer-config.yaml
    

    Для Debian/старых Ubuntu:

    cat /etc/network/interfaces
    

    Включите интерфейс:

    sudo ip link set eth0 up
    

    Запросите IP через DHCP:

    sudo dhclient eth0
    

  4. Проверьте настройки в XCP-ng

    На XCP-ng хосте проверьте виртуальные сетевые интерфейсы VM:

    xe vif-list vm-uuid=<UUID_VM>
    

    Проверьте доступные сети:

    xe network-list
    

    Если VIF отсутствует или некорректен, узнайте UUID сети:

    xe network-list name-label="Pool-wide network associated with eth0"
    

    Создайте новый VIF:

    xe vif-create vm-uuid=<UUID_VM> network-uuid=<UUID_NETWORK> device=0
    

  5. Проверьте firewall

    Для Linux (firewalld) проверьте статус:

    sudo systemctl status firewalld
    

    Временно отключите для теста:

    sudo systemctl stop firewalld
    

    Для Linux (iptables) проверьте правила:

    sudo iptables -L -n
    

    Временно очистите правила для теста:

    sudo iptables -F
    

Проблема: Очень медленная установка ОС

Симптомы:

  • Установка занимает несколько часов вместо 15-30 минут;
  • Копирование пакетов идет очень медленно;
  • VM зависает на этапе "Installing packages" или "Configuring".

Типичные причины:

  • Медленная дисковая подсистема хоста (HDD вместо SSD);
  • Перегруженный Storage Repository;
  • Недостаточные ресурсы VM (CPU, RAM);
  • Проблемы с производительностью хоста.

Решения:

  1. Используйте Minimal Install для Linux:

    • Minimal содержит ~400-600 пакетов вместо 1000-1500 (Server with GUI);
    • Установка занимает 5-10 минут вместо часов;
    • Для production-серверов GUI обычно не нужен;
    • После установки можно доустановить нужные пакеты.
  2. Увеличьте ресурсы VM временно

    На XCP-ng хосте (до начала установки или во время) увеличьте RAM:

    xe vm-param-set uuid=<UUID_VM> memory-static-max=8GiB memory-dynamic-max=8GiB
    

    Увеличьте vCPU:

    xe vm-param-set uuid=<UUID_VM> VCPUs-max=4 VCPUs-at-startup=4
    

  3. Проверьте производительность диска

    На XCP-ng хосте проверьте I/O:

    iostat -x 1
    

    Проверьте загрузку дисков:

    iotop
    

    Проверьте статус SR:

    xe sr-list
    

    Получите детали SR:

    xe sr-param-list uuid=<UUID_SR>
    

  4. Используйте более быстрое хранилище:

    • Если доступно несколько SR, используйте SSD-based storage;
    • Рассмотрите возможность миграции на другой SR.

Проблема: Не удается подключить ISO

Симптомы:

  • Ошибка "The VM has no empty CD drive (VBD)";
  • Ошибка "No matching VMs found";
  • ISO не отображается в списке доступных.

Решение 1: VM has no empty CD drive

Проверьте существующие VBD (Virtual Block Devices):

xe vbd-list vm-uuid=<UUID_VM>

Если CD-привод занят другим ISO, извлеките его:

xe vm-cd-eject uuid=<UUID_VM>

Теперь вставьте нужный ISO:

xe vm-cd-insert uuid=<UUID_VM> cd-name="guest-tools.iso"

Если CD-привод вообще отсутствует, сначала найдите UUID нужного ISO:

xe cd-list name-label="guest-tools.iso"

Создайте VBD вручную:

xe vbd-create vm-uuid=<UUID_VM> vdi-uuid=<UUID_ISO> device=3 bootable=false mode=RO type=CD

Решение 2: No matching VMs found

Проблема: используется UUID Control Domain вместо VM.

Проверьте список VM правильно (исключая Control Domain):

xe vm-list is-control-domain=false

Убедитесь что используете правильный UUID, проверив:

xe vm-param-list uuid=<UUID_VM> | grep "is-control-domain"

Должно быть: is-control-domain ( RO): false

Решение 3: ISO не отображается в списке

Проверьте что ISO загружен:

xe cd-list

Если ISO нет в списке, найдите SR для ISO:

xe sr-list content-type=iso

Перейдите в директорию ISO:

cd /opt/xensource/packages/iso

Проверьте наличие файла:

ls -lh

Если файла нет, загрузите его с интернета:

wget https://example.com/your-iso.iso

Или с локального компьютера (выполните на вашем ПК):

scp /local/path/file.iso root@<IP-host>:/opt/xensource/packages/iso/

Пересканируйте SR:

xe sr-scan uuid=<UUID_SR>

Проверьте снова:

xe cd-list

Проблема: VM не выключается корректно

Симптомы:

  • xe vm-shutdown не работает или зависает
  • VM можно выключить только через --force
  • В логах ошибки о timeout

Причины:

  • Guest Tools не установлены или не работают
  • ОС не отвечает на ACPI события
  • Зависшие процессы в гостевой ОС

Решение:

  1. Установите/проверьте Guest Tools (основная причина)

  2. Проверьте статус Guest Tools

    На XCP-ng хосте проверьте версию PV drivers:

    xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-version
    

    Проверьте актуальность драйверов:

    xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-up-to-date
    

  3. Используйте корректные команды выключения

    Мягкое выключение (требует Guest Tools):

    xe vm-shutdown uuid=<UUID_VM>
    

    Принудительное выключение (аналог нажатия кнопки питания):

    xe vm-shutdown uuid=<UUID_VM> --force
    

Жесткое выключение (аналог выдергивания шнура, используйте только в крайнем случае):

xe vm-destroy uuid=<UUID_VM>

Общие советы по диагностике

При возникновении проблем всегда проверяйте логи.

В гостевой ОС (Linux) проверьте последние события:

journalctl -xe

Проверьте сообщения ядра:

dmesg | tail -50

Просмотрите системный лог (RHEL-based):

tail -f /var/log/messages

Просмотрите системный лог (Debian-based):

tail -f /var/log/syslog

На XCP-ng хосте просмотрите основной лог:

tail -f /var/log/xensource.log

Проверьте сообщения гипервизора Xen:

xl dmesg

Проверьте системные события:

journalctl -xe

Создание диагностического отчета на XCP-ng хосте:

xen-bugtool -y

Результат сохранится в /var/opt/xen/bug-report/

Примечание

Подробная информация по настройке и администрированию XCP-ng содержится в официальной документации.

Примечание

XCP-ng Forum - форум сообщества для получения помощи.

Заказ сервера с XCP-ng с помощью API

Для установки XCP-ng с использованием API следуйте этой инструкции.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×