Гиперконвергентные решения, доступные на современном рынке, можно условно разделить на два типа: «полноценные» и интегрированные. Их главное отличие заключается в железе, которое можно использовать при построении инфраструктуры. У настоящей гиперконвергенции (Nutanix HCI и VMware HCI) нет привязки к производителям оборудования: она запросто подружится с аппаратным обеспечением другого вендора. А интегрированные решения работают только на железе вендоров.
Платформа vStack — это тоже полноценная гиперконвергенция. Под катом я подробно расскажу, как в ней реализованы функции вычисления (SDC), хранения (SDS) и сети (SDN), и какие возможности это дает владельцам инфраструктуры.
Что такое HCIЕсли вы уже знакомы с базовыми понятиями — можете смело пропустить эту часть и перейти к следующему разделу. Здесь же мы разберем, чем гиперконвергенция отличается от конвергенции и каковы ее основные преимущества.Гиперконвергентная инфраструктура (HCI) — это программно-определяемая инфраструктура, которая объединяет в себе функции вычисления (SDC), хранения данных (SDS) и программной реализации сети (SDN). В отличие от классической инфраструктуры, где эти функции выполняют серверы с выделенными ролями или отдельные сущности вроде СХД и роутеров, в HCI они возложены на каждый сервер-участник инфраструктуры.
Ключевые преимущества HCI:- Более простая инфраструктура.
Дискретность гиперконвергентной инфраструктуры существенно ниже даже в приведенном примере, притом, что в случае конвергентной инфраструктуры в слое хранения NAS-составляющая просто не поместилась в экран. Этот фактор напрямую влияет на сложность эксплуатации, так как в ней задействовано немало узких специалистов. Количество людей растет вместе с размером инфраструктуры, так как и управление ею, и она сама дискретны. Каждый из элементов (сетевое оборудование, СХД, SAN, NAS, серверы) имеет собственные интерфейсы управления, концепции, API и т.д. Данная дискретность обуславливает следующий постулат: изменения конвергентной инфраструктуры могут растягиваться на месяцы.
В нашем гиперконвергентном решении такая дискретность отсутствует: управление имеет единые endpoint, интерфейс и API.
Однородность элементов гиперконвергентной инфраструктуры позволяет в случае неисправности (при желании) не тратить драгоценное в XXI веке время на ее локализацию. Достаточно вынуть диски из сервера, вышедшего из строя, и вставить их в ZIP и продолжить работу с прежним (референсным) уровнем резервирования.
Подойдет любое доступное на рынке оборудование, что теперь актуально, как никогда раньше. Даже потребительское.
- Экономия на оборудовании.
Можно закупать аппаратное обеспечение потребительского сегмента и таким образом экономить на оборудовании некритичных сред, например, тестовых. Или кардинально снижать стоимость там, где используются горизонтально-масштабируемые решения, не требующие высокой степени резервирования одного элемента. К тому же заменить вышедшее из строя “потребительское” устройство будет несколько проще, чем enterprise.
- Управление всей инфраструктурой через единый интерфейс
Его может обслуживать всего один опытный специалист — вам не придется нанимать отдельных сотрудников под каждый сегмент.
Архитектура vStackПлатформа создает единое кластерное пространство на базе серверов, одновременно выполняющих сразу 3 функции: Software Defined Storage, Software Defined Networking, Software Defined Computing — хранение, сеть, вычисления. Она объединяет три традиционно разрозненных компонента в одно программно-определяемое решение.
Программно-определяемые вычисления (SDС)Слой SDC работает на базе гипервизора второго типа.
Поддерживается спецификация virtio для сетевых портов, дисков и другой периферии (rnd, balloon и т.п.). Кастомизация гостевых ОС в облачных образах реализуется с помощью cloud-init для unix-систем и cloud-base для windows.
Поддерживаемые ОС:
- FreeBSD;
- Linux (OEL/CentOS/Ubuntu/Debian);
- Windows 2019/2022.
Облачные образы (cloud images):
- Возможность лимитировать производительность сетевого порта (MBps) и диска (IOPS, MBps) в реальном времени.
- Лимитирование ресурсов vCPU в реальном времени, в том числе автономное распределение квантов CPU в зависимости от степени overcommit, утилизации узла и нагрузки конкретной ВМ, благодаря чему показатели vCPU overcommit в промышленных кластерах иногда достигают 900%.
- Снимки ВМ, содержащие её конфигурацию (в т.ч. сетевых портов и IP-адресов, а также MAC-адресов на этих сетевых портах).
Отдельного упоминания заслуживает автономный механизм бюджетирования квантов vCPU, благодаря которому становится возможной экономическая эффективность (efficiency) в слое SDC до 900%. Таким значением может похвастаться далеко не каждое решение.
При создании vStack мы в первую очередь ориентировались на его легковесность. Низкий показатель CPU Overhead (снижение производительности виртуализованного сервера относительно физического) -- один из примеров возможного эффекта этого подхода. Например, overhead у KVM в некоторых нагрузках достигает 15%, а у vStack — всего лишь 2-5%. Таких низких значений удалось достичь благодаря использованию уникальности гипервизора bhyve.
Программно-определяемое хранилище (SDS)Технологической основой SDS является ZFS.
Возможности:
- компрессия и дедупликация;
- внутренняя целостность данных;
- клоны, снимки;
- самовосстановление данных;
- транзакционная целостность.
Лимиты (pool/filesystem):
- размер: 1 zettabyte;
- неограниченное количество файловых систем;
- неограниченное количество блочных устройств.
Программно-определяемая сеть (SDN)Доступно три варианта обеспечения виртуальных сетей:
- Vlan
- Vxlan
- GENEVE (собственная имплементация)
Вне зависимости от способа имплементации сеть может быть изолированной или маршрутизированной. Конкретный экземпляр виртуальной сети базируется на распределенном свитче (на картинке обозначен темно-синим прямоугольником). Реализация самой виртуальной сети, свитча в экосистеме netgraph и модификации в сетевом стеке — наши собственные разработки, прошедшие серьезные испытания и давно (с сентября 2020 г.) работающие в промышленной эксплуатации на большом количестве кластеров.
Лимиты:
- 65536 сетей;
- 1 048 576 портов на свитче одного хоста;
- виртуальный порт: 22 GBps / 2.5Mpps.