06 февраля 2009

Впечатления от oVirt

На пару дней взял в лабе четыре сервера, на которых развернул oVirt - Open Source-реализацию системы виртуализации, находящуюся в стадии разработки, но имеющую весьма высокий потенциал. Объясню почему. Когда говорят о бесплатных продуктах, подобных ESXi и Hyper-V, нужно понимать, что, хотя они и бесплатны, но масштабируемое решение на них никоим образом не построить. Если вы возьмете десять физических серверов и установите на них гипервизор, то у вас и будет десять отдельно стоящих серверов без функций централизованного управления, горячей миграции, отказоустойчивости и т.д. За все, без чего виртуализация превращается в "красивую игрушку", нужно платить.

С другой стороны есть свободные решения на базе Linux - стабильные и готовые к промышленному внедрению. Но! Даже если оставить в стороне тот вопрос, что открытые разработки в плане некоторых возможностей "не дотягивают" до уровня VMware (с Microsoft сравнивать не будем - ее роль "догоняющего" тут очевидна), то у существующих решений на базе Linux есть следующие недостатки:
  • сложность создания комплексного решения: дело не в том, что это нельзя сделать, а в том, что требуется достаточно высокая квалификация исполнителей и глубокое знание технологий;
  • отсутствие простых в использовании и масштабируемых инструментов управления.
На решение этих проблем и направлен проект oVirt.


В основе лежит API виртуализации и набор утилит - libvirt . libvirt поддерживает работу с различными гипервизорами и технологиями , в том числе Xen, KVM, QEMU, OpenVZ. Следующая составная часть проекта - небольшой образ на основе гипервизора KVM (в ближайшем будущем в проекте появится и поддержка Xen), например, загружаемый по сети. Управляемые хосты, где должны запускаться виртуальные машины, "поднимаются" за считанные минуты и работают без локального сохранения состояния. И, наконец, оставшаяся часть - это управляющие сервера. Если взять VMWare, то, при грубом приближении, эти сервера - аналог VirtualCenter. Управляющий сервер собран из нескольких тесно интегрированных друг с другом компонентов:
  • Единый инструмент управления - веб-консоль;
  • FreeIPA - обеспечивает безопасный канал аутентификации (GSSAPI/SASL2) и LDAP-сервер (Fedora Directory Server). Про IPA я уже писал в блоге пол-года назад;
  • Cobbler - обеспечивает централизованное развертывание виртуальных машин и самих образов с гипервизором;
  • База данных. Пока поддерживается работа только с PostgreSQL. Думаю, к моменту "выпуска в свет" там будет и поддержка Oracle;
  • Другие компоненты, написанные в рамках проекта (броузер хостов, механизм планирования задач, агенты мониторинга).
Еще раз: все это - Open Source решение, внедряемое как единое целое. А, значит, просто и быстро. Действительно, при помощи "Виртуального модуля" (Virtual Appliance) я получил готовую систему менее, чем за час. Из единой консоли можно добавлять хосты, хранилища (пока что только NFS и iSCSI, но к выходу окончательной версии должно быть добавлено и FC. Документация уже содержит упоминание работы с Fibe Channel), разворачивать виртуальные машины, осуществлять "живую миграцию", просматривать графики производительности, задавать права, назначать квоты, выделять пулы ресурсов. В общем, все, к чему мы привыкли, работая c коммерческими решениями. Когда выйдет окончательная версия продукта, я уверен, oVirt составит достойную конкуренцию на рынке продуктов "промышленной" виртуализации, при этом имея неоспоримое преимущество - это полностью свободное решение.

"Поигравшись" с интерфейсом oVirt, я попробовал записать скринкаст в формате ogg theora video. Осталось склеить несколько кусков и наложить звук. Думаю, на следующей неделе я доделаю его и выложу в блог. Как говорится, лучше один раз увидеть, чем сто раз услышать. Надеюсь, необходимость устанавливать кодеки тем читателям блога, которые используют на десктопе ОС от Microsoft, не станет непреодолимым препятствием для просмотра скринкаста. :) Попытки переконвертировать во flash увеличивают размер файла практически в два раза, поэтому я решил отказаться от создания двух версий файла.

Напоследок несколько снимков с экрана:

Virtual Appliance загружено.


Общий вид "аппаратного" пула.



Вкладка управления хранилищем. Пусть вас не пугают размеры LUN-ов. Это экспортируемое самим Virtual Appliance хранилище для формального тестирования работы с iSCSI.


Вкладка c обзором физических хостов.


Консоль виртуальной машины.

24 комментария:

Михаил комментирует...

термин "свободное" тут употребляется с упором на смысл "бесплатное", я правильно понимаю?

Andrey Markelov комментирует...

Нет. С упором на смысл "свободное". Это означает что ПО можно использовать с любой целью, можно изучать (открыты исходные тексты), можно распостранять, можно улучшать.

Например, вы можете заставить oVirt работать с еще одним гипервизором, дописав код. Будет ли работа программитста "бесплатна"? Нет. Получили ли вы нечто невозможное в рамках типичных лицензий закрытого (пусть и бесплатного) ПО? Да.

Конечному заказчику свободное ПО вполне может оказаться дешевле. Но будет ли бесплатной работа по внедрению, тех. поддержке, обучению? Как и в случае с не свободным ПО эти статьи расходов (или доходов для СИ) остаются.

Михаил комментирует...

Еще разок перечитал пост.
Речь идет не о гипервизоре, а об управляющей надстройке для (в перспективе любого) гипервизора KVM.
Так?

Andrey Markelov комментирует...

"...Следующая составная часть проекта - небольшой образ на основе гипервизора KVM..."

Речь идет о законченом решении, включающем в себя "из коробки" и конкретный гипервизор.

Михаил комментирует...

ага, т.е. сегодня этот проект интересен тем, кого устраивает KVM.
Нет под рукой ссылочек про него7 чтобы понять что он из себя представляет.

Andrey Markelov комментирует...

В продакшен это точно не пойдет без поддержки Xen, которая анонсированна в ближайшее время. Так что можно читать и про него :) Ну и конечно про libvirt. Что касается KVM он входит в ядро Linux начиная с 2.6.20. KVM - это только часть решения. За I/O отвечает QEMU. C KVM можно начать знакомства со статьи на IBM DW http://www.ibm.com/developerworks/ru/library/l-linux-kvm/

Unknown комментирует...

вообще xen виртуальные машины можно запускать на kvm. да добавить xen не проблема - надо собрать только свой образ для физической системы и настроить на нем libvirt и libvirt-qpid. И так же с любым способом виртуализации который поддерживает libvirt.

Andrey Markelov комментирует...

Там работа несколько больше чем просто создать образ и настроить libvirt. Еще нужно предусмотреть механизмы передачи информации через collectd, оповещения о текущем состоянии и интеграцию с FreeIPA через GSSAPI.

Unknown комментирует...

все настройки для gssapi можно взять из готового образа - ничего не меняя. collectd - это только построение графиков.
Передача же информации в обе стороны идет через qpid <-> libvirt-qpid (по amqp). И опять же не зависит от способа виртуализации.

Andrey Markelov комментирует...

Вопрос в необходимости... С точки зрения промышленного внедрения и техподдержки лучше иметь один образ. С точки зрения поддержки существующих установок соответствующие изменения/дополнения необходимо вносить в RHEL. Думаю именно это и будет сделано с очередным апдейтом после выпуска oVirt. Пока же у проекта oVirt есть явно более насущные задачи http://www.ovirt.org/milestones.html начиная от поддержки Fibre Channel и Clustering/HA через GUI. Впрочем это вопросы не дальней перспективы - все технологии существуют, вопрос только в сборке в единое целое.

Unknown комментирует...

Я просто хотел сказать что ovirt так замечательно сделан, что, при необходимости использовать xen, любой среднестатистический сисадмин может за неделю добавить эту возможность.

Unknown комментирует...

Пробежался по диагонали по документации к этому продукту и не заметил функции load-balancing. Также не понял как планируется реализовывать НА-решения, с учётом уже имеющего CS.

Andrey Markelov комментирует...

Это нужно в настоящий момент искать в ToDo а не в документаци. HA с виртуальными машинами можно собрать "вручную" При помощи cluster suite. Я так делал только не с KVM а Xen. В настоящий момент пункт "Clustering software integrated into oVirt Node and support for Node HA" в разделе "In Progress".

Unknown комментирует...

load balancing строить можно только из виртуальных машин. А вот для HA витуальных машин в рассылке есть мой патч - работает он так - мониторится состояние физического узла в случае его недоступности он добивается по ipmi, все работавшие на нем вирт. машины перезапускаются на других нодах, так же позволяет держать в базе данных информацию актуальную на данный момент - потому как старая реализация часто приводила к тому что вирт. машина работает но в базе помечена как остановленая. Поправить можно было только перезапустив ovirt-db-omatic (он заносит в базу всю информацию).

Анонимный комментирует...

Даже если оставить в стороне тот вопрос, что открытые разработки в плане некоторых возможностей "не дотягивают" до уровня VMware (с Microsoft сравнивать не будем - ее роль "догоняющего" тут очевидна), то у существующих решений на базе Linux есть следующие недостатки:

А можно подробнее кого именно Microsoft догоняет VMWare или Linux разработки?

Анонимный комментирует...

> Когда говорят о бесплатных продуктах, подобных ESXi и Hyper-V, нужно понимать, что, хотя они и бесплатны, но масштабируемое решение на них никоим образом не построить. Если вы возьмете десять физических серверов и установите на них гипервизор, то у вас и будет десять отдельно стоящих серверов без функций централизованного управления, горячей миграции, отказоустойчивости и т.д. За все, без чего виртуализация превращается в "красивую игрушку", нужно платить.

Вообще то бесплатный Microsoft Hyper-V Server R2 вполне себе умеет кластеризацию с поддержкой Live и Quick миграции виртуальных машин. А управлять им можно либо централизовано с помощью Powershell либо с помощью SC VMM.

Кусок комментария который идет дальше можно удалить после прочтения. :)

Вот тут опечатка "Документация уже содержит упоминание работы с Fibe Channel)".

И еще вопрос почему именно Theora в качестве кодека для видео? Это значительно снижает количество зрителей и воздействие записи на тех кто блог читает. Те кому трафика жалко и так скорее всего не посмотрят видео и кодек тоже качать не станут. Лучше уж использовать что-то стандартное.

Andrey Markelov комментирует...

2 Andrey Beshkov

> Вообще то бесплатный Microsoft Hyper-V Server R2 вполне себе умеет кластеризацию с поддержкой Live и Quick миграции виртуальных машин.

Я писал только о существующих продуктах. Microsoft Hyper-V Server в настоящий момент не существует. Есть только бета версия R2.

> А управлять им можно либо централизовано с помощью Powershell либо с помощью SC VMM.

Я писал о бесплатных продуктах. Поэтому про SC VMM говорить не корректно. Что касается Powershell. Я писал: "отсутствие простых в использовании и масштабируемых инструментов управления". Никаких проблем. Попытайтесь управлять ЦОД-ом где все виртуалки управляются централизованно, но при помощи Powershell или virsh/bash. Я не считаю скриптовые языки "простым в использовании инструменте", поэтому я и сказал что таких инструментов нет. В противном бы случае можно было бы считать что у открытых решений в этом плане все "ок" (как и у бесплатного Hyper-V + бесплатный PowerShell).

> почему именно Theora в качестве кодека для видео? Это значительно снижает количество зрителей... Лучше уж использовать что-то стандартное.

Установить кодек Theora не сложнее чем Flash player. Но я сделаю и Flash.

2 Анонимный

> А можно подробнее кого именно Microsoft догоняет VMWare или Linux разработки?

Подробнее тут:

http://markelov.blogspot.com/2008/11/red-hat-vs-hyper-v-vs-vmware.html

VMWare абсолютно однозначно. Думаю это очевидно всем кто знаком с предметной областью. Про разработки на базе Linux: Мое мнение как инженера, да - разработки на базе Linux технологически тоже впереди Microsoft (Xen, KVM и другие в той или иной степени). Но в настоящий момент у них есть проблемы, про которые я писал в посте.

Анонимный комментирует...

2 Andrey Markelov

> Я писал только о существующих продуктах. Microsoft Hyper-V Server в настоящий момент не существует. Есть только бета версия R2.

Как же не существует? Скачать его можно и в Европе уже есть примеры внедрений. То что он еще не дошел до релиз версии не означает что его не существует.

Следую твоей логике oVirt тоже не существует. :)

Andrey Markelov комментирует...

2 Andrey Beshkov

Так ты бы и писал не "...бесплатный Microsoft Hyper-V Server R2 вполне себе умеет..."

а "...бета версия бесплатного Microsoft Hyper-V Server R2, который по официальной информации должен выйти в 2010 году (http://www.microsoft.com/windowsserver2008/en/us/roadmap.aspx) вполне себе умеет..."

Вопросов бы не было :)))

А что касается oVirt - так и он весьма бета. Я в посте и писал, что это будущее. Что касается настоящего, то в RHEL 5 (который не бета) и сейчас есть кластеризация с поддержкой "живой миграции". Как и в ESX.

Анонимный комментирует...

>> А управлять им можно либо централизовано с помощью Powershell либо с помощью SC VMM.

> Я писал о бесплатных продуктах. Поэтому про SC VMM говорить не корректно. Что касается Powershell. Я писал: "отсутствие простых в использовании и масштабируемых инструментов управления". Никаких проблем. Попытайтесь управлять ЦОД-ом где все виртуалки управляются централизованно, но при помощи Powershell или virsh/bash. Я не считаю скриптовые языки "простым в использовании инструменте", поэтому я и сказал что таких инструментов нет. В противном бы случае можно было бы считать что у открытых решений в этом плане все "ок" (как и у бесплатного Hyper-V + бесплатный PowerShell).

Хорошо. Если не нравится Powershell возьми RSAT или оснастку Failover Clustering он и кластером и Hyper-V управляет

Andrey Markelov комментирует...

> Хорошо. Если не нравится Powershell возьми RSAT или оснастку Failover Clustering он и кластером и Hyper-V управляет

Т.е. ты считаешь что "нравиться"/"не нравиться" - критерий для принятия решения при развертывании ЦОД-а?

Если есть такие замечательные, удобные и масштабируемые инструменты, то зачем вот это:

http://www.microsoft.com/systemcenter/virtualmachinemanager/en/us/features.aspx

Dmitri Moudraninets комментирует...

Похоже, что oVirt частично повторяет функционал Genome ( http://genome.et.redhat.com/ ). Они будут как-то взаимодействовать друг с другом?

Andrey Markelov комментирует...

2 Dmitri Moudraninets

Функционал пересекается, но задачи разные. У той же VMware также разные продукты для этих задач.

Саша комментирует...

oVirt действительно интересный компонент постоения системы виртуализации. В настоящий момент прорабатываю нормальное для решение хранения данных, чтобы потом стоить систему вцелом. Возможно openfiler+drdb прокатят...