main

Немного о kvm, libvirt и веб-мордах к ним

Если вкратце - не нашел ничего вменяемого. Задача - управлять десятком виртуалок, на уровне "включить/выключить/создать/подключить новый диск". Супер возможностей - не требуется. Требования к веб-морде тоже просты - она не должна тянуть в систему много лишнего.

Почему virt-manager мне не подходит - нужен доступ из разных мест, поэтому нужно что-то web-based. virsh - круто, но немного красноглазо.

Итак, попробую что-то найти для своего нищебродского сервера.

Обзор решений на рынке

Грубо говоря - делятся на 3 типа:

  • решения для построения облака. (сервер управления + куча тупых узлов) Да, понимаю, востребовано, но мне не подходит, масштаб не тот.
  • автономные системы, ориентированные на управление одним/несколькими серверами. Операционка в комплекте.
  • отдельная веб-морда, ставящаяся на существующую систему.

Что я смотрел:

  • opennode - заточен под построение облака, базовая система - FC16, нода может ставится прямиком на железо (bare-metal). В неё может ставится управляющий сервер.
  • ovirt - аналогично предыдущему, "management-server" - монструозная хрень на жабе.
  • convirt - готовый инстанс (хрен с ним, потерпим), но неосилило подключиться к хостовой системе с libvirt, в обязательном порядке нужен ssh-доступ с дофига прав. Определение доступных интерфейсов и адресов на них в управляемой системе производится путем grep'ания выхлопа ifconfig'а. В исходниках помечено как TODO, но за полгода так и не переписано.
  • esxi-сервер - гнусная проприетарщина™. Ставится только на реальное железо, в виртуалке - даже не запускается. Неасилило мою сетевуху и ещё 2 которые я ей подсунул ради интереса (в т.ч. на бессмертном чипе realtek 8139). Без сетевухи вставать отказалось. Ну и хрен с ней, не сильно-то и хотелось.
  • openqrm - простая веб-админка, на php, но зачем-то тянет функции по сборке initrd для разворачивания guest-систем. Проект вяло развивается, последний релиз - в ноябре 2011.
  • archipel - использует красивую концепцию - "всё ipc - через jabber-сервер". Требует патченный ejabberd (пока что только там есть адекватный pubsub, через который всё работает). Архитектурно - самый правильный проект, легковесный агент, ставящийся на управляемую систему (он служит транслятором jabber <=> libvirt), и веб-админка, не требующая вообще нихрена, полностью написанная на JS и работающая в любом современном браузере. К сожалению, напоролся на непонятные глюки: кликаешь на "остановку сети", сеть останавливается, но продолжает отображаться как активная, список ВМ показывается через раз. Практически уверен, что дело в руках и кривой настройке моего ejabberd. Также, агент слегка сегфолтится1 на старте, возможно это арче-специфично.

OpenQRM - на мой взгляд перспективнее всего, но если всё же не удастся её оживить - тогда придется разбираться с convirt'ом.

UPD: остановился на archipel, пока полёт нормальный.


  1. точнее, не сам клиент (он на питоне), а libnl, которая им вызывается ↩