1. Архитектура сервиса
Слои сервиса
Физический слой
В слое организована сетевая связность базовых физических элементов (серверов).
Кластерный слой
В слое работают службы обеспечения программно-определяемых слоев:
- SDS (Software Defined Storage),
- SDN (Software Defined Networking),
- SDC (Software Defined Computing).
Главная задача слоя — обеспечение резервирования элементов инфраструктуры до узлов. Резервирование элементов инфраструктуры (Failover) — процедура резервирования при аварийных ситуациях. Процедура проводится кластерным фреймворком, поэтому не требует вмешательства человека.
Слой формируется в виде работы кластерного ПО на каждом из узлов.
SDS
Слой SDC работает на базе гипервизора второго типа (bhyve). Производительность bhyve значительно выше, чем у других популярных гипервизоров. Кроме того, его оптимизация до сих пор продолжается, а практически все средства аппаратного ускорения виртуальных вычислений поддерживаются на современных процессорах Intel. Также гипервизор bhyve поддерживает работу в условиях CPU overcommit, что критически важно для облачных решений.
Экземпляр SDC – виртуальная машина, являющаяся совокупной сущностью со следующими элементами:
- CPU/RAM;
- Виртуальные сетевые порты (подключенные к слою SDN);
- Виртуальные дисковые устройства (подключенные к слою SDS).
РИСУНОК 2. SDC – SOFTWARE DEFINED COMPUTING
На текущий момент для ВМ в каталоге доступны следующие образы гостевых ОС:
- FreeBSD;
- Linux (OEL/CentOS/Ubuntu/Debian и т.д.);
- Windows 2016, 2019, 2022.
Работоспособность решения vStack с другими гостевыми ОС не исключается из-за небольших требований к ним (возможность загрузки в режиме UEFI, наличие драйверов virtio и наличие cloud-init).
Диски виртуальной машины создаются на том же пуле, на котором была создана эта виртуальная машина.
В процессе создания ВМ существуют следующие возможности выбора пула, ресурсы которого будут использоваться:
- «Селекторы» – автоматический выбор пула, на котором наименьшее совокупное значение таких параметров, как:
- CPU;
- RAM;
- дисковое пространство.
- Явное указание пула
Легковесность beecloud stack – ключевая причина низкого значения Overhead (снижение производительности виртуальной машины относительно физического сервера вследствие значимости накладных расходов гипервизора).
- Слой хранения – SDS
На основе ресурсных примитивов из кластерного слоя формируется слой хранения (SDS). Технологической основой SDS является ZFS – файловая система, объединенная с менеджером логических томов, которая также обладает совокупностью уникальных свойств. Единица грануляции слоя SDS – пул, собранный из дисков каждого узла c избыточностью равной избыточности кластера (N+ 2). В момент времени пул работает на конкретном узле кластера.
Возможности слоя хранения:
- компрессия и дедупликация;
- внутренняя целостность данных;
- клоны, снимки;
- самовосстановление данных;
- транзакционная целостность.
На схеме ниже изображен пятиузловой кластер. Вертикальные контейнеры — пулы, горизонтальные — узлы кластера.
В случае выхода из строя узла за счет механизма fencing (процесс исключения узла из кластера) узел, на котором возникла проблема, будет исключен из кластера, а все пулы потеряют по одному диску. При этом кластер автоматически выполнит процедуру аварийного переключения (failover) ресурсов данного узла, и пул, работавший на узле, вышедшем из строя, станет доступен на другом узле. Все ВМ продолжат свою работу на другом узле.
Рисунок 3. Пятиузловый кластер
- Слой сети – SDN
Beecloud stack предоставляет три варианта технологического обеспечения виртуальных сетей:
- VLAN;
- VxLAN;
- GENEVE (собственная имплементация).
При создании новой виртуальной сети на каждом из Узлов Кластера создается программно-определяемый коммутатор.
РИСУНОК 4. SDN – SOFTWARE DEFINED NETWORKING
Каждый экземпляр сети имеет следующие свойства:
- собственный MTU;
- поддержка Jumbo Frames;
- поддержка TSO/GSO;
- поддержка TCP MSS clamping «из коробки»;
- поддержка Path MTU Discovery «из коробки».
Лимиты SDN:
- максимальное количество сетей – 65536;
- 1 048 576 портов на коммутаторе одного узла;
- Производительность виртуального порта ВМ: 22 GBps / 2.5Mpps.