Umvirt Spiced VP: позиционирование и перспективы

Umvirt

Umvirt - это проект посвященный популяризации и участию в разработке открытых технологий виртуализации.

Название "Umvirt" можно расшифровать двумя способами:

  1. User Mode VIRTualization - виртуализация режима пользователя по аналогии с UML (User Mode Linux)
  2. Ubuntu & Mint VIRTualization - виртуализация для Umuntu и Linux Mint

Spiced VP

Набор пакетов "Spiced VP" - это название набора программ, позволяющих управлять процессом виртуализации в операционных системах семейства Ubuntu с поддержкой протокола Spice. Чтобы было понятней, в качестве примера набора пакетов, можно привести самый известный набор пакетов под названием "LAMP", предназначенный для размещения сайтов: "Linux-Apache-Mysql-Php", "Linux-Apache-Mysql-Perl" и так далее.

Как и "LAMP", "Spiced VP" можно развернуть на любом дистрибутиве GNU/Linux где есть пакеты аналогичные тем которые есть в наборе. Для большей надежности в производстве рекомендуем использовать только Red Hat Enterprise Linux (RHEL) в качестве дестрибутива, в остальных случаях выбор дистрибутива остается за администратором.

Как и "LAMP", "Spiced VP" это не конечный, а абстрактный набор пакетов т.е. в зависимости от желания администратор может добавить в набор или исключить из него любые пакеты. Так например, можно установить XSpice-сервер для обеспечения удаленного доступа к узлу виртуализации по протоколу Spice, а можно и не устанавливать и обходится SSH, VNC и(или) libvirt демонами для обеспечения удаленного доступа.

Основные пакеты:

  • гипервизор "qemu" (он же "kvm") или "xen" обязательно с поддержкой Spice
  • библиотека абстракции API гипервизоров "libvirt"

Дополнительные пакеты:

  • менеджер управления процессом виртуализации virt-manager
  • драйвера libvirt для использования в программах написанных на определенных языках программирования например "libvirt-php".
  • "xspice-server" для обеспечения удаленного доступа к узлу виртуализации по протоколу Spice
  • и т.д.

Umvirt Spiced VP

"Umvirt Spiced VP" - это набор пакетов "Spiced VP" созданный в рамках проекта UmVirt

Так получилось что в дистрибуивах "Fedora" и "RHEL" имеется полный набор готовых пакетов из набора "Spiced VP" для виртуализации на базе QEMU/KVM, а в дистрибутивах семейства "Ubuntu" данный набор появился только недавно, до этого приходилось собирать пакеты вручную либо загружать из множества репозиториев.

Для того чтобы собрать пакеты для виртуализации на базе KVM под Ubuntu в одном месте и был создан проект "Umvirt Spiced VP".

Так получилось, что сейчас, пакеты входящие в набор "Spiced VP", можно загрузить из официального репозитория Ubuntu, а следовательно можно было бы подумать, что собирать пакеты из данного набора больше не целесообразно, однако, благодаря возможности сборки собственного набора пакетов возможно не только вносить свои изменения, но также вносить изменения из других источников, а также тестировать и использовать новые версии пакетов которые отсутствуют в официальном репозитории.

"Umvirt Spiced VP" конкурент "Ovirt"?

С ходу у любого человека конечно может возникнуть вопрос: "Зачем еще одна платформа виртуализации Spiced VP если есть Ovirt да еще к томуже не Fedora?". Ответы очень просты:

1. Различная цель: "Ovirt" предназначен для управления инфраструктурой физических датацентров, а umvirt предназначен для управления виртуальным датацентром развертываемого внутри узла виртуализации.

2. Монетизация:

  • Ovirt - это полигон для обкатки технологий, которые будут использоваться в RHEV, как fedora полигон для обкатки RHEL.
  • Umvirt Spiced VP - это тестовая сборка основанная на бесплатном стабильном дистрибутиве ubuntu и может свободно использоватья по принципу "AS IS" без предоставления каких либо гарантий. Если администратору нужны гарантии он может установить аналогичные пакеты из набора "Spiced VP" на основе "RHEL".

3. Доказательство открытости (Proof of Concept) - запуск технологий предназначенных для Fedora на другом дистрибутиве - доказательство того что эти технологии действительно открыты и что использование RHEV или RHEL в продакшене действительно целесообразно.

4. Простота:

  • "Ovirt" использует связку "qemu-libvirt-vdsm-jboss" для управления виртуализации
  • "Umvirt Spiced VP" использует более короткую связку "qemu-libvirt"

5. Функционал. Возможности управления виртуализацией с помощью SpicedVP не ограничены возможностями Ovirt Engine, администратору предоставляется весь функционал libvirt и командной строки, благодаря чему он может реализовать практически любую структуру сети.

Успехи Umvirt Spiced VP и планы на будущее

Совсем недавно произошло слияние репозиториев QEMU и KVM результатом которого стал выход версии 1.3. В ходе проведенных экспериментов выяснилось что версия 1.3 оказалась быстрее, но менее надежна чем версия 1.0, особенно яркими багами можно выделить:

  • Перебои в работе виртуальной сети между виртуальными машинами без участия узла виртуализации.
  • Проблемы с сетевым пробросом USB-устройств.

Версия 1.0 не имеет этих досадных багов и может считаться наиболее стабильной. В доказательство этого в ходе экспериментов на тестовом узле виртуализации удалось:

  1. создать небольшую виртуальную публичную сеть с несколькими виртуальными серверами и подсетями,
  2. осуществить подключение виртуальной сети к интернет-шлюзу в обход локальной инфраструктурной сети благодаря macvtap,
  3. осуществить проброс PCI-видеокарты AMD Radeon HD 6770 для получения доступа к 3D ускорению внутри виртуальной машины.

С течением времени устаревают, как версии пакетов из набора, так версия операционной системы, а в новые версии программ добавляются новые возможности и исправляются имеющиеся ошибки и недостатки. Для команды проекта "Umvirt Spiced VP" имеет смысл заняться поиском новых стабильных версий пакетов.

По началу когда обновляется не большое количество пакетов, их можно обновлять без особых проблем, но когда самих пакетов и их зависимостей становится очень много, происходит частичная пересборка всей операционной системы. Для того чтобы этого избежать нужно воспользоваться не только самыми последними на данный момент версиями пакетов но также и самой последней версией операционной системы.

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

Так например, в свежих версиях пакетов "spice" с Launchpad.net вместо сборки зависмого пакета "celt" в процессе сборки пакета "spice" используется заплатка (патч), которая накладывается на исходный код дистрибутива "spice" и убирает зависимость от "celt". Все бы ничего, да вот только просто взять и перенести эту заплатку на новую версию "spice" не удается так как в изменяемые файлы были внесены изменения. Можно конечно благодаря редактору патчей "quilt" и графическому анализатору изменений "meld" своять новую версию заплатки, но этот процесс слишком трудоемок и может привести к непредсказуемым результатам в случае опечатки. Чтобы не мучится с созданием новой версии заплатки и повысить надежность имеет смысл сделать не шаг, а два шага назад т.е. перейти от заплатки не к сборке пакета "celt" в процессе сборки "spice", а вертуться к созданию отдельного пакета для "celt" и использования его как зависимости.

Так как подобные решения приходится предпринимать не однократно, создание полного набора пакетов "Umvirt Spiced VP" может подзатянуться на некоторое время. Однако, уже в следующем году планируется выпуск стабильной версии наборов на базе Ubuntu 14.04.