Pull to refresh

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

Reading time13 min
Views14K

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

Сегодня будем внезапно тестировать SpaceVM. Внимательный читатель заметит, что этой системы в списке лидеров не было. Как же она стала участником эксперимента? Причина проста — мне банально не удалось достать дистрибутив ПК «Звезда», поэтому я решил заменить ее на SpaceVM. Не буду вас утомлять — давайте посмотрим, что внутри и как это работает!

Изображение с сайта производителя
Изображение с сайта производителя

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

Кратко об SpaceVM

Итак, вот что известно о решении.

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

Разрабатывает решение ООО «ДАКОМ М». Я не нашел никаких официальных комментариев или подтверждений, но у меня складывается довольно однозначное впечатление о непосредственной связи продуктов ECP Veil от НИИ «Масштаб» и SpaceVM от ООО «ДАКОМ М». 

Помимо SpaceVM в экосистему Space входит виртуализация рабочих столов Space VDI и клиент подключения к инфраструктуре VDI с поддержкой операционных систем Windows и Linux.

Скриншот из буклета производителя
Скриншот из буклета производителя

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

Скриншот из буклета производителя
Скриншот из буклета производителя

Также производитель позиционирует SpaceVM как замену платформам серверной виртуализации от VMware и Microsoft: по информации из буклета, их функциональные возможности реализованы на 80%.

Скриншот из буклета производителя
Скриншот из буклета производителя

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

В нашем цикле уже был продукт с похожим подходом — это VMmanager от ISPsystem. Подробнее про его тест можно прочитать по ссылке.

Что ж, давайте посмотрим, как работает SpaceVM, на практике.

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

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

  • В тестировании использовалась версия 6.3.1.

  • Ситуация та же, что и с другими решениями — со всеми особенностями SpaceVM я разбирался по ходу дела. Есть вероятность, что знакомый с этой системой специалист справился бы с задачами тестирования быстрее.

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

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

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

Документация ведется с помощью инструмента «Material for MkDocs», есть светлая и темная темы — за это отдельное спасибо. Также документация доступна оффлайн после установки. Открывается с раздела «Быстрый старт», присутствует сразу несколько руководств:

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

  • Руководство оператора;

  • REST API;

  • CLI;

  • Ответы на частые вопросы. 

Благодаря разделу «Быстрый старт» с установкой проблем не возникло. 

Документация продукта SpaceVM оставила приятные впечатления.

Установка SpaceVM возможна в трёх вариантах:

  • установка контроллера;

  • установка сервера виртуализации;

  • установка контроллера + сервера виртуализации

Каждый из этих вариантов доступен в ручном или полуавтоматическом режиме.

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

Установка выполняется из единого ISO-образа. Используется не самое свежее ядро Linux версии 5.10. 

В документации есть раздел «Совместимое оборудование», связано это с тем, что SpaceVM может управлять сервером через IPMI.

Управляющий сервер Controller может быть установлен отдельно или в режиме Controller + Node. В одной инсталляции может быть несколько контроллеров, репликация между контроллерами настраивается отдельно. То есть возможность резервирования контроллеров средствами самих контроллеров присутствует. 

Установка контроллера в виртуальную машину на узел SpaceVM является экспериментальным режимом. Производитель просит все выявленные ошибки заводить в Space Bugzilla.

Что насторожило. Супервизор узла — это python-сервис в SpaceVM под именем в CLI node-engine. Супервизор контроллера — это python сервис в SpaceVM под именем в CLI controller-engine. Думаю, вы знаете, что код на python считается не самым быстрым. Соответственно, возникает логичные вопросы. Как поведет себя система при большой инсталляции и высокой нагрузке? Потребует ли это более производительного железа? К сожалению, условия моего тестирования не отвечают на эти вопросы, но, возможно, кто-то из авторов проведет отдельные нагрузочные тесты.

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

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

При установке в плоской сети требуется указать только IP-адрес узла. Мне пришлось немного поискать пароль пользователя root, используемый по умолчанию при полуавтоматической установке, — им оказалось слово «bazalt».

Необходимые компетенции при установке – умение читать ? 

Однако производитель отдельно отметил «Требования к квалификации специалистов». Специалист, производящий установку SpaceVM, должен обладать знаниями, соответствующими специализации Администратор Linux, Администратор сетей передачи данных в областях:

  • установка ОС Linux семейства Debian/Ubuntu;

  • настройка ОС Linux семейства Debian/Ubuntu;

  • настройка и эксплуатация систем на базе Linux KVM;

  • основы построения сетей передачи данных TCP/IP, VLAN, настройка поддержки Jumbo Frame, LACP, VLAN на коммутаторах.

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

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

Дистрибутив поставляется в виде ISO-образа, установка возможна как в открытом, так и в закрытом контуре. 

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

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

Некоторые действия при работе с SpaceVM можно выполнять в терминале (CLI) узлов. Получить доступ к CLI можно несколькими способами: подключившись к узлу по протоколу SSH, в веб-интерфейсе или напрямую, используя IPMI сервера.

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

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

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

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

  • Шаг 1: указываем количество vCPU, режим эмуляции размер RAM, ОС ВМ, выбираем чипсет, тип видеокарты и объем памяти, количество мониторов, тип звуковой карты и кодек.

  • Шаг 2: добавляем диски ВМ.

  • Шаг 3: подключаем ISO образы и монтируем CD-ROM.

  • Шаг 4: добавление сетевых интерфейсов.

  • Шаг 5: подтверждение создания ВМ.

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

Присутствует выбор режима определения процессора, при выборе режима «custom» появляется возможность указать модель процессора. 

Из карточки ВМ доступна тонкая настройка процессора.

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

Доступна библиотека ISO-образов, образы могут быть загружены как с компьютера администратора, так и по URL. Есть возможность разместить библиотеку на локальных дисках хостов или на общем хранилище. При создании из ISO можно подключить несколько устройств CD-ROM.

Также ВМ можно создать из ранее подготовленного шаблона. Готовых шаблонов в комплекте поставки нет.

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

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

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

Для установки Guest-agent поставляется отдельный ISO-образ. Образ включает qemu_guest_agent, virtio драйверы и утилиты для SPICE.

В SpaceVM qemu-guest-agent используется для:

  • получения сетевых адресов, hostname;

  • корректного выключения ВМ вместо посылания ACPI команд;

  • «замораживания» файловой системы перед созданием снимка (то есть и при создании резервных копий ВМ);

  • ввода/вывода из AD;

  • установки hostname;

  • добавления SSH-ключей;

  • любых пользовательских команд и скриптов при необходимости.

У инсталлятора есть графический интерфейс как для Linux, так и для Windows.

Статусы служб агента отображаются отдельно, если гостевой агент установлен и работает.

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

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

Клонирование происходит без остановки ВМ. 

Снапшоты

Создание мгновенных снимков присутствует, делать это можно из карточки ВМ, в том числе с сохранением состояния оперативной памяти.

Есть удобная фича — построение дерева снимков состояний.

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

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

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

Присутствует отдельный раздел управления шаблонами ВМ. 

Cloud-init присутствует и подробно описан в документации. Конфигурацию можно отредактировать в карточке ВМ. 

При включении сloud-init для ВМ создается ISO-образ, содержащий два YAML-файла (user-data и meta-data) и монтирующийся через виртуальный CD-ROM (через первый свободный имеющийся или создаваемый новый). Примеры файлов приведены в документации.

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

SpaceVM поддерживает функцию создания связного клона из образа ВМ.

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

Группировка ВМ в интерфейсе возможна по тегам. Теги предварительно создаются из меню Настройки → Теги. 

После создания тега можно применить его к ВМ и отфильтровать список ВМ по тегу. Дерево тегов отображается справа от списка ВМ.

Одна сущность может иметь несколько тегов. Теги доступны для локаций, кластеров, серверов виртуализации и других сущностей. 

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

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

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

Изменить на горячую настройки процессора у меня не получилось — появлялась ошибка с сообщением:

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

При включенном питании ВМ изменение RAM доступно только на объем, кратный 256 МБ.

Подключение диска перезапуска ВМ не требует. Удаление диска возможно только при выключении ВМ.

Изменение размера диска доступно на горячую из карточки диска.

Добавление сетевых интерфейсов происходит без перезапуска ВМ из карточки.

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

Подключение к консоли ВМ доступно из карточки ВМ. 

При подключении по SPICE присутствуют дополнительные возможности по работе с ВМ.

Трансляция USB-устройств

Для подключения USB-устройств в карточке ВМ также присутствует отдельное меню.

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

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

Имеется 4 варианта выбор из раскрывающегося списка: virtio, e1000, rtl8139, vmxnet3. vmxnet3 используется при импорте ВМ из VMware.

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

Настройка VLAN происходит при создании виртуальной сети. Мастер состоит из 5 шагов. На втором шаге есть возможность указать, для каких узлов производится настройка.

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

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

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

  • аctive-backuр — режим резервирования. Резервный канал не используется.

  • balance-tcp — режим балансировки с использованием LACP.

  • balance-slb — режим простой балансировки на основе MAC и VLAN.

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

В терминологии SpaceVM это называется «Внешние сети». Каждое подключение к внешней сети представляет собой комплекс из:

  • внутреннего виртуального коммутатора;

  • внешнего виртуального коммутатора;

  • патч-соединения между ними;

  • физического или агрегированного интерфейса, подключенного к внешнему виртуальному коммутатору;

  • опционально — внутреннего интерфейса, подключенного к внутреннему виртуальному коммутатору, созданному на каждом вычислительном узле, подключаемом к внешней сети. 

Добавление происходит также через мастер.

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

Функционал не тестировался в виду ограниченности стенда.

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

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

В карточке диска возможно изменить тип шины диска, либо указать при создании. Доступны четыре режима: virtio, ide, scsi, sata.

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

Поддерживаются как тонкие, так и толстые диски. Из интересного нашел операцию «Разрежение» — с ее помощью можно уменьшать размер уже созданных дисков или сделать из «толстого» диска «тонкий». Находить и разрежать свободное пространство возможно в большинстве файловых систем (например, ext2/3/4, btrfs, NTFS и т. Д.) и в физических томах LVM.

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

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

Система поддерживает различные форматы: LVM, файловая система. 

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

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

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

После создания транспорта можно добавить тома ZFS. Функция расширения доступна для ZFS с типом пула stripe. Операция «приклеивает» дополнительные устройства к имеющемуся хранилищу.

У себя на стенде этот режим не тестировал, но о нем заявлено в документации, а также встречаются соответствующие пункты меню в интерфейсе.

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

HA-кластер

Режим высокой доступности настраивается в карточке ВМ. Присутствует возможность настроек определения недоступности ВМ и настроек восстановления. Функционал НА будет корректно отрабатывать только при наличии хотя бы одного живого сервера управления. Это представляется некоторым минусом реализации НА-кластера.

Можно реализовать высокую доступность на 2-х узлах, однако в этом случае на каждом узле должен быть установлен сервер управления. 

Для полноценной работы отказоустойчивого кластера настраивается «Cвязность и ограждение». Серверы в составе кластера должны поддерживать управление по протоколу IPMI v2. Из-за ограничений стенда в части IPMI полноценно НА я не проверял.

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

Функция репликации в SpaceVM есть. Для создания репликаций ВМ нужно создать задачу по расписанию с действием replication_sync. Параметр «Периодичность» отвечает за частоту синхронизации реплики с рабочей ВМ.

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

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

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

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

Имеются преднастроенные 4 типа ролей:

  • Администратор — доступ ко всем настройкам, кроме тех, которые доступны только администратору безопасности;

  • Администратор безопасности — доступ к настройкам безопасности, авторизации;

  • Оператор ВМ — доступ к ВМ и смежным ресурсам системы (только Операторы ВМ могут владеть ресурсами системы);

  • Только чтение — как администратор, но только чтение.

Можно создавать свои роли для пользователей.

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

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

Есть возможность настроить синхронизацию пользователей с внешними каталогами.

Тип службы каталогов (выбор из раскрывающегося списка) может принимать значения: Active Directory, FreeIPA, OpenLDAP, ALD, RADIUS.

При входе под учетной записью из каталога нужно выбрать соответствующую настройку в окне входа.

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

Во вкладке SMTP перечислены настройки SMTP-сервера, необходимые для передачи почтовых сообщений об ошибках SpaceVM пользователю:

  • адрес сервера;

  • порт;

  • имя SMTP пользователя | email;

  • email для отправки текстового сообщения;

  • email для получения текстового сообщения;

  • пароль SMTP приложения;

  • использовать сохраненные имя/email и пароль;

  • TLS;

  • SSL.

Можно использовать как внешний сервис так и внутренний, расположенный в сети управления. 

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

Для отказоустойчивости сервера управления рекомендуется настроить репликацию контроллера. Переключение контроллера из slave в master осуществляется в ручном режиме. После перевода резервного контроллера в основной будет восстановлена работа системы очередей постановки задач, в том числе «Высокая доступность» и «Живая миграция», а также возможность авторизации и работы в веб-интерфейсе SpaceVM.

Также рекомендуется настроить резервное копирование БД контроллера.

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

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

За создание ВМ я бы поставил твердую четверку. 

Особых сложностей в процессе не возникло. Однако необходимость каждый раз пролистывать мастер из 5 шагов с несколькими диалоговыми окнами на каждом без возможности сохранить настройки — это минус. На создание одной пустой ВМ требуется 5-10 минут, после создания необходимо установить ОС. 

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

Список ВМ довольно информативен — присутствуют теги и возможность фильтрации.

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

Мониторинг присутствует — для этого необходимо перейти на соответствующую вкладку. Отображает всю необходимую информацию.

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

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

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

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

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

Итак, попробую кратко суммировать опыт и впечатления, полученные в ходе тестирования SpaceVM.

Что понравилось:

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

  • Подход с разработкой собственного продукта. Всегда радует, когда команда делает что-то свое и минимизирует переиспользование open source решений. На мой взгляд, это самый перспективный подход.

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

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

  • Существуют некоторые архитектурные и функциональные особенности, которые, на мой взгляд, следовало бы устранить. В частности, зависимость НА-кластера от управляющего сервера, отсутствие библиотеки готовых операционных систем, необходимость использования кластерных файловых систем для разделяемой системы хранения. 

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

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

Задамся аналогичным вопросом, который был после тестирования похожего по подходу продукта VMmanager: стал бы я использовать систему в продакшене? Скорее, да. Я бы однозначно провел нагрузочное тестирование и более полно проверил бы работу НА-кластера, но продукт вызывает доверие.

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

Tags:
Hubs:
Total votes 15: ↑11 and ↓4+10
Comments21

Articles