Архитектура платформы виртуализации vStack и ее технические возможности
Архитектура платформы виртуализации vStack и ее технические возможности
Автор: ITGLOBAL
Дата: 08/09/2023
|
В последние годы появилось большое число российских платформ виртуализации. Одна из них — vStack, решение с оригинальным стеком технологий. Сегодня мы расскажем об этой платформе, которая надежно зарекомендовала себя среди множества корпоративных заказчиков. В первую очередь, мы будем говорить об архитектуре платформы и о том, как она устроена с технической точки зрения.
Концептуальный гайд
vStack — это гиперконвергентная платформа (HCI), в которой физические серверы — это универсальные единицы, реализующие программно-определяемые слои хранения, вычисления и сети.
То есть HCI-платформа строится только на базе серверов и не требует отдельных компонентов, например, систем хранения данных (СХД), реализующих только часть функциональности общей IT-инфраструктуры.
Управляется HCI как единая модульная система из единой панели. Гиперконвергентный подход упрощает управление, обеспечивает гибкость и масштабируемость.
На схеме представлены гиперконвергентная и конвергентная инфраструктуры.

Сравнение инфраструктур
Конвергентное решение требует развертывания оборудования разных вендоров. В отличие от этого, HCI-инфраструктура — решение, где все функции выполняются кластером унифицированных x86-серверов с дисками. Такой подход позволяет значительно упростить инфраструктуру и снизить затраты на оборудование, поддержку и ресурсы ЦОД.
Физические серверы (узлы в терминологии HCI) объединяются в кластер под управлением vStack, способный обеспечить совместное использование ресурсов каждого из физических серверов.
На каждом узле кластера выполняются все три основные роли: хранение, сеть и вычисление, или в терминологии гиперконвергенции SDS, SDN и SDC.
Ключевой атрибут кластера — избыточность. Она может быть двух типов:
- 2N — полное резервирование, ресурсов в два раза больше, чем нужно;
- N+1, N+2 или N+3 — горизонтальное масштабирование N компонентов. При этом +1, +2 или +3 показывает, сколько узлов может быть подвергнуто резервированию без остановки функционирования решения.
Избыточность позволяет заменить хост, вышедший из строя. Резервирование основных функций узла кластера (слоев SDS, SDN, SDC) при аварийных ситуациях другими узлами называется резервированием элементов инфраструктуры или Failover-ом. Failover является автономной процедурой и выполняется кластерным фреймворком самостоятельно.
Резервирование в слое хранения обеспечивается решением RAID-Z и выполняется в контексте пула хранения, который оперирует пространством из дисков всех узлов. Избыточность дисков в пуле полностью идентична избыточности кластера, например, при кластере из семи узлов с избыточностью 2, пул будет оставаться в работоспособном состоянии при наличии в нем не менее пяти дисков.
Минимальное количество пулов в кластере равно количеству узлов в кластере.
Виртуальная машина (ВМ) объединяет три ключевых ресурса кластера: SDS, SDN, SDC.
Архитектура решения
Наложение слоев
1. Физический слой
В этом слое находятся только базовые физические элементы — серверы и их сетевая связность.
2. Кластерный слой
Кластерный слой обеспечивает группировку нескольких физических или виртуальных серверов вместе для выполнения определенных задач.
Формируется программно решением vStack. В этом слое располагаются ресурсные примитивы (например, локальные диски узлов), используемые другими слоями.
3. Слой хранения — SDS
На основе ресурсных примитивов из кластерного слоя формируется слой хранения (SDS). Технологическая основа SDS — файловая система ZFS. Единица грануляции слоя SDS — пул, собранный из дисков каждого узла, имеющий резервирование RAID-Z и избыточность, равную избыточности кластера (n+2, n+3, etc). В момент времени пул работает на конкретном узле кластера.
Возможности слоя хранения:
- Компрессия и редупликация
- Внутренняя целостность данных
- Клоны, снимки
- Самовосстановление данных
- Транзакционная целостность
Слой хранения имеет свои лимиты по размеру: 1 zettabyte, при этом поддерживает неограниченное количество файловых систем и блочных устройств. Для всех промышленных инсталляций рекомендуется использование избыточности типа N+2 или выше (платформа поддерживает N+1, N+2 и N+3).
На схеме изображен пятиузловой кластер. Вертикальные контейнеры — пулы, горизонтальные — узлы кластера.

Пятиузловой кластер
4. Слой сети — SDN
vStack предоставляет три варианта технологического обеспечения виртуальных сетей:
- VLAN
- VXLAN
- GENEVE (собственная имплементация).
Конкретный экземпляр виртуальной сети базируется на распределенном коммутаторе. Реализация самой виртуальной сети — наша собственная разработка, с сентября 2020 года работающая в промышленной эксплуатации на большом количестве кластеров.

Программно-определяемая сеть
Каждый экземпляр сети имеет следующие свойства:
- Собственный MTU
- Поддержка jumbo frames
- Поддержка TSO/GSO
- Поддержка TCP MSS clamping «из коробки»
- Поддержка path mtu discovery «из коробки»
Лимиты SDN:
-
Максимальное количество сетей — 65536
-
1 048 576 портов на коммутаторе одного хоста
-
Производительность виртуального порта ВМ: 22 GBps / 2.5Mpps
5. Слой вычислений — SDC
Слой SDC работает на базе гипервизора второго типа — bhyve. Выбор продиктован производительностью bhyve — она значительно выше, чем у популярных гипервизоров. Кроме того, его оптимизация до сих пор продолжается, а практически все средства аппаратной акселерации виртуальных вычислений поддерживаются на современных процессорах Intel. Также bhyve поддерживает работу в условиях CPU overcommit, что критически важно для облачных решений.

Программно-определяемые вычисления (SDI)
Экземпляр SDC — виртуальная машина, на которой могут быть установлены следующие ОС:
-
FreeBSD
-
Linux
-
Windows 2019/2022
Диски виртуальной машины создаются на том же пуле, на котором была создана она сама. Вследствие этого возникает явная связь виртуальной машины (SDC) и пула (SDS), на котором она была создана. Явный характер этой связи в той же степени делает неявным привычную связь виртуальной машины и узла, CPU/RAM которого эксплуатируются слоем SDC. В случае штатной миграции пула, где расположена ВМ, на другой хост, и сама ВМ начнет использовать ресурсы хоста, на котором работает пул.
В процессе создания ВМ существуют следующие возможности выбора пула, ресурсы которого будут использоваться:
-
«Селекторы» — автоматический выбор пула, на котором наименьшее совокупное значение параметров:
-
CPU;
- RAM
- Дисковое пространство
- Явное указание пула.
Для обеспечения комфортной работы с платформой в слое вычислений реализованы следующие возможности:
-
Поддержка спецификации virtio для сетевых портов, дисков и другой периферии (rnd, balloon и т.п.)
-
Создание виртуальных машин с возможностью их гибкой кастомизации при помощи облачных образов (cloud images)
-
Возможность кастомизации гостевых ОС в облачных образах с помощью стандарта cloud-init для unix-подобных систем и cloud-base для windows
-
Поддержка возможности лимитирования производительности сетевого порта (MBps) и диска (IOPS, MBps) в реальном времени, а также лимитирования ресурсов vCPU в реальном времени
-
Поддержка создания снимков ВМ — в отличие от других решений, снимки vStack содержат конфигурацию виртуальной машины, в т.ч. сетевых портов и их IP/MAC-адресов
-
Также в платформе существует автономный и самодостаточный механизм обеспечения работы в условиях CPU overcommit, который позволяет достигать высоких значений экономической эффективности в слое SDC (до 900%)
Легковесность vStack — ключевая причина низкого значения CPU Overhead (снижение производительности виртуализированного сервера относительно физического вследствие значимости накладных расходов гипервизора).
Топологии кластеров
Минимально возможная топология кластера: n+1. При этом минимальное количество узлов — 3. Также поддерживаются топологии n+2 и n+3. Количество дисков определяется топологией кластера: минимальное количество дисков для разделяемых данных равно количеству узлов. Максимальное количество дисков — 24.
Дополнительная информация о платформе vStack доступна на сайте разработчика.
|