10 апреля 2020

Константин Сластной

Разработчик VMmanager

VMmanager 6 — современная платформа виртуализации

С момента прошлогодней встречи в Москве VMmanager прошел этапы от открытого бета-тестирования до коммерческого релиза. Разработчик Константин Сластной рассказал подробности о первых запросах пользователей, преимуществах и дальнейших планах развития продукта.

Преимущества VMmanager 6

В проектирование, реализацию и переход на шестое поколение VMmanager были заложены исключительно прагматические соображения. Они стали фундаментом для следующих преимуществ:

Общий интерфейс для управления всеми кластерами

Больше не требуется отдельная инсталляция VMmanager на каждую кластер. Теперь можно управлять всеми технологическими площадками из единого интерфейса.

Отказоустойчивость инфраструктуры

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

Удобная Rest API система

Мы ушли от XML в сторону JSON, это более распространенный формат данных. Все современные средства разработки поддерживают его по умолчанию и предоставляют удобные инструменты для клиент-серверного взаимодействия.

Стабильность при больших нагрузках

Благодаря переработанной архитектуре, теперь все операции в VMmanager выполняются параллельно и не блокируют интерфейс.

Быстрая доставка фич

Новая архитектура удобнее в обслуживании, поэтому мы можем быстрее реагировать на ваши бизнес-запросы, а вы можете быстрее выводить новые услуги на рынок для своих клиентов.

Как 6-я платформа улучшает услуги для конечного пользователя

Сервер выдается быстро

Скорость выдачи сервера — это первое, что оценивают клиенты. Раньше они ждали десятки минут, а теперь получают готовую виртуальную машину гораздо быстрее:

  1. через 1 минуту на Linux;
  2. через 5 минут на Windows

Интерфейс удобен для работы

Мы используем современный подход к UX-дизайну, поэтому пользователям комфортно работать с VMmanager 6: легко найти нужный раздел, и операции занимают меньше времени.

Как 6-я платформа упрощает обслуживание системы

Прогнозирование вместимости узлов

Не нужно вручную считать, сколько виртуальных машин ещё войдет на узел. Мы добавили инструмент прогнозирования, который проверяет, сколько есть VM, какие у них параметры, и подсказывает, сколько аналогичных машин ещё можно создать на узле.

Сбор информации по задачам клиентов

Больше не нужно вручную анализировать логи. Информация об операциях на клиентских VM, ошибках и параметрах выполнения задач отображается в интерфейсе платформы.

Мониторинг, статистика и анализ

Дашборд VMmanager 6 — это вся ваша инфраструктура на одной странице. Система собирает информацию на четырех виджетах.

1. Виджет кластеров

Здесь отображается сводная информация по технологическим площадкам: тип хранилища, количество виртуальных узлов и машин, суммарный объем оперативной памяти и дискового пространства. Здесь же расположен инструмент прогнозирования — он покажет, сколько еще виртуальных машин можно создать.

Виджет кластеров — на дашборде он слева вверху. Здесь вся сводная информация по кластерам и инструмент прогнозирования вместимости

2. Виджет узлов

Здесь отображаются все узлы, подключенные к кластеру. Можно посмотреть изменения критических показателей: нагрузка на процессор, память, диск и сеть. Есть график с показателями в реальном времени и с динамикой изменений за последние сутки. При этом каждый показатель можно отсортировать и посмотреть отдельно.

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

3. Виджет самодиагностики

Здесь можно посмотреть данные сервера, на котором установлен сам VMmanager: ресурсы процессора, памяти, трафика и статус лицензии.

Виджет самодиагностики. Показывает состояние сервера, на котором установлена сама панель

4. Виджет задач

Показывает список и статус задач: какие завершены успешно, а какие требуют внимания администратора.

Для того чтобы администратор мог разобраться с каждым инцидентом, мы добавили интеграцию с самым популярным инструментом визуализации данных — Grafana.
Мы понимаем, что каждый хостинг-провайдер отслеживает собственные метрики. Поэтому мы собираем данные с узлов и виртуальных машин и складываем их в базу данных Graphite, к которой подключена Grafana. Так провайдеры могут создавать и анализировать нужные им метрики на неограниченном количестве графиков.
Также в Grafana можно настроить уведомления об ошибках по выбранным показателям. Но для этого нужно иметь свой сервис отправки уведомлений (например Telegram-бота), подключить его к Grafana и настроить — это не очень удобно. Поэтому мы планируем предоставить удобный инструмент настройки уведомлений, работающий «из коробки».
Интерфейс Grafana — гибкий инструмент, который аккумулирует данные всей инфраструктуры. Можно перейти с дашборда VMmanager

Доработки — решение первых запросов пользователей

После выхода коммерческой версии мы провели опрос и реализовали возможности, которых пользователям не хватало, чтобы перенести оборудование на VMmanager 6:
  1. Две схемы работы сети для поддержки дата-центров Hetzner и OVH.
  2. SystemRescueCD для восстановления виртуальных машин. Мы взяли самый популярный из rescue-образов и добавили возможность подключить его к VM в один клик.
  3. Поддержка нескольких сетевых интерфейсов на узлах и на виртуальных машинах. Эта возможность позволяет управлять приватными сетями: добавлять IP-адреса на виртуальные машины и объединять их в приватные сети (UPD: версия 4.1.3, 12.03.2020).
  4. Выдача IPv6-адресов подсетями, так как сетевое оборудование не справляется с поштучным выделением IPv6-адресов.

Планы развития VMmanager

Сейчас VMmanager работает с десятками тысяч виртуальных машин и тысячами узлов у 200+ клиентов из разных стран. И мы прогнозируем хорошие темпы роста продукта.
Прогнозируемый рост VMmanager

Запланированные возможности

Мощная система уведомлений об ошибках для бизнеса

Позволит администратору настраивать уведомления по любому показателю узла, виртуальной машины и задачам в удобный для него канал: e-mail, Slack, Telegram или Mattermost. Также мы планируем добавить автоматическое действие на событие. Например, когда на узле заканчивается место, для его очистки автоматически запускается скрипт, который вы назначили на это событие.

Мощная система уведомлений об ошибках для клиента

Планируем создать более простую в настройке систему для конечных пользователей, которая позволит им тоже настраивать уведомления по разным показателям для VM: CPU, RAM, HDD. Пользователи смогут оперативно узнавать, когда происходит превышение по ресурсам. Мы считаем, что такая функциональность соответствует духу времени и привлекательна для клиентов.

SDN и сетевые хранилища

Мы планируем интегрировать в платформу инструмент, который позволит абстрагироваться от физической архитектуры ДЦ. Это даст более гибкую настройку виртуальной инфраструктуры под нужды и процессы конечных клиентов, снимет проблемы и ограничения, связанные с сетевым оборудованием.

В первой итерации это будет инструмент для администраторов, а в дальнейших можно будет использовать «виртуальную сеть» как услугу для клиентов.

Advanced user

Современные клиенты не мыслят такими терминами, как сетевое оборудование, физический сервер, маршрутизация и архитектура ДЦ. Поэтому мы планируем предоставить ещё больше абстрагирования в нашей платформе. Advanced user — это пользователь, который может создавать виртуальные машины, объединять их в сети, создавать образы и добавлять IP-адреса в тех пределах, которые он покупает в биллинг-системе: RAM, CPU, storage, image. Всё настраивается автоматически и «под капотом», предоставляя клиенту возможность управлять своей виртуальной инфраструктурой максимально просто и без ограничений. В дальнейших итерациях это будет роль для работы в полноценном «Портале самообслуживания» в рамках продукта.

Больше возможностей кастомизации платформы

Работа с собственными операционными системами, автоматическое выполнение скриптов на узлах, когда они добавляются в кластер — чтобы настроить firewall или NAT. А также возможность использовать графические процессоры или решать другие специфические задачи с помощью кастомизации libvirt-домена.

Отказоустойчивость на уровне виртуальных машин

Первый механизм disaster recovery, для ручного восстановления VM: когда дата-центр недоступен из-за погодных катаклизмов, и нужно вручную перенести виртуальные машины клиентов в другой ДЦ.

Второй механизм high availability, для автоматического восстановления VM. Система сама определяет, что узел вышел из кворума, и переносит виртуальные машины в другой, работающий узел.

Переход с VMmanager 5 на 6 версию

Мы разработали инструмент полуавтоматической миграции, с его помощью наша команда переносит инфраструктуру клиентов на новую платформу. Инструмент проверяет текущую инфраструктуру на совместимость с VMmanager 6. Совместимые узлы наша команда мигрирует, для несовместимых система показывает, каких используемых функций пока нет в 6-й платформе. Мы передаем эту информацию клиенту и обсуждаем, насколько это критичные фичи.
Инструмент полуавтоматической миграции из VMmanager 5

Вопросы и ответы (из зала)

Вопрос 1. Как работает мониторинг, через сенсоры? Можно ли измерить показатель Load Average с уровня гипервизора?

Все данные для мониторинга собираются с узла средствами Libvirt, сенсоры внутрь ВМ не устанавливаем и не используем. LA можно измерить, но на уровне узла, не гипервизора.

Вопрос 2. Есть ли возможность создавать частные виртуальные сети в неограниченном количестве с одинаковыми IP, без пересечения адресов между клиентами?

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

Вопрос 3. Уточнение про миграцию между 5 и 6 поколением: виртуалки при миграции выключаются?

Нет, виртуальные машины не выключаем. Миграция идет «на живую», незаметно для клиента.

Вопрос 4. Интересует различие пятого и шестого поколений при работе с массовыми операциями. Расскажите, сколько узлов кластера можно подключить к VMmanager 6? Из моего опыта в пятом поколении подключалось только 3 узла.

В шестой платформе за долгие операции отвечает отдельный сервис, с помощью которого мы можем определить: какие операции могут выполняться одновременно, а какие нет. При этом интерфейс платформы остается отзывчивым и не подвисает. Что касается количества узлов, которые можно подключить, то в процессе миграции с 5 на 6 платформу нам удалось понаблюдать за инфраструктурой на VMmanager 5 c 17-ю узлами — интерфейс сильно тормозил. В VMmanager 6 с тем же количеством узлов никаких замедлений интерфейса не происходит.

Вопрос 5. Планируете ли добавить удобный инструмент для обновления ПО (например, ОС) на кластере? Чтобы не обновлять кластер вручную перед миграцией с 5 на 6 версию VMmanager?

Отдельного инструмента нет, но вы можете легко обновлять кластер через скрипты в платформе.

Вопрос 6. При миграции с 5-го на 6-е поколение сейчас нельзя перенести виртуальные машины с несколькими дисками, планируете добавить такую возможность?

Мы собираем кейсы пользователей — смотрим нашу внутреннюю статистику и пожелания. Самые популярные кейсы реализуем первыми. Проголосовать можно по ссылке.

Константин Сластной

Разработчик VMmanager