Пять лет назад мы приняли решение разработать собственную систему виртуализации. Сегодня у нас есть готовый продукт — гиперконвергентная платформа vStack, которая уже более трех лет находится в промышленной эксплуатации в наших облаках.
В этой статье обсудим применение vStack в рамках публичного облака и поделимся реальной историей эксплуатации платформы в облачном провайдере.
Читатели нашего блога наверняка уже слышали о vStack — ранее мы рассказывали, как она создавалась и как устроена. Если вы с vStack не знакомы, вот вам краткая вводная о платформе.
Что такое vStack
vStack HCP — это гиперконвергентная платформа для создания полностью управляемого виртуального дата-центра Enterprise-уровня.
vStack создает единое кластерное пространство на базе серверов, которые выполняют одновременно три функции: SDS (хранение), SDN (сеть) и SDC (вычисления). Платформа объединяет три традиционно разрозненных компонента в одно программно-определяемое решение.
В эпоху исхода технологических вендоров vStack — отличная замена VMware — она подойдет как для развертывания собственной инфраструктуры, так и в качестве фундамента публичного облака «на продажу». И вот почему:
Высокая производительность.
Низкий показатель CPU Overhead (снижение производительности виртуализованного сервера относительно физического) — всего 2-5%.
Высокий показатель CPU Overcommit — до 900%.
Возможность предоставлять и обеспечивать работу количества ядер большее, чем общее количество ядер физического процессора на этом узле.
Гибкость платформы.
Можно не только масштабировать платформу, но и оперативно реагировать на функциональные изменения. Благодаря отсутствию разного рода legacy и легковесности vStack мы можем быстро реализовать feature request заказчика. Например, особые свойства VM или vDC.
Низкое потребление ресурсов и экономичность.
Благодаря возможности использовать commodity hardware нет необходимости закупать дорогостоящее оборудование. Это не только сокращает затраты на «железо», но и позволяет гораздо быстрее получить готовое решение, поскольку в условиях санкций покупка любого оборудования (особенно Enterprise-уровня) занимает немало времени.
Не требует много человеческих ресурсов.
Количество ИТ-сотрудников, включенных в администрирование и обслуживание платформы, напрямую влияет на экономику внедренного решения — ведь всем им необходимо платить зарплату, отпускные, премии. А тем, кто плохо работает, ещё и больничные :)
Соответствие задачам компании.
Некоторые платформы, например, OpenStack, подразумевающие большое количество административных и прикладных ресурсов, отлично подходят для компаний из сегмента FAANG или отечественным игрокам вроде Яндекса и MRG. Однако для большинства компаний, которые сейчас ищут замену решениям западных вендоров или просто хотят перейти в виртуализацию, важными факторами являются простота, универсальность платформы и возможность тестирования продуктов в различных средах и невысокая стоимость. Именно на них мы и ориентировались при создании vStack. Реализовать это помог выбранный нами технологический стек.
vStack vs. VMware
При создании платформы мы не ставили себе цели разработать «убийцу VMware». Мы планировали получить решение, функциональности которого было бы достаточно для решения задач виртуализации большинства (~70%) пользователей. Если говорить конкретнее, нашей целью было создание масштабируемой модели программного обеспечения с отсутствием дорогостоящего механизма отказоустойчивого кластера с определенным значением избыточности. Также мы не видели смысла в реализации поддержки всякого рода legacy, которым многие продукты VMware, прямо скажем, переполнены.
В отличие от некоторых решений, которые по сути являются клонами целиком продуктов с открытым исходным кодом, мы использовали open source только как технологическую основу. Всё, что выше этой основы, мы разработали самостоятельно:
собственную реализацию алгоритма RAFT, позволяющей добиться высокой отказоустойчивости кластера;
собственный кластерный фреймворк;
собственный прикладной слой и слой управления, включающий контроллеры SDC, SDN, SDS и API, построенный на JSON RPC;
виртуальную сеть.
Сравним vStack и VMware по функциональности:
vStack | Vmware | |
Архитектура | Гиперконвергентная | Гиперконвергентная (решение становится гиперконвергентным, когда на vSphere/vCloud «надевается» vSAN), конвергентная |
ОС | vStack OS (на основе FreeBSD) | vSphere |
Гипервизор | vStack HV (на основе bhyve) | |
Единая платформа | + | + |
Слой хранения: stripe width | Не ограничено | Не более 12Гб на объект |
Файловая система с поддержкой POSIX | + | + |
Копирование при записи | + | + |
Самовосстановление данных | + | + |
Количество виртуальных адаптеров VM | 5 | 10 |
Виртуальные сети: поддержка конкретного значения MTU per network | Для каждой сети свой MTU | Только глобально на весь switch |
Виртуальные сети: TCP MSS Clamping | Все виртуальные сети | Только в рамках L2 VPN, построенного на базе NSX |
Виртуальные сети: Path MTU discovery | Все виртуальные сети без использования отдельных компонентов | - |
Размер диска VM | 32EB | 62TB |
vStack не только не уступает по функциональности VMware, но и дешевле минимум в два раза, что делает платформу привлекательной не только для компаний, которые ищут решение для развертывания корпоративной инфраструктуры, но и для облачных провайдеров:
Возможности vStack:
Создание и квотирование виртуальных дата-центров.
Создание, удаление, модификация и клонирование виртуальных машин.
Создание снапшотов, в том числе с сохранением конфигурации NIC.
Поддержка облачных образов ВМ с высокой степенью кастомизации и коротким временем создания (15-40 секунд в зависимости от ОС).
Поддержка самовосстановления, коррекции ошибок, дедупликации, компрессии.
Создание изолированных/маршрутизируемых сетей с поддержкой гетерогенности и функциональности IP Pool.
Высокий показатель CPU Overcommit (до 900%), возможность предоставлять и обеспечивать работу количества ядер большее, чем общее количество ядер физического процессора на этом узле.
Безусловно, экономическое преимущество vStack перед VMware актуально только для тех стран, где продукты «гиганта виртуализации» можно приобрести. В России переходить с VMware на аналогичные решения так или иначе придётся.
Публичное облако на vStack
Первой компанией, внедрившей vStack в промышленную эксплуатацию, стал облачный провайдер Serverspace.
Изначально ИТ-инфраструктура Serverspace была построена на базе решений VMware. Однако для владельцев инфраструктуры VMware — это не только проверенные технологии, но и расходы. В частности, серьезная лицензионная нагрузка. Кроме того, при использовании VMware необходимо быть готовым к высокой стоимости стартового пакета оборудования и его поддержки. Классический подход к построению инфраструктуры предполагает, что функции вычисления, хранения данных и организации сети будут возложены на отдельные серверы с выделенными ролями или специализированное оборудование. В отличие от «классики» гиперконвергентные решения объединяют вычислительные и сетевые ресурсы, ресурсы хранения и средства виртуализации в одну платформу с единой точкой управления. Это позволяет значительно упростить администрирование и масштабирование инфраструктуры, а также позволяет значительно сократить расходы на ИТ.
В определенный момент в Serverspace поняли, что при предоставлении виртуальных машин на VMware значительная часть ресурсов уходит на оплату лицензий и поддержку инфраструктуры, которая в этом случае представляет собой конвергентное решение. Наиболее оптимальным вариантом был бы переход к гиперконвергенции, однако внедрение соответствующего решения от VMware могло привести к росту цен для клиентов Serverspace. Специалисты провайдера стали искать альтернативу.
Решение на базе KVM/OpenStack было заманчивым, так как не требует затрат на лицензии. Однако после расчетов оказалось, что экономия на лицензиях «съедается» ростом стоимости поддержки инфраструктурного слоя, ведь OpenStack — это конструктор, который необходимо постоянно «допиливать» и поддерживать самостоятельно, не обладающий рядом функций, которые уже были привычны потребителю. Ужасная работа в условиях CPU overcommit исключила дальнейшие мечты об использовании в промышленной эксплуатации решений с гипервизором KVM.
Платформа виртуализации vStack стала идеальным вариантом: она позволяет сэкономить на используемом оборудовании и упростить управление инфраструктурой за счет гиперконвергентного подхода. При этом компании не пришлось отказываться от преимуществ проприетарного подхода.
Первый кластер был размещен в Амстердаме и продавался примерно вдвое дешевле, чем VMware (на сегодняшний день разрыв в цене сохраняется). Мы получили пул пользователей vStack и несколько месяцев активно дорабатывали и совершенствовали продукт на основе их обратной связи.
Чего удалось достичь:
Высокая скорость выдачи услуг
Благодаря уникальным технологиям, лежащим в основе платформы, vStack позволяет сократить время оказания услуг. Например, на создание доступной пользователю ВМ уйдет не более 40 секунд. Можно самостоятельно проверить тут.
Поддержка гетерогенности сети
По итогам начальной эксплуатации выяснилось, что людям также нужна хорошая поддержка гетерогенности сети, работающая «из коробки», так как многие использовали ВМ vStack в качестве ресурсного решения для контейнеризации и пр. Это мы успешно реализовали — сегодня поддержка гетерогенности в любых виртуальных сетях «из коробки» является одной из наших отличительных черт.
Поддержка персонализации ВМ
Ряд пользователей Serverspace не хотят заниматься настройкой и администрирование ВМ, им просто нужно решить конкретную задачу. У клиентов облачного провайдера есть возможность заказать ВМ с нужным софтом на борту — ОС (ОС Windows, CentOS, FreeBSD, Debian, Ubuntu, Oracle) и приложениями (Nginx, PostgreSQL, LAMP, LEMP, Docker, Wordpress).
Снижение совокупной стоимости владения
vStack — только для провайдеров?
Платформа vStack подойдет не только облачным провайдерам.
Использовать ее для построения ИТ-инфраструктуры смогут: средний бизнес, крупные предприятия, промышленные компании, организации из финансовой сферы и даже госучреждения — с 2021 года решение находится в реестре отечественного ПО.
Сценариев использования довольно много:
традиционная инфраструктура on-premise;
инфраструктура для удаленных офисов;
горизонтально масштабируемое ПО;
виртуальные рабочие столы VDI;
среда разработки и тестирования;
резервная площадка;
low-cost резервные ресурсы;
disposable VMs и другое.
Если у вас возникли вопросы о работе платформы, ее устройстве или эксплуатации — ждем ваших комментариев.