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

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.

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

Для доступа к консоли хоста также можно использовать VNC-консоль в панели управления 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
ИИ Помощник ×