8 октября вышла коробочная версия VMmanager 6 — новой панели управления виртуализацией. Теперь её можно установить на сервер и использовать для продажи виртуальных машин или управления собственной инфраструктурой. В этой статье сравним новое поколение с предыдущим — VMmanager 5 и VMmanager 6.
Обе панели поддерживают виртуализацию KVM и управляют физическим сервером средствами libvirt.
VMmanager 5 вышел в 2013 году, VMmanager 6 — в 2019-м. Новое поколение удобнее и устойчивее к нагрузкам. Поддерживает создание образов, управление задачами и мониторинг.
В этой статье сравним два поколения панелей. Сначала поговорим о концептуальных различиях: архитектуре, интерфейсе, устойчивости к нагрузкам. Во второй части посмотрим, как в двух панелях решаются одинаковые задачи.
Больше о продукте — в разделе VMmanager 6 на сайте ISPsystem.
Часть 1. Концептуальные различия
Архитектура
VMmanager 5 представлял собой монолит, написанный на C++, что местами излишне усложняло разработку простых вещей.
Именно поэтому в VMmanager 6 мы использовали Python для простых задач, таких как настройка узлов, конфигурация ВМ, работа с libvirt. Такой код проще написать, отладить и «собрать». Рассказывали об этом в другой статье на Хабре.
Задачи, где не страшна децентрализация данных и необходимо горизонтальное масштабирование, мы переложили на Golang, выделив бизнес-логики в микросервисы. Как ни странно, тут мы тоже выиграли в скорости и простоте разработки. Остальная логика продолжает использовать преимущества монолита на C++ — надёжность, скорость и согласованность данных.
Кроме того, VMmanager 6 поставляется в docker-контейнерах. VMmanager 5 устанавливался при помощи пакетов. Несомненный плюс контейнеризации — высокая предсказуемость поведения приложения (окружение всегда одно и то же). Стало проще воспроизводить ситуации или проблемы, не надо делать множество сборок под разные ОС, развертывание проходит быстрее.
В VMmanager 5 установка пакетов несла с собой множество зависимостей, которые могли конфликтовать с уже установленными пакетами. При этом бывали ситуации, когда удаление безобидного пакета с опцией «-y» удаляло всю панель по зависимости.
Ещё одно важное изменение: VMmanager 6 поддерживает образы. Образ (image) — это полная копия диска ВМ. Он используется при создании виртуальных машин и резервных копий. Не путать с ISO-образами в VMmanager 5 — это две разные технологии.
Устойчивость к нагрузкам
Важное следствие изменений в архитектуре — повышение устойчивости к нагрузкам.
VMmanager 5 не выдерживает большие нагрузки: если создаётся больше 500 виртуальных машин, начинает работать медленно. Чтобы обойти это ограничение, провайдеры устанавливают ещё один VMmanager и создают новые виртуальные машины в нём. У крупных провайдеров может быть несколько панелей: по числу локаций или тарифов.
В VMmanager 5 очень многое выполнялось в основном процессе и, как правило, в один поток. Для управления долгими операциями существовал модуль longtask (прародитель taskmanager, сервиса для диспетчеризации задач в шестой версии), но его активно использовать его мы начали не сразу. В longtask не было механизма лочек, только очереди, в которых задачи могли выполняться строго по одной в том порядке, в котором они туда попадали. Одна задача не могла встать в несколько очередей. Сами longtask-операции представляли собой специальные файлы на диске. А большое количество файлов в одном каталоге создаёт серьезную нагрузку во всех UNIX-системах. Это не позволяло распределять задачи между несколькими диспетчерами/серверами.
За нагрузку в VMmanager 6 отвечает специальный сервис управления задачами — Taskmanager. Теперь большинство операций выполняются как отложенные в отдельных процессах. Это повышает отзывчивость системы — отдельный запрос не может заблокировать её работу; а также повышает стабильность — если что-то пойдет не так, это не повлияет на всю систему, максимум на какую-то операцию. Гибкая система блокировок и высокая изолированность отдельных процессов позволяет оптимально выстраивать очередь задач и выполнять их параллельно там, где это возможно.
Также в новой версии было принято решение разделить reader и writer (процессы, которые отвечают за операции чтения и записи в системе). В отличие от VMmanager 5, пользователь панели всегда может получить информацию, т. к. потоки reader всегда могут работать параллельно, вне зависимости от того, сколько операций записи выполняется в данный момент.
Интерфейс
Самое заметное различие двух поколений — интерфейс. И дело не только в дизайне. Отличия в быстродействии и отзывчивости.
Интерфейс VMmanager 5 устарел как по внешнему виду, так и по «поведению». Первое видно невооружённым глазом, а второе заметно при выполнении долгих операций: если остановить виртуальную машину или запустить массовую миграцию, на экране появится блокирующий прогресс-бар. Если таких операций у пользователя окажется много, то кто-то другой просто будет ждать, чтобы посмотреть список виртуальных машин.
Вместе с изменениями дизайна VMmanager 6 пришли и архитектурные изменения клиентской части. Раньше шаблоны страниц генерировались из xml-файлов на стороне сервера, теперь это SPA (Single Page Application) на основе популярного фреймворка Angular. Приложение состоит из отдельных независимых модулей (загружаются по требованию) и компонентов. Компоненты выделены в библиотеку и разрабатываются в соответствии с дизайн-системой.
Для повышения отзывчивости общение с сервером происходит при помощи REST API и WebSocket. В большинстве случаев мы стараемся использовать не блокирущие, либо отложенные операции. Оповещение клиентской части о любых изменениях в приложении, будь то создание виртуальной машины или смена статуса узла в таблице, осуществляется через специальный сервис. Этот сервис узнаёт об изменениях из key-value хранилища, куда события попадают из всех микросервисов.
Таким образом, интерфейс VMmanager 6 не только стал более современным, но и более удобным, отзывчивым и «дружелюбным».
Часть 2. Решение задач
Создание виртуальных машин
Перейдём к задачам. Первая — создание ВМ.
VMmanager 5 создаёт виртуальную машину за 8–10 минут — долго. Всё потому, что процесс идёт обычными средствами: пакеты скачиваются, разворачиваются, устанавливаются. Чтобы клиентам не пришлось ждать, провайдеры пишут плагины: создают виртуальную машину заранее, а когда клиент приходит, переназначают её. Пользователь с повышенными правами может создать виртуальную машину сам, но придётся заполнить сложную форму.
В VMmanager 6 применяется новый механизм создания виртуальных машин. Панель не скачивает пакеты, а разворачивает копию образа. Не нужно писать дополнительные плагины: выдача ВМ и без них происходит быстро — от 1 минуты 20 секунд до 2 минут. Сбои в сети или выход новой версии ОС больше не влияют на установку, и если она запустилась, то точно закончится. Форма создания ВМ стала гораздо проще.
Создание шаблонов ОС
Провайдеры продают клиентам виртуальные машины с WordPress, 1С-Битрикс или другим ПО. Компании, использующие VMmanager для внутренних нужд, создают много однотипных ВМ для тестирования, развертывания внутренних сервисов и собственного ПО. Настройка каждой машины — рутинная работа администратора или тестировщика. Панель управления помогает её автоматизировать: один раз настроить шаблон и создавать из него преднастроенные VPS.
В VMmanager 5 шаблоны ОС хранятся в репозиториях. Чтобы добавить свой шаблон, надо создать репозиторий и подготовить файлы конфигурации ОС. Репозиторий создаётся на отдельном сервере. Шаблон состоит из XML-описания и файла конфигурации, а также всех файлов, необходимых для создания ОС. Администратор должен сам подготовить шаблон. Задача не из лёгких, и решить её без инструкции вряд ли получится.
Шаблон ОС в VMmanager 6 — образ диска виртуальной машины с установленной операционной системой. Чтобы создать шаблон с дополнительным ПО, достаточно настроить его на одной виртуальной машине и сделать образ её диска. После этого все ВМ, созданные из этого образа, будут настроены аналогично. Изменятся только настройки сети и доступы к ВМ — они не записываются в образ. Задача простая, администратор справится без инструкции. Разумеется, любители скриптов по-прежнему могут использовать их — такая возможность в VMmanager 6 есть.
Статистика и мониторинг
Сервисы статистики и мониторинга — незаменимые помощники каждого системного администратора. Они позволяют оперативно реагировать на нештатные ситуации, возникающие на узлах и ВМ. Внезапный приток посетителей, DDoS-атака или неправильно работающий скрипт могут сильно нагрузить виртуальную машину. Если не принять меры, она выйдет из строя, как и расположенный на ней сайт или проект. Удобно, когда система мониторинга включена в панель.
В VMmanager 5 существует механизм наблюдения за статусом виртуальных машин. Каждые 10 минут он анализирует количество отправленных по сети пакетов и количество запросов на запись в диск виртуальной машины. На главной странице панели показаны топ-10 узлов по исходящему трафику, нагрузке на процессор и память. Уведомлений на почту или в мессенджеры нет.
VMmanager 6 также наблюдает за статусами ВМ и узлов, как и прежде, собирает статистику по использованию ресурсов. Но следуя потребностям пользователей, мы разработали новую систему онлайн-мониторинга для узлов и ВМ. Она следит за потреблением оперативной памяти, загрузкой процессора и жёсткого диска, мониторит сетевую активность. Если нагрузка становится критической, не заметить этого невозможно — данные мониторинга отображаются в списках узлов и виртуальных машин, а также на индивидуальных карточках этих сущностей. Зайдя на список узлов, администратор сразу может заметить, какой из серверов перегружен и по какому показателю. Дашборд находится в стадии разработки, появление ожидается в панели уже в этом году.
Почта
Удобно, когда панель сообщает о текущих событиях или проблемах. Для этого она должна поддерживать отправку сообщений.
В VMmanager 5 нет возможности управлять почтой. Сбросить забытый пароль может только администратор, восстановить его автоматически нельзя. Уведомления о создании виртуальной машины отправляет BILLmanager. Добавить новое события для оповещений —целое дело.
VMmanager 6 умеет отправлять почту. Уже сейчас приходят уведомления о создании и переустановке ВМ, письма для восстановления пароля. При подключении биллинга отправку сообщений из панели можно отключить. В будущем появятся уведомления о проблемах, произошедших на узлах ВМ. Также планируется реализация отправки уведомлений в мессенджеры.
Управление задачами
Мало узнать о проблеме, надо быстро найти её причину и устранить. Почему не создалась виртуальная машина или не выполнился скрипт, какие операции в системе часто дают сбой — всё это можно выяснить в списке задач VMmanager 6.
В VMmanager 5 механизма мониторинга задач нет, так как не было самого механизма задач (см. первую часть статьи). Частично выполнение фоновых заданий можно отслеживать в разделе «Состояние системы». Видно время запуска и завершения, а также статус — выполнено успешно или с ошибкой. Зависшую longtask-операцию можно завершить принудительно. А вот если виртуальная машина не создалась, узнать причину из панели не получится: придётся взять ID и пойти в консоль «грепать логи».
Пользователь VMmanager 6 управляет операциями в «Списке задач». Там хранится информация о текущих и завершённых операциях над виртуальными машинами, узлами, шаблонами ОС. По длительности выполнения задач можно отслеживать закономерности: какая операция за какое время происходила, кто её запускал. Если завершилась с ошибкой, виден лог — он выводится в интерфейс. Если скрипт не выполнился — в интерфейсе появится код ошибки. Сразу понятно, что делать.
Бэкапы
Это одна из задач, которая в двух панелях решается по-разному.
VMmanager 5. Можно создавать копии всех или конкретных виртуальных машин. Бэкапы сохраняются на локальном диске или удалённом FTP-хранилище — одном или нескольких. Копируется XML-описание виртуальной машины, создаются копии её виртуальных дисков, дамп памяти, и всё это упаковывается в архив.
VMmanager 6. Здесь нет резервного копирования в привычном понимании — всё хранится в базе. Если панель откажет, но сохранится база данных, восстановить работу системы не составит труда. Роль бэкапов виртуальных машин выполняют образы. Из образа можно восстановить поврежденную ВМ, если возникнет необходимость. Сейчас образы создаются с остановкой ВМ, но в будущем их можно будет делать без остановки и продавать через биллинг.
Нативная поддержка дата-центра Hetzner
Hetzner — популярный среди российских провайдеров дата-центр. Для защиты использует Port Security, поэтому при работе с ним нужны особенные настройки сети.
В VMmanager 5 сеть для нод из Hetzner надо настраивать вручную: править файлы конфигурации панели, настраивать сетевой интерфейс сервера и сетевой мост, включать форвардинг. При этом одна панель может управлять только одним кластером — если у провайдера кроме арендованных в Hetzner серверов есть свои, то их нужно заводить в отдельной панели.
В VMmanager 6 есть нативная поддержка Hetzner. Администратор добавляет кластер типа Hetzner и подключает сервера. После этого маршрутизация идёт по модели этого дата-центра, настройки ВМ производятся в соответствии с типом кластера, в котором они расположены. При этом в этой же панели могут быть кластеры с другими настройками сети. К слову, управление несколькими кластерами — одна из ключевых возможностей VMmanager 6.
Локальные хранилища
VMmanager 5 поддерживает файловое хранилище и LVM. В одном кластере могут быть узлы с разным типом хранилища (как показало время, механизм оказался невостребованным, а ресурсов требовал много). Также в панели поддерживается большое количество разных типов сетевых хранилищ. В шестой версии в ближайших релизах мы реализуем поддержку наиболее популярного из них — Ceph-хранилища.
VMmanager 6 поддерживает файловое хранилище и LVM. В одном кластере не может быть узлов с разным типом хранилища. Это исключает проблемы миграции — они неизбежны, если часть дисков лежит в файловом хранилище, а часть в LVM.
Системные требования
VMmanager 5: чистый сервер с CentOS 6 и 7, 100-150 Гб под корневой раздел.
VMmanager 6: чистый сервер с CentOS 7, двухъядерный процессор с частотой 3 ГГц, 4 Гб оперативной памяти, 40 Гб пространства на диске. Сервер не обязательно должен быть железным, подойдёт и виртуальный.
Переход
Для клиентов с активными лицензиями VMmanager 5 действует специальное предложение на покупку VMmanager 6. Условия и детали о миграции — в анонсе на сайте ISPsystem.
Заключение
Пятое и шестое поколение VMmanager подходит для управления виртуализацией. Но разница между ними большая. Если подытожить:
- VMmanager 5 стоит использовать для решения нестандартных задач: когда нужны ISO-образы. А ещё — снэпшоты и сетевые хранилища (iSCSI, NFS, Ceph, GlusterFS).
- VMmanager 6 более удобный и быстрый, выдерживает большие нагрузки и подойдёт практически для всех задач. До конца года планируем добавить поддержку IPv6, Ceph-хранилищ, а также дашборд администратора и уведомления о проблемах на почту и в мессенджер.
VMmanager 6 уже оценили 30 провайдеров. Отзывы — в анонсе на сайте ISPsystem.
Максимум деталей и конкретики — в документации по VMmanager 5 и VMmanager 6.
Прямо сейчас можно бесплатно попробовать VMmanager 6. Действует триальная версия на 30 дней. Чтобы ей воспользоваться, оставьте заявку и следуйте инструкциям в ответном письме.