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

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

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

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

59818ee67b0525c66026743fb6ca6543.png

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

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

Кратко об Альт

Итак, «Альт Виртуализация» — серверный дистрибутив на базе ядра Linux для предоставления функций виртуализации и контейнеризации в корпоративной инфраструктуре от российского разработчика «Базальт СПО». Входит в Единый реестр российского ПО, впрочем, как и другие «испытуемые».

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

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

Источник: https://www.basealt.ru/alt-virtualization

«Альт Виртуализация» поддерживает несколько сценариев использования:

  • базовая виртуализация (для контура с небольшим количеством ВМ) на базе libvirt;

  • классическая виртуализация с изолированными виртуальными машинами и контейнерами на базе проекта ProxmoxVE;

  • облачная виртуализация на базе OpenNebula;

  • контейнеризация на базе Docker, Podman, LXC/LXD.

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

Тестирование происходило в следующих условиях.

  • Тестировалась версия 10.1 Выбранный мной сценарий — классическая виртуализация с изолированными виртуальными машинами и контейнерами на базе Proxmox. 

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

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

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

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

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

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

8261320b0f1723b094ed152405b3b042.png

А вот навигация неудобная — во время тестирования мне приходилось регулярно возвращаться к содержанию.

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

173b48b43e6309a8a1e803a62e487e58.png

После установки из интерфейса доступна документация Proxmox VE Administration Guide непосредственно с инсталляции, на английском языке.

Также есть ссылки на ресурсы сообщества «Альт Линукс».

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

Для тестирования использовался дистрибутив Альт Сервер Виртуализации 10, который поставляется в виде загрузочного ISO-образа и не требует предварительной установки ОС. В этом смысле подход привычный, как у VMware ESXi.

При установке возможно выбрать профиль доступны:

  • сервер управления Opennebula;

  • вычислительный узел Opennebula KVM;

  • вычислительный узел Opennebula LXD;

  • Виртуальное Окружение Proxmox (его я и выбрал согласно рекомендациям производителя);

  • базовая виртуализация;

  • Docker.

На узел виртуализации устанавливается ОС Альт с Proxmox Virtual Environment (PVE). PVE — это средство управления узлами виртуализации. 

Так как используется кластерная файловая система (pmxcfs), для управления кластером можно подключиться к любому узлу. Каждый узел может управлять всем кластером. Иными словами, каждый узел является и платформой управления, и узлом виртуализации. Такая архитектура похожа на то, что реализовано у Microsoft Hyper-V. 

3c4af6fdf8ac2a18fac568dd66d3dd7b.png

Очень важное архитектурное ограничение — поддержка лишь одного кластера. По сути, узлы, которые будут в одном кластере, логически объединяются между собой и на каждом из них запускается PVE. Для такого кластера появляется веб-интерфейс управления. Если мы захотим создать еще один кластер, это будет другая группа узлов со своими экземплярами PVE и своим веб-интерфейсом. Между собой кластеры связаны не будут.

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

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

Процесс развертывания платформы занял незначительное время: на установку и первоначальную настройку одного узла у меня уходило примерно 15–20 минут. От специалиста потребуется знание основ работы с ЭВМ и умение читать документацию. Документация содержит отдельные части, посвященные работе в Linux, в частности — Часть XI. Основы администрирования Linux. В целом, нельзя не отметить, что процесс установки намного проще, чем у zVirt.

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

Платформа разворачивается с одного накопителя, все необходимые пакеты присутствуют. Также есть возможность развертывания в изолированном (закрытом) контуре. При установке в закрытом контуре предлагается установить или настроить сервер NTP.

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

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

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

При внесении деструктивных изменений на узле можно полностью нарушить работоспособность всего кластера, поскольку каждый узел кластера одновременно является и управляющим узлом, и узлом виртуализации. У меня случилась не очень приятная ситуация: кластер был уже собран, и мне пришлось выключить его на некоторое время из-за отключения электричества. После включения я попытался зайти на управляющий сервер, однако при попытке любой операции с ВМ интерфейс выводил ошибку cluster not ready — no quorum.  

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

34866bce51245eeb5bac39597466d354.png

На момент отсутствия сервера в кластере лечится это дело следующим образом:

#pvecm e 1

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

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

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

При создании виртуальной машины можно гибко настроить характеристики CPU, Disk, RAM. При задании объема RAM приходится пользоваться калькулятором, поскольку нет возможности изменить единицы измерения.

175c9abc58026305f8aff5a4c60e47cf.png31b2c99f9dde8d903226752a3c9379e2.pngcd4b9bcae66d3456e2b55ecc9848de8f.png

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

Функция выбора режима эмуляции процессора доступна из веб-интерфейса платформы и позволяет указать вплоть до требуемых инструкций CPU.

775db0b561810c582f6e409a86b9f9f8.png

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

Виртуальная машина может быть создана с помощью мастера. Установка ОС выполнятся с помощью библиотеки ISO-образов, при этом ISO должны быть предварительно загружены в библиотеку. Загрузка возможна как с локального компьютера, так и по URL.

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

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

Базовые функции доступны из карточки ВМ, поддерживаются все стандартные функции, также функции доступны из контекстного меню:

2ce2a9fe1746dd475aba8e74fa6ea615.png

Если веб-интерфейс PVE недоступен, можно управлять ВМ через командную строку с помощью утилиты qm.

qm — это инструмент для управления ВМ Qemu/KVM в PVE. Утилиту qm можно использовать для создания/удаления ВМ, управления работой ВМ (запуск /остановка/ приостановка/ возобновление), установки параметров в соответствующем конфигурационном файле, а также для создания виртуальных дисков.

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

Guest Agent поддерживается, необходимо установить и настроить в гостевой ОС самостоятельно. Использование агента включается в параметрах ВМ.

2a438e4fbe9f10eb18dfaba0ae672ee4.png

В документации информации об использовании Guest Agent найти не удалось. При установке и запуске агента в интерфейсе управления ВМ добавляется информация об IP- и MAC-адресах. 

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

Решение поддерживает клонирование ВМ, создание клона происходит без выключения. Также есть возможность создания связанных клонов — linked clone в арсенале Proxmox «Альт Виртуализации» есть

Снапшоты

Есть возможность создания мгновенных снимков с сохранением оперативной памяти. Живая миграция ВМ поддерживается даже при наличии мгновенных снимков.

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

Какие-то проблемы и огрехи при работе со снапшотами не были выявлены. 

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

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

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

Группировка ВМ возможна по папкам — в платформе данная сущность называется пул.

9563697c079453022f8cb85817a97f3b.png

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

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

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

Возможность горячего изменения ресурсов есть. Также пользователь может указать, какие ресурсы можно будет добавлять в таком режиме. По умолчанию включены Диск, Сеть, USB.

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

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

Подключение по VNC доступно по умолчанию. Подключение по SPACE требует изменения дисплея ВМ с перезагрузкой. Встроенного клиента SPACE нет.

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

Проброс USB работает штатно, есть возможность выбрать конкретное устройство или указать порт.

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

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

Изменение режимов присутствует, можно выбрать один из режимов.

5ee5dd57dedab97de006c6b4b4a48ae8.png

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

Для использования тегов VLAN в настройках ВМ необходимо включить поддержку VLAN для моста (Linux Bridge). Если используется OVS Bridge, никаких дополнительных настроек не требуется. Настройка VLAN осуществляется из карточки сетевого интерфейса виртуальной машины. Для этого необходимо указать тег VLAN в свойствах сетевого интерфейса ВМ. Это менее удобно, чем все привыкли в VMware с использованием порт-групп.

467cc2164f1e109a1bf4ab1621384a4a.png

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

Имеется возможность агрегации интерфейсов, но только при использовании Open Virtual Switch (OVS). C OVS можно выбрать один из четырех режимов работы, в том числе LACP.

78246b3e7b9d9f2b1296dd7c55a29e9b.png

OVS доступен «из коробки» и не требует дополнительных трудозатрат в установке. 

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

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

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

Фабрику можно реализовать с помощью того же OVS. Настройку такого сценария я не выполнял из-за трудозатратности, но документация говорит, что фабрика есть.

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

Система поддерживает различные типы хранилищ. Это могут быть как файловые, так и блочные хранилища. Для блочных хранилищ используется установленный поверх LVM. Возможно использование thin-LVM, что позволяет реализовать «тонкие» диски для блочных хранилищ. Для файловых хранилищ диски хранятся в формате qcow2 и являются «тонкими» из коробки.

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

752e353fc88ff9e2484f34f0cc675a4d.png

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

Ниже приведен список поддерживаемых типов хранилищ.

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

Есть возможность задать тип эмуляции при создании диска.

3a5bd645733e206508cdcd8deb07e8ba.png

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

Как описал выше, имеется поддержка «тонких» дисков. Реализована за счет технологий thin-LVM и формата диска qcow2.

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

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

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

НА-кластер

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

Режим НА можно включить и на 2-х узлах, однако система обязательно предупредит, что рекомендуется минимум 3 узла. Это, кстати говоря, не очень частая, но весьма полезная функция отечественных систем виртуализации. 

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

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

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

Балансировка возможна только внешними средствами или скриптами — об этом предупреждает производитель. Поскольку данный функционал не тестировался, упоминать и рекомендовать какое-то конкретное решения я не буду. Поисковый запрос выдает достаточно результатов на GitHub. Я бы считал, что аналога VMware DRS в продукте нет.

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

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

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

0aa0f18d550e49387eb083b52c0282fb.png

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

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

00313ddfb352db09caf35b6bed4f6abe.png

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

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

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

Сервер управления как таковой отсутствует, при выходе из строя одного узла можно осуществлять управление с другого. Также производитель рекомендует настроить HAProxy для отслеживания доступности узла управления. Мне нравится такой архитектурный подход в продукте, так как он полностью снимает вопрос «защиты» управляющего сервера от выхода из строя и обеспечивает высокий уровень надежности системы. 

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

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

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

Процесс создания ВМ занимает несколько минут, однако после этого вам придется самостоятельно установить на нее ОС из подключенного ISO.

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

Общий список ВМ без изысков — представлен в виде обычной таблицы.

179d14e08dd9ed3ab0be977f11a451ea.png

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

Отображение информации об узле — не особо красочное, но достаточно информативное.

efd63e3aa8c80e28758668e825af639d.png

Присутствует история заданий, при этом достаточно информативная.

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

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

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

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

  • Простота и удобство установки. Все прошло штатно и довольно быстро, что-то отдельно устанавливать не требуется.

  • Неплохая документация за счет очень широкого комьюнити Proxmox в интернете.

  • Наличие большинства функций, к которым привыкли администраторы VMware.

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

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

  • Это Proxmox. Вклад компании «Базальт СПО»— это, по сути, только поддержка. Я не смог узнать, что российский разработчик добавил в продукт от себя, кроме логотипа в верхнем левом углу веб-интерфейса.

  • Невозможность создания нескольких кластеров в одной системе и невозможность миграции между кластерами.

  • У «Альт СП» есть сертификат соответствия (№3866), который удостоверяет, что ОС соответствует требованиям по безопасности информации. Однако я так и не смог понять, будет ли получен сертификат ФСТЭК по требованиям безопасности информации к средствам виртуализации на «Альт Виртуализацию». На мой взгляд, тут существуют определенные риски, так как по документации складывается впечатление, что основной фокус разработчика — на операционную систему, а не на виртуализацию. А подготовка ко ФСТЭК требует доработок.

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

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

Вывод я бы сформулировал просто. Лично мне понравился Proxmox, даже больше, чем oVirt/zVirt. Насчет вклада «Базальт СПО» в этот продукт — решать непосредственно заказчикам, хотя компания открыто говорит, что доработкой решения она не занимается, а лишь делает стабильные сборки. 

На мой взгляд, решение подойдет для небольших инсталляций, где не более одного кластера и не планируется наличие сертификата ФСТЭК по требованиям безопасности информации к средствам виртуализации.

Буду рад, если кто-то поделится собственным опытом работы с «Альтом». А если у вас остались вопросы, задавайте их в комментариях, постараюсь ответить.

© Habrahabr.ru