2.1.1 Физический слой

В данном слое находятся базовые физические элементы (серверы) и организована их сетевая связность.

2.1.2 Кластерный слой

В этом слое работают службы обеспечения программно-определяемых слоев (SDS, SDN, SDC).

Главной задачей данного слоя является обеспечение резервирования элементов инфраструктуры (до узлов). Процедура резервирования (failover) происходит автоматически без участия человека.

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

2.1.3 Слой хранения – SDS

На основе ресурсных примитивов из кластерного слоя формируется слой хранения (SDS). Технологической основой SDS является ZFS – файловая система, объединенная с менеджером логических томов, которая также обладает совокупностью уникальных свойств. Единица грануляции слоя SDS – пул, собранный из дисков каждого узла c избыточностью равной избыточности кластера (N+ 2, N+ 3 etc.). В момент времени пул работает на конкретном узле кластера.

Возможности слоя хранения:

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

Слой хранения имеет свои лимиты по размеру: 1 зеттабайт, при этом поддерживает неограниченное количество файловых систем и неограниченное количество блочных устройств.

Для всех промышленных инсталляций рекомендуется использование избыточности типа N+2 или выше (платформа поддерживает N+1, N+2 и N+3).

На схеме ниже изображен пятиузловой кластер. Вертикальные контейнеры — пулы, горизонтальные — узлы кластера.

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

Рисунок 1. Пятиузловый кластер

2.1.4 Слой сети – SDN

vStack предоставляет три варианта технологического обеспечения виртуальных сетей:

  • VLAN;
  • VxLAN;
  • GENEVE (собственная имплементация).

При создании новой виртуальной сети на каждом из Узлов Кластера создается программно-определяемый коммутатор. Реализация самой виртуальной сети — наша собственная разработка, прошедшая серьезные испытания и давно (с сентября 2020 г.) работающие в промышленной эксплуатации на большом количестве кластеров.

Рисунок 2. SDN – Software Defined Networking

Каждый экземпляр сети имеет следующие свойства:

  • собственный MTU;
  • поддержка Jumbo Frames;
  • поддержка TSO/GSO;
  • поддержка TCP MSS clamping «из коробки»;
  • поддержка Path MTU Discovery «из коробки».

Лимиты SDN:

  • максимальное количество сетей – 65536;
  • 1 048 576 портов на коммутаторе одного узла;
  • Производительность виртуального порта ВМ: 22 GBps / 2.5Mpps.

2.1.5 Слой вычислений – SDC

Слой SDC работает на базе гипервизора второго типа (bhyve). Производительность bhyve значительно выше, чем у других популярных гипервизоров. Кроме того, его оптимизация до сих пор продолжается, а практически все средства аппаратного ускорения виртуальных вычислений поддерживаются на современных процессорах Intel. Также гипервизор bhyve поддерживает работу в условиях CPU overcommit, что критически важно для облачных решений.

Экземпляр SDC – виртуальная машина, являющаяся совокупной сущностью со следующими элементами:

  • CPU/RAM;
  • Виртуальные сетевые порты (подключенные к слою SDN);
  • Виртуальные дисковые устройства (подключенные к слою SDS).
Рисунок 3. SDC – Software Defined Computing

Виртуальная машина может работать под управлением следующих гостевых ОС:

  • FreeBSD;
  • Linux (OEL/CentOS/Ubuntu/Debian и т.д.);
  • Windows 2016, 2019, 2022.

Работоспособность решения vStack с другими гостевыми ОС не исключается из-за небольших требований к ним (возможность загрузки в режиме UEFI, наличие драйверов virtio и наличие cloud-init).

Диски виртуальной машины создаются на том же пуле, на котором была создана эта виртуальная машина.

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

  • «Селекторы» – автоматический выбор пула, на котором наименьшее совокупное значение таких параметров, как:
    • CPU;
    • RAM;
    • дисковое пространство.
  • Явное указание пула

Для обеспечения комфортной работы с платформой в слое вычислений реализованы следующие возможности:

  • поддержка спецификации virtio для сетевых портов, дисков и другой периферии (rnd, ballooning и т.п.);
  • создание виртуальных машин при помощи облачных образов (cloud images);
  • возможность персонализации настроек и поведения гостевых ОС в облачных образах с помощью стандарта cloud-init для unix-подобных систем и cloud-base для windows;
  • поддержка возможности лимитирования производительности сетевого порта (MBps) и диска (IOPS, MBps) в реальном времени, а также лимитирования ресурсов vCPU в реальном времени;
  • поддержка создания снимков ВМ – в отличие от других решений снимки vStack содержат конфигурацию виртуальной машины в т.ч. сетевых портов и их IP/MAC-адресов.

Также в платформе существует автономный и самодостаточный механизм обеспечения работы в условиях CPU overcommit, который позволяет достигать высоких значений экономической эффективности в слое SDC (до 900%).

Легковесность vStack – ключевая причина низкого значения Overhead (снижение производительности виртуальной машины относительно физического сервера вследствие значимости накладных расходов гипервизора).