oVirt — открытая платформа виртуализации для организаций, которая закрывает тот же класс задач, что VMware vSphere и Proxmox VE: централизованное управление кластером, живая миграция, шаблоны, снимки, политики размещения и REST API. В основе — движок oVirt Engine, агент VDSM на хостах и штатные компоненты Linux: KVM, libvirt и QEMU. Ниже — архитектура, установка, хосты и хранилище, резервное копирование и диагностика.
Из чего состоит платформа
oVirt Engine — Java-приложение, которое работает под управлением WildFly и хранит состояние в PostgreSQL. Движок показывает веб-интерфейс, принимает запросы REST API и выбирает хост для машины. На каждом гипервизоре работает агент VDSM: он управляет libvirt, сетями и хранилищем и сообщает движку статистику. Машины исполняются в KVM, поэтому гостям доступны драйверы virtio и баллон памяти.
Ресурсы описываются через дата-центр, кластер и домены хранения. Дата-центр объединяет кластеры с общим хранилищем, кластер задаёт политику планирования и уровень CPU, а домен хранит образы дисков, ISO и шаблоны. Движок можно держать отдельно или запустить виртуальной машиной в самом кластере — режим hosted engine.
- Веб-админка и REST API с версионированием.
- Живая миграция и автоматическая балансировка по политике.
- Шаблоны, пулы машин, снимки и клонирование.
- Квоты, роли и разграничение прав по объектам.
- Поддержка NFS, iSCSI, Fibre Channel и локального хранилища.
Ветка 4.5 актуальна: сообщество выпускает обновления, а коммерческий Red Hat Virtualization поддержку уже завершил. Для новой инфраструктуры сравните oVirt с Proxmox VE, Incus и OpenStack и выбирайте там, где есть экспертиза.
Установка движка
Движок ставится на EL9-совместимый дистрибутив: Rocky Linux 9 или AlmaLinux 9. Нужны FQDN, синхронизация времени и не менее 4 ГБ памяти, а для продуктивной среды — 16 ГБ и отдельный диск под базу. Репозиторий подключается пакетом ovirt-release45, после чего engine-setup создаёт базу, сертификаты и службы.
sudo dnf install -y https://resources.ovirt.org/pub/yum-repo/ovirt-release45.rpm
sudo dnf module enable -y postgresql:13
sudo dnf install -y ovirt-engine
sudo engine-setup
Ответы сохраняют в файл: engine-setup --gen-answer-file=answers.txt, затем engine-setup --config-append=answers.txt. Запуск с --offline нужен, когда репозиторий недоступен. После установки проверьте службу и API:
sudo systemctl status ovirt-engine
curl -k -u 'admin@internal' -H 'Accept: application/json' \
https://engine.example.org/ovirt-engine/api/vms
Пароль curl спросит интерактивно — не храните его в истории. Для автоматизации заведите пользователя с ролью только на нужные объекты.
Хосты и hosted engine
Хост добавляется через интерфейс: укажите FQDN, root-пароль или SSH-ключ и профиль сети. На нём нужен ovirt-host, а порты 54321 и 16514 должны быть доступны с движка. Если движок разворачивается в кластере, используют hosted-engine: установщик создаёт хранилище, поднимает первую машину и настраивает агента высокой доступности.
sudo dnf install -y ovirt-hosted-engine-setup
sudo hosted-engine --deploy
sudo hosted-engine --vm-status
vm-status показывает, где работает движок и кто резервный. Перед обслуживанием хоста с движком переведите кластер в режим обслуживания, иначе агент перезапустит машину в другом месте:
sudo hosted-engine --set-maintenance --mode=global
sudo hosted-engine --set-maintenance --mode=none
Состояние VDSM проверяют напрямую: vdsm-client говорит на внутреннем JSON-RPC и не зависит от веб-интерфейса:
systemctl status vdsmd
vdsm-client Host getStats
virsh list --all
Хранилище
Продуктивному кластеру нужен общий домен данных. NFS проще всего: экспорт с no_root_squash и версией 4.1, отдельная сеть и совпадающий MTU. iSCSI требует multipath и одинаковых LUN. Локальный домен не даёт миграцию.
showmount -e 192.0.2.10
sudo iscsiadm -m discovery -t st -p 192.0.2.20
sudo iscsiadm -m node -l
sudo multipath -ll
Следите за заполнением: при 100% oVirt блокирует операции, а тонкие тома могут повредиться. Держите запас не меньше 15% и настройте оповещения. Снимки — не резервная копия: они живут в том же домене и растут с изменениями гостя.
Сеть и миграция
Логическая сеть привязывается к кластеру, VLAN задаётся в свойствах. Для миграции выделяют сеть без выхода в интернет: копирование памяти чувствительно к потерям. Проверить интерфейсы и мосты можно через API:
ip -br link
bridge link show
sudo ethtool eth0 | grep -E 'Speed|Duplex'
Живая миграция требует общего хранилища, совместимого CPU и свободной памяти на приёмнике. Если кластер собран из разных поколений процессоров, выберите более старый уровень CPU — иначе миграция упадёт с ошибкой несовместимости. Для плановых работ используйте evacuate: машины переедут по правилам.
Резервное копирование
engine-backup сохраняет базу, конфигурацию и сертификаты. Диски машин он не копирует — для них нужны снимки хранилища или агент в госте. Храните копию движка отдельно от кластера: при потере дата-центра она должна остаться доступной.
sudo engine-backup --mode=backup --scope=all \
--file=/var/backups/engine-$(date +%F).bak \
--log=/var/backups/engine-backup.log
sudo engine-backup --mode=verify --file=/var/backups/engine-2026-01-01.bak
Восстановление делают на чистом хосте с тем же FQDN: engine-backup --mode=restore --file=... --log=... --provision-db --restore-permissions, затем engine-setup. Раз в квартал проводите учебное восстановление — иначе копия остаётся набором файлов.
Диагностика
При проблемах смотрят журнал движка и состояние хостов. ovirt-log-collector собирает логи компонентов в архив, удобный для передачи коллеге. Не запускайте его на перегруженном хосте: сбор занимает минуты и читает большие файлы.
sudo journalctl -u ovirt-engine --since '1 hour ago' --no-pager
sudo ovirt-log-collector collect
sudo engine-config -l | grep -i timeout
vdsm-client Host getStats | head -40
Типичные причины: рассинхронизация времени, недоступный DNS, заполненный домен и разные версии VDSM. После обновления движка обновите хосты — разница в минорных версиях допустима временно.
Итог
oVirt даёт организации стек виртуализации на открытом коде: движок с API, KVM-хосты, общее хранилище, шаблоны и живую миграцию. Минимальная схема — engine на отдельной машине, два хоста и NFS-домен; отказоустойчивый — hosted engine на трёх узлах. Перед внедрением проверьте оборудование, настройте резервное копирование и мониторинг хранилища. Если проект только начинается, сравните oVirt с альтернативами: платформа сильна в зрелых процессах, но требует администрирования.