Xen Orchestra: управление и бэкапы XCP-ng
Поставили XCP-ng, разобрались с xe-командами из консоли — и упёрлись в очевидный вопрос: как это всё показывать коллегам, как смотреть на пул из десяти хостов одним взглядом и, главное, как делать бэкапы виртуалок, если сам XCP-ng из коробки резервного копирования не предоставляет. Ответ один — Xen Orchestra (XO). Это не опциональная приятность, а фактически обязательный компонент, без которого XCP-ng в продакшне превращается в набор разрозненных серверов, управляемых через SSH и обрывки памяти о том, где что настроено.
Содержание
Что решает Xen Orchestra в связке с XCP-ng
XCP-ng сам по себе — это гипервизор: Xen-ядро плюс дистрибутив на основе CentOS с утилитой xe. Всё управление из коробки — командная строка на каждом хосте по отдельности. Если у вас один сервер — терпимо. Если пул из нескольких хостов с общим хранилищем — уже больно: нужно помнить, на каком хосте какая VM, руками синхронизировать сетевые настройки, вручную мигрировать нагрузку при обслуживании железа.
Xen Orchestra закрывает это одной веб-консолью:
- единый обзор пула — все хосты, все VM, всё хранилище на одном экране, без прыжков по SSH-сессиям;
- создание и настройка VM через мастер — диск, память, vCPU, сеть, ISO-образ, без ручного составления XML или вызовов
xe vm-install; - живая миграция VM между хостами пула (drag-and-drop в интерфейсе) — обслуживание железа без простоя сервисов;
- управление сетями — виртуальные коммутаторы, VLAN, привязка к физическим интерфейсам, всё визуально;
- управление хранилищем — подключение SR (Storage Repository: локальный LVM, NFS, iSCSI, Ceph через сторонние драйверы), мониторинг занятого места;
- графики нагрузки — CPU, память, диск, сеть по каждой VM и хосту в реальном времени и в истории;
- ролевой доступ (RBAC) — можно завести читателя-наблюдателя для мониторинга отдельно от администратора с правом создавать и удалять VM.
Пример: у вас пул из трёх хостов XCP-ng, общее хранилище — NFS-шара. Через XO вы видите все 20 виртуалок пула на одной панели, тянете VM с хоста, который нужно перезагрузить для обновления прошивки, на соседний — без выключения гостевой ОС. Через голый xe то же самое — это последовательность команд xe vm-migrate с правильными UUID хоста и VM, которые ещё нужно достать отдельными запросами.
Установка: два принципиально разных пути
Здесь важно понимать развилку сразу, а не после того как вы час убили на попытки собрать XO вручную.
Community edition (xo-server + xo-web из исходников). Это открытый код проекта, который можно собрать и запустить самостоятельно — например, через xo-builder (готовый скрипт сборки от сообщества) или вручную из репозитория vatesfr/xen-orchestra на GitHub. Плюс — бесплатно, никаких лицензионных ограничений на число хостов. Минусы ощутимы:
- обновления community-версии происходят "на свой страх и риск" — нет единой кнопки апдейта с гарантией отката, часто приходится пересобирать заново;
- никакой официальной поддержки — если что-то ломается, вы идёте на форум или в issues на GitHub;
- часть enterprise-функций (например, некоторые виды бэкапов, расширенный RBAC, плагины) в community-сборке могут отсутствовать или требовать доп. телодвижений — зависит от того, какую версию исходников вы взяли.
XOA (Xen Orchestra Appliance) — платная поддерживаемая версия. Готовая виртуальная машина от Vates (компании, которая и разрабатывает XCP-ng и XO), разворачивается импортом OVA-образа за несколько минут. В комплекте — веб-панель обновлений внутри самого XOA, официальная поддержка, гарантированная совместимость версий XO с версией XCP-ng, доступ к полному набору enterprise-функций бэкапа (в зависимости от выбранного тарифного плана). Точные цены на планы называть не буду — они меняются, актуальные смотрите на официальном сайте vates.tech на момент покупки, но сама модель — подписка с несколькими уровнями (обычно завязанными на число сокетов/хостов в пуле).
Практический совет: если у вас тестовый стенд или домашняя лаборатория — берите community, это разумно. Если XCP-ng держит боевую нагрузку, за которую вы отвечаете, — считайте XOA частью бюджета инфраструктуры так же, как считаете стоимость самих серверов. Час простоя из-за не найденного бага в самосборной community-версии почти всегда обходится дороже подписки.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверУстановка XOA: минимальный путь
Официальный путь — импорт готового OVA в существующий пул XCP-ng:
# Скачиваем XOA appliance (ссылку и файл берём с личного кабинета Vates
# после регистрации — free trial доступен для оценки)
# Импортируем через xe прямо на хосте:
xe vm-import filename=/root/xoa.xva
# Либо через веб-интерфейс XCP-ng Center / другой уже развёрнутый XO:
# Pool > Import VM > указать путь к .xva
После импорта — запуск VM, ожидание пары минут инициализации, и заход по HTTPS на IP виртуалки:
https://<IP-адрес-XOA>
Логин по умолчанию — admin@admin.net, пароль admin (обязательно смените при первом входе). Дальше в веб-панели самого XOA — регистрация лицензии (для триала — тоже через личный кабинет), выбор канала обновлений (stable/latest), и XOA сам подтягивает обновления одной кнопкой из интерфейса.
Для community-сборки процесс другой — вы разворачиваете отдельную VM (обычно на Debian/Ubuntu), ставите Node.js нужной версии, клонируете репозиторий, собираете xo-server и xo-web. Это описано в документации проекта на GitHub, но будьте готовы к тому, что версии зависимостей со временем расходятся с тем, что было актуально на момент написания любой инструкции — включая эту.
Бэкапы VM: то, чего XCP-ng сам не даёт
Это ключевой момент. XCP-ng "из коробки" не предоставляет полноценного механизма резервного копирования виртуальных машин — только снапшоты на уровне хранилища, которые не заменяют бэкап (снапшот живёт на том же диске и погибает вместе с ним при отказе SR). Тот функционал, который в мире Proxmox закрывает Proxmox Backup Server, в мире Xen Orchestra закрывает встроенный в саму XO механизм бэкапов. Разница в архитектуре: у Proxmox бэкап — отдельный продукт (PBS), у Xen Orchestra бэкап — модуль внутри той же панели управления, но по решаемой задаче и подходу (инкрементальность, дедупликация, расписание) это концептуально похожие вещи — если вы уже настраивали Proxmox Backup Server, логика покажется знакомой.
Что доступно в XO (объём функций зависит от community/XOA и конкретного плана):
- Full backup — полный образ VM в файл (обычно в формате, который потом можно импортировать назад через
xe vm-import); - Delta backup (инкрементальный) — после первого полного снимка последующие копии переносят только изменённые блоки, экономя место и время на бэкап;
- Continuous Replication (CR) — постоянная репликация VM на другой хост/пул, почти горячий резерв;
- Disaster Recovery (DR) — репликация по расписанию с ретеншном, для сценария "весь основной ЦОД недоступен";
- Backup через S3-совместимое хранилище — можно направить бэкапы во внешний S3-бакет (в том числе самостоятельно поднятый MinIO), не только на локальный NFS/SMB.
Настройка бэкап-джобы в веб-интерфейсе XO — через раздел Backup:
- New backup job → выбор VM или тега (например, все VM с тегом
prodпопадают в одну задачу автоматически); - выбор режима — Full или Delta;
- целевое хранилище (remote) — NFS-шара, SMB, локальная директория на самом XOA, или S3;
- расписание — cron-подобный синтаксис, например
0 3 * * *для каждого дня в 3 ночи; - ретеншн — сколько последних копий хранить (например, 7 ежедневных + 4 еженедельных).
Пример типовой delta-задачи для тега prod с ежедневным запуском и хранением 7 копий на удалённом NFS-remote — всё настраивается кликами, без единой команды в консоли, что для команды из нескольких человек с разным уровнем linux-скилла критично важно.
Восстановление — обратная операция: Backup → History → выбор нужного снапшота по дате → Restore, с указанием, на какой хост и в какой SR разворачивать. Полезная деталь — restore можно направить не на исходную VM, а создать новую рядом, чтобы сверить данные перед тем как переключать продакшн-трафик.
Мониторинг и алерты
Помимо ресурсных графиков, XO умеет отправлять уведомления о состоянии бэкапов — это то, на что часто не обращают внимания до первого случая, когда бэкап-джоба молча падает три недели подряд, а узнаётся об этом только когда бэкап реально нужен. В настройках Backup можно подключить:
- email-отчёты по итогам каждой задачи (успех/ошибка);
- webhook в внешнюю систему мониторинга (Slack, Telegram-бот через промежуточный сервис, Zabbix через API);
- дашборд Health в самом XO, где красным подсвечиваются проваленные задачи.
Возьмите за правило: если бэкап-джоба не прислала подтверждение — это тревога того же уровня, что и падение продакшн-сервиса, а не "потом посмотрю".
Роли, доступ и мультитенантность
Для команды больше одного человека RBAC в XO — не роскошь. Модель прав строится на трёх уровнях: пользователь → роль (Viewer/Operator/Admin) → объект (пул, хост, конкретная VM или папка с VM). Можно, например, дать разработчику права Operator только на его собственную VM в тестовом пуле, не открывая доступ ко всей инфраструктуре. В XOA доступны более гибкие варианты группировки через self-service портал, где пользователи сами создают VM в рамках выделенной им квоты — удобно, если вы предоставляете виртуалки внутренним командам или клиентам.
Что важно понимать до того, как строить архитектуру
Несколько практических нюансов, которые экономят время:
- XO — не гипервизор и не замена XCP-ng, а панель управления и бэкапов поверх него; сама XO обычно разворачивается как отдельная VM внутри того же пула, который она администрирует (или отдельно, если нужна изоляция от управляемой инфраструктуры);
- потеря доступности самой VM с XO не роняет работающие виртуалки пула — они продолжают крутиться на хостах, просто временно недоступно управление и не идут бэкапы по расписанию, пока XO не поднимется обратно;
- имеет смысл делать бэкап самой конфигурации XO (metadata backup — есть отдельная опция в разделе Backup) отдельно от бэкапов пользовательских VM, чтобы не потерять все настроенные задачи при полном выходе из строя XOA;
- delta-бэкапы зависят от механизма changed block tracking на уровне Xen — для очень старых версий XCP-ng или нетипичных конфигураций хранилища стоит явно проверить, что дельта-режим реально работает, а не откатывается на полный бэкап каждый раз;
- при переезде между пулами или сменой железа полезно свериться с материалом про миграцию между гипервизорами — принципы экспорта/импорта VM во многом пересекаются с тем, что делает XO под капотом.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Обязательно ли ставить Xen Orchestra, если у меня всего один хост XCP-ng?
Формально нет — можно управлять через xe и XCP-ng Center. Но даже на одном хосте XO даёт единственный практичный способ настроить регулярные бэкапы VM без написания собственных скриптов вокруг снапшотов, так что для любой нагрузки, которую жалко потерять, — да, ставьте.
Можно ли перейти с community-версии на XOA без потери настроенных бэкап-задач?
Прямого автоматического переноса конфигурации между инсталляциями нет, задачи бэкапа придётся пересоздать в новой панели; сами уже сделанные файлы бэкапов остаются валидными и импортируются заново как remote.
Что будет, если хост, на котором крутится XOA, упадёт вместе со всей VM XO?
Работающие виртуалки пула это не затронет — они управляются гипервизором XCP-ng независимо. Пострадают только запланированные на это время бэкапы и доступ к веб-панели, пока вы не поднимете XOA заново (из своего же metadata backup, если он настроен).
XO поддерживает бэкап на S3 совместимые хранилища из любых провайдеров?
Да, remote-хранилище типа S3 работает с любым S3-совместимым API — публичные облака, MinIO у себя, любой сертифицированный провайдер; важно только заранее проверить скорость канала до этого хранилища под объём ваших дельта-бэкапов.
Нужна ли лицензия XOA для чтения бэкапов и восстановления, если истёк trial или подписка?
Практика показывает, что после истечения лицензии функции бэкапа в XOA блокируются или ограничиваются — самое разумное держать подписку активной непрерывно на весь период, пока бэкапы вам нужны, а не только в момент восстановления.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →