oVirt часть 2. Компоненты платформы

oVirt. все статьи цикла

На мой взгляд архитектура (См. рис. 1) oVirt довольно проста, но при этом гибка и масштабируема. По сути, базовые компоненты это хорошо известные, самодостаточные Open Source решения, объединенные в одной платформе.

Основные составляющие:

  • oVirt Engine — сервер мониторинга и управления вычислительными узлами, хранилищами, сетями и виртуальными машинами. Обеспечивает полный жизненный цикл ВМ. Реализован в виде веб-сервиса на Java (JBoss) с расчетом на максимальную масштабируемость и безопасность. Заявлено, что один экземпляр Engine способен управлять пятью сотнями гипервизоров и десятью тысячами ВМ! Правда, найти инфраструктуру такого масштаба для подтверждения данного заявления навряд ли возможно. Это основной инструмент и точка входа для администратора и пользователя:

  • oVirt Nodes — вычислительные узлы на которых выполняются ВМ, а так же могут быть размещены локальные хранилища. Каждый узел это в первую очередь Linux-сервер с поддержкой аппаратной виртуализации на базе Fedora\CentOS. Возможно использование и Debian\Ubuntu но тут придется повозиться так как официальные репозитории есть только для RHEL-подобных ОС. Кроме ОС это:

    • QEMU-KVM (в дальнейшем просто KVM) — собственно гипервизор:

    • Libvirt  — библиотека управления гипервизором. Так же Libvirt поддерживает Xen, VirtualBox, OpenVZ, LXC, VMware ESXi и позволяет управлять ими используя один и тот же набор команд. Но в рамках oVirt допустимо использовать только KVM:

    • VDSM (Virtual Desktop and Server Manager) – это агент, написанный на Python по средствам которого oVirt Engine взаимодействует с вычислительными узлами. VDSM умеет управлять всеми необходимыми подсистемами узла, в том числе и KVM с помощью Libvirt.

  • БД — необходима для хранения метаданных и информации об инфраструктуре. В качестве БД используется PostgreSQL:

  • Общее сетевое хранилище — необходимо для использования возможностей “живой” миграции и защиты ВМ с помощью HA:

  • LDAP-каталог — необходим для хранения информации об учетных записях и авторизации пользователей. Не обязательный компонент, так как есть возможность создавать внутренние учетные записи:

  • Клиенты — если точнее, то средства взаимодействия с oVirt Engine. Это может быть веб-консоль для администраторов и пользователей, интерфейс командной строки или Python SDK:

  • Guest tools (компоненты внутри ВМ) — если более точно это:

    • oVirt Guest Agentагент внутри ВМ предоставляющий серверу управления информацию о ВМ. Ее IP, версию ОС и прочее. Так же модуль необходим для корректной обработки сигналов выключения и перезагрузки:

    • VirtIO Drivers — драйвера виртуального оборудования (virtio-net, virtio-block, virtio-serial, spice-qxl, virtio-balloon) для максимальной производительности и оптимального использования ресурсов узла. Дополнительно они необходимы для работы протокола SPICE.

ovirt_install_and_configure
Рис. 1. Архитектура oVirt