Тестируем отечественную систему виртуализации: VMmanager

Привет, Хабр!

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

7ac4c80bae2f266a3bcab1e5d678534a.png

Предыдущие материалы:

Кратко о VMmanager

VMmanager — платформа виртуализации от российской компании ISPsystem (которая относительно недавно вошла в структуру группы компаний «Астра»). Под капотом VMmanager — QEMU+KVM+libvirt. В своих материалах разработчик утверждает, что сервер управления — собственная разработка компании. Входит в Единый реестр российского ПО.

Поставляется в двух редакциях — VMmanager Hosting для хостинг-провайдеров и VMmanager Infrastructure для корпоративных и государственных заказчиков. Функциональные отличия редакций отражены в сравнительной таблице на странице решения.

В отличие от того же zVirt, VMmanager не позиционируется как прямая замена VMware. Это самостоятельный продукт, который, тем не менее, используется в сценариях импортозамещения.

Как утверждает разработчик, решение развивается уже около 15 лет. История изменений и роадмап (как реализованные фичи, так и запланированные) опубликованы на сайте ISPsystem. Из того, что я нашел в интернете, до вхождения в ГК «Астра» VMmanager предлагался только на рынке Hosting.

Результаты тестирования VMmanager

Кратко об условиях.

  • В исследовании использовалась 6-я версия VMmanager.

  • До тестирования я не был знаком с этой платформой. Как и в случае с другими решениями, с особенностями системы разбирался уже в процессе. Вполне возможно, что инженер с опытом взаимодействия с VMmanager справился бы со всем быстрее.

  • Тестирование проходило в режиме вложенной виртуализации, поэтому параметры производительности почти не оценивались. Основной акцент на функции.

Установка продукта и настройка

Документация

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

1ef055ca7bb55c79cdd7d03c7f07cd06.png

Для проведения тестирования я самостоятельно получил триальную версию на сайте вендора — она дает возможность пользоваться продуктом бесплатно в течение 30 дней. Специалисты поддержки отвечали на мои запросы в течение всего процесса изучения платформы.

Архитектура решения

Для тестирования я установил VMmanager 6 в открытом контуре. Однако VMmanager можно установить и в закрытом контуре/изолированной среде без доступа в интернет. Для этого сценария потребуется специальный установочный дистрибутив. ISO для закрытого контура на сайте не нашел.

В отличие от «Альт Виртуализации» или Hyper-V, которые используют интегрированный в гипервизор сервер управления, сервер управления VMmanager работает как независимая виртуальная машина или самостоятельный сервер.

Установка производилась в конфигурации, когда сервер управления устанавливается на отдельный сервер вне виртуализации (аналог режима standalone у zVirt), а три сервера были выделены под хосты виртуализации. Судя по документации, установка сервера управления «внутри» виртуализации в виде ВМ также поддерживается.

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

Производитель придерживается архитектуры, когда узлы виртуализации и сервер виртуализации устанавливается «поверх» операционных систем. Мне, как пользователю VMware, это непривычно. 

В качестве ОС для узлов заявлена поддержка:

Я выбрал наиболее «православную» связку: VMmanager + Astra Linux Special Edition 1.7.4 редакции «Орел». Дистрибутив Astra Linux для тестирования с инструкцией по установке и настройке мне предоставили в дополнение к триалу VMmanager после обращения в поддержку.

На рисунке ниже выдержка из документации, описывающая архитектуру:

0dc8b3c9f310c1047349c244c626bf24.pngc3d2ad55d4caaf752ce13ce81b42fe0a.png

В качестве общего СХД на этот раз я развернул iSCSI хранилище на базе TrueNAS и подключил его к узлам виртуализации как блочное устройство. Настройку подключения выполнил в операционной системе.

Простота установки

Установку VMmanager 6 я выполнял впервые, но, в отличие от предыдущих продуктов, она заняла меньше всего времени — около 5 минут. Установка выполняется тремя командами:

7583c4e64f8da291ac74b6a79ba53deb.png

Нужно отметить, что до установки какое-то время ушло на подготовку операционной системы Astra Linux.

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

b254d54043646112493f213941f537d4.png

После активации по токену из личного кабинета VMmanager разблокировал все вкладки меню.

f944176eff99032712b5fe47e1170e4a.png

В целом, этот этап установки оставил только положительное впечатление о продукте.

Возможность установки в открытом и закрытом контурах

Как я уже сказал выше, в данном тестировании установка производилась в открытом контуре. Однако есть возможность развернуть VMmanager из ISO-образа в изолированной среде. В документации есть отдельный раздел «Установка в закрытом информационном контуре» с описанием процесса.

Управление гипервизором

Управление осуществляется централизованно из веб-интерфейса VMmanager. При этом выход из строя управляющего сервера не влияет на работу существующих ВМ. Минимальное управление доступно через Virsh с узлов (остановка/перезапуск/запуск). В отказоустойчивом кластере при недоступности управляющего сервера функция НА-кластера работает штатно, перезапускает ВМ. Механизм НА независимый и работает на уровне самих узлов.

Операции с виртуальными машинами

Установка виртуальной машины из ISO образа

После установки VMmanager 6 доступен репозиторий с операционными системами, из которых можно создавать ВМ. Также есть вкладка, где можно подключить свой репозиторий. Насколько можно понять из интерфейса, такой способ создания ВМ является основным в продукте. Это непривычно — обычно администратор создает библиотеку ISO и выполняет установку оттуда. 

Иными словами, в VMmanager присутствует некоторый гибрид библиотеки ISO и образов ВМ. 

15cce36c6af6f6271163b1596e50cfb6.png

При создании я смог выбрать кастомную конфигурацию ВМ в части количества и размера дисков, CPU, RAM, ограничений и лимитов.

9180ef6c468e2203f4e344b8b2d7491a.png96a8c49585752539a2ea3611adbf4018.png

Первое создание ВМ заняло 10 минут, каждое повторное создание занимало меньше времени. Подозреваю, что система кэширует создаваемые ВМ. 

Попробовал установить ВМ из ранее предоставленного мне ISO с Астрой. Для этого нужно было загрузить его с ПК или через URL (я загружал с ПК). Установка из ISO занимает гораздо больше времени чем из шаблона.

Библиотеки ISO, к сожалению, нет.

Выбор метода эмуляции процессора

В настройках ВМ доступны следующие варианты эмуляции:

  • По умолчанию — эмулируется виртуальный процессор QEMU.

  • Host-model — эмулируемый процессор будет обладать теми же флагами функций, что и процессор на узле кластера.

  • Host-passthrough — эмулируемый процессор будет в точности соответствовать процессору на узле кластера хост-машины и обладать теми же флагами функций. Миграция ВМ возможна только на полностью совпадающий процессор.

Способы создания виртуальной машины

Итого, доступны следующие методы создания ВМ:

  • установка из репозитория операционных систем;

  • установка из образа, подготовленного из другой ВМ;

  • установка «пустой» ВМ с последующим подключением ISO.

Протестировал создание ВМ всеми перечисленными способами. Все сработало штатно, к документации не пришлось прибегать. Кроме одного раза. У меня не получилось создать образ ВМ с ОС Windows. В документации указано, что данная функция не доступна для ВМ с ОС Windows. Чуть позже я нашел на сайте роадмап, в котором это обещают починить к концу года.

fc692f8e2684285da24baa28d079380f.png

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

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

Из неприятного — нет операции Suspend.

7e345441f71e11fc8ad7d3d1c2a5538f.png

В параметрах присутствует более детальная информация по ВМ с более глубокими настройками.

deac77df85f822c129caa18656fe4741.png

Возможности установки Guest Agent

Используется qemu-guest-agent, если в ISO или шаблоне нет агента, его придется установить вручную или сделать скрипт, который установит его автоматически после создания ВМ.

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

Клонирование выполняется с выключением исходной ВМ, запуск клона проходит штатно. Клонирование ВМ в ОС Windows недоступно.

Функция создания из ВМ связанного клона (linked clone) есть и работает, как заявлено. Однако присутствует ряд ограничений — у связанного клона не поддерживается:

  • изменение размера основного диска;

  • смена основного диска;

  • миграция основного диска;

  • изменение порядка загрузки дисков;

  • клонирование;

  • создание образа;

  • переустановка ОС;

  • подключение и отключение ISO-образов.

Снапшоты

Снимок создается штатно, как с сохранением памяти, так и без.

Живая миграция при наличии снимков недоступна, необходимо либо удалить снимки, либо мигрировать ВМ в выключенном состоянии. Восстановить ВМ получилось из любого снимка.

4a62bcaea60d8e6f47e3b1a7bbd5172f.png

Образ виртуальной машины

Доступно создание образа из виртуальной машины. Но, как отмечал выше, это нельзя сделать для ОС Windows. При создании ВМ система выполняет «подготовку», что приводит к удалению данных пользователей и ключей SSH в момент создания ВМ.

5282116a8908443f57d6bba1abbc8183.png

Группировка виртуальных машин

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

a708890ddd9cb8af59918996c8d2dfa7.png

Живая миграция виртуальной машины

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

8ffeb2e8d07524b4a6dd0ecaa0714410.png

Горячее изменение ресурсов

Изменение ресурсов в сторону увеличения доступно для CPU и RAM. Изменение RAM без перезагрузки доступно только с шагом 1024 МБ и не более 16 раз для каждой ВМ. Добавление сетевого интерфейса выполняется без перезагрузки.

Из неприятного — столкнулся с невозможностью увеличить жесткий диск без перезагрузки.

Способы подключения к виртуальной машине

Доступ в ВМ по VNC/SPICE из веб-интерфейса или клиента работает «из коробки», дополнительных настроек не требуется. Есть возможность подключения физического USB-накопителя в виртуальную машину через SPICE.

Настройки сети

Различные типы эмуляции сетевых интерфейсов

При создании сетевого интерфейса по умолчанию используется тип virtio, однако доступно изменение эмуляции на e1000, rtl8139, virtio через API. Хорошо, что такие настройки есть, но намного удобнее было бы делать их в веб-интерфейсе системы. 

VLAN на узлах в формате Standard vSwitch

Виртуальная машина может быть помещена/перемещена в целевой VLAN. По сути, аналог VMware Standard vSwitch доступен в полной мере. Изучив сделанные сервером управления настройки на операционной системе узла, пришел к выводу, что используются linux bridge для подключения ВМ в разные VLAN. 

Агрегация линий в формате Standard vSwitch

Поддерживается работа сетевых адаптеров в режиме агрегации и балансировки. Доступны все стандартные режимы:

3499cde714d44bc348a53928be721eb0.png

Сетевые настройки в формате распределенного коммутатора (Distributed  vSwitch)

Возможность централизованно настраивать VLAN на всех хостах виртуализации отсутствует. Судя по роадмапу, обещают реализовать в этом квартале.

Поддержка функции сетевой фабрики

Сетевая фабрика реализована в настройках кластера при выборе настройки сети IP-fabric. Я не стал настраивать фабрику, но из описания понял, что ВМ получают адреса по /32 маске и далее маршруты до каждой ВМ анонсируются по iBGP в сеть. Это не стандартный подход, как с VXLAN, который я ожидал увидеть в сетевой фабрике.

Настройки хранилища

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

При создании нового диска поддерживается Virtio/IDE/SCSI. В данном случае изменение доступно в веб-интерфейсе при редактировании параметров диска ВМ.

c2dc646d7a371f66397f55e4a32fd6eb.png

«Тонкие» и «толстые» диски

Тонкие диски доступны на файловых типах хранилищ (локальное/NFS). По сути это qcow2 файлы.

У меня получилось создать виртуальные машины как с «тонкими», так и с «толстыми» дисками на одном и том же локальном хранилище. Толстые диски доступны на всех типах хранилищ. 

Возможной проблемой тут вижу невозможность создать тонкие диски на блочных хранилищах. Для этого потребуется настройка кластерной файловой системы и переход в «разряд» файловых хранилищ.

Работа с SAN хранилищами

Есть поддержка SAN СХД (scsi/iscsi/FC/FCoE). Подключение выполняется из графического интерфейса указанием пути до блочного устройства, но настройки самого устройства и параметров multipath выполняются на уровне операционной системы хостов виртуализации.

Изучив сделанные сервером управления настройки на операционной системе узла, увидел, что создается кластерная LVM для размещения дисков виртуальных машин.

Работа в гиперконвергентной среде

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

0cb7b63a83f9ed7eaf2ec15181f29670.png

Однако в документации косвенно намекают, что все-таки гиперконвергенция не поддерживается:

127dbf86d986b646b14c1c8a6d4d6a76.png

Отказоустойчивость и эффективность

НА-кластер

Отказоустойчивость включается на уровне кластера при наличии минимум трех узлов и сетевого хранилища. Судя по документации, под капотом Corosync и самописные компоненты, называемые ha-agent и hawatch.

Тестировал отказоустойчивость, выключив один из хостов, — виртуальные машины восстановились на другом хосте, на это ушло менее минуты. Также проверил работу НА с выключенным сервером управления. Работает — с НА все в порядке.

Репликация виртуальных машин

В данном продукте функции репликации виртуальных машин мне найти не удалось.

Автоматическая балансировка виртуальных машин

Балансировка есть, включается на уровне кластера, после чего можно в настройках ВМ индивидуально включить или выключить миграцию балансировщиком. В отличие от предыдущих тестируемых решений, настроек немного. Политик и режимов балансировки не нашел. Протестировал, нагрузив одну из двух ВМ на узле, через 3 минуты она переехала на свободный узел.

8dcfd1712cce247daafb3436175e16d8.pngeda368574842eeb3dcba092437374b8e.png

Системные настройки

Ролевой доступ

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

bc601482c3a11d5ad31919e9014e5565.png

Интеграция с внешними каталогами

Можно настроить интеграцию с AD/LDAP/FreeIPA из интерфейса. В результате настройки пользователи синхронизируются в систему. После синхронизации можно войти под доменной учетной записью для управления своими ВМ. Проверял у себя на стенде для AD.

bf7725ee0c533db7640225ea462af1db.png

Интеграция с почтовыми системами

Есть возможность настроить уведомления пользователей по электронной почте или в Telegram на определенные события с ВМ/узлами или на появление ошибок. 

78fd970ba10dd6349d3941aa0977972a.png

Резервное копирование сервера управления

Резервное копирование ВМ, а также конфигурации сервера управления доступно в графическом интерфейсе. 

Для виртуальных машин встроенное резервное копирование выглядит неполноценным: не нашел, где настраивать инкрементальное резервное копирование, ничего про консистентность и т.д. С другой стороны, заявлена полнофункциональная поддержка RuBackup. В привычной всем парадигме VMware продвинутые функции резервного копирования лежат на стороне внешней системы, поэтому ожидаю всего спектра функций у связки VMmanager <-> RuBackup.

b6b507d1e65f72e90044b4d3657a9120.pngf7449d47ba82fb72e6e6dc4001ada254.png

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

3501ec8e78b9781eaca240abe3703774.png

Мониторинг и удобство работы с системой

Удобство работы с системой

Очень понравился графический интерфейс, простой и удобный, а самое главное, интуитивно понятный. Мастер миграции подсказывает, куда лучше мигрировать ВМ и на каком узле сколько ресурсов осталось/останется после миграции. За все время тестов с интерфейсом этого продукта мне было работать удобнее всего. 

c761941dfb7118f4f30ac8aa464c070d.pnge8562b570e9009ea988dc233a799e14b.png

Мониторинг системы

Помимо графиков в интерфейсе нашел поддержку встроенной Grafana. В документации заявляется о наличии готовых шаблонов для Zabbix. Есть встроенная система уведомлений по почте и в Telegram.

35fbade604a246a034f2ee36e71dfe9d.pngcf56631ae028c1348e97a9644a04cbe1.png

Подведем итоги

Вот что я могу сказать про VMmanager.

Мне понравилось:

  • Интерфейс и простота работы с продуктом. У меня остались приятные впечатления от развертывания системы и выполнения всех операций в веб-интерфейсе.

  • Подход «делать свое». В VMmanager я не нашел большого объема переиспользованных технологий open source. Команда, судя по увиденному, действительно вкладывается в разработку системы.

  • Хорошая документация. Были, конечно, в ней огрехи и некоторая непоследовательность, но, в целом, использование документации, скорее, понравилось, чем нет.

  • Еще понравилось, что у производителя на сайте опубликован роадмап, а также то, что я получил поддержку, взяв просто триалку с сайта. Думаю, что это можно назвать «открытостью» производителя своим клиентам.

Мне не понравилось:

  • Я наткнулся на «детские болячки» в процессе тестирования. Иногда это неполный набор функций, например, проблемы с образами Windows, иногда «базовые» функции в продукте просто не реализованы, например, расширение диска на горячую.

  • Мне как пользователю VMware не особо привычен подход, когда система виртуализации представляет собой не монолит, а является приложением, работающим поверх операционной системы. Хотя я понимаю, что технически это ни на что не влияет.

  • Некоторые «крупные» функции пока не реализованы: распределенный коммутатор, ролевая модель и т.д.

VMmanager отличается от протестированных до этого продуктов и отличия эти фундаментальные. Думаю, что основная причина — это подход собственной разработки с минимумом open source. Стал бы я использовать систему в продакшене? Думаю, что я бы провел еще более глубокие тесты, в частности, по производительности и стабильности. Проверил бы заявляемые возможности по работе с 22 000+ ВМ в одной инсталляции, 50+ кластеров, 350+ узлов в кластере.

Именно функций в продукте мне хватило. Является ли этот продукт перспективным? Однозначно да, если темпы разработки сохранятся. К тому же, насколько я понял по информации на сайте, сейчас VMmanager находится в процессе получения сертификата ФСТЭК по новым требованиям к системам виртуализации, а значит, заказчики смогут использовать решение в системах с особыми требованиями к безопасности.

Если у вас остались вопросы, задавайте их в комментариях, постараюсь ответить!

© Habrahabr.ru