Быстрая и простая распределённая
программная СХД

Vitastor

  • Распределённая программная СХД (SDS)
  • ...но Быстрая 🚀 — отклик 0.1 мс
  • ...и Простая ✌️ — 60 тыс. строк, а не 1 млн
  • Разработана с нуля в России

Программная СХД (SDS)

ПО, объединяющее обычные серверы с обычными дисками в единое масштабируемое отказоустойчивое хранилище, имеющее расширенные функции

Зачем SDS IaaS/PaaS провайдерам?

  • Лёгкость масштабирования
  • Сохранность данных клиента
  • Снижение затрат за счёт гиперконвергентности
  • Отсутствие "микроменеджмента" серверов
  • Различные классы хранения (SSD, HDD)

Но многие SDS — это накладные расходы

Накладные расходы

  • Q=1 — лучший возможный отклик
  • 4 кб запись на SSD — 0.04 мс
  • 4 кб запись в Ceph — от ~ 1 мс
  • Внутренние SDS облаков – ± аналогично
  • 2400 % накладные расходы !

Vitastor

  • ~ 0.1 мс отклик при репликации
  • ~ 0.2 мс отклик при EC
  • 3-8 гбайт/с на клиента (ВМ)
  • ~ 400000 оп/с на клиента
  • Всего ~1 ядро CPU на NVMe диск
  • Низкое (50%) влияние ребаланса

Vitastor — протоколы

  • Блочный доступ (диски ВМ, контейнеры):
    Kubernetes, Proxmox, OpenNebula, OpenStack и др.
  • VitastorFS (NFS) — кластерная POSIX ФС
  • Объектное хранение (S3) — на базе Zenko CloudServer

Функции

  • Репликация, коды коррекции ошибок (N+K)
  • Любые диски: SSD/NVMe, HDD, SSD+HDD
  • Гибкое распределение данных
  • Поддержка RDMA / RoCEv2
  • Быстрые снимки и клоны
  • Быстрые контрольные суммы, скрабы
  • Мониторинг
  • Kubernetes оператор
  • И другие...

Симметричная архитектура

  • Симметричная распределённая, Ø SPOF
  • Блочный базовый слой
  • Равномерное распределение нагрузки
  • Транзакционная запись → защита от потери данных
  • Оптимизация под современные SSD/HDD

Простота сопровождения

  • Малое число компонентов
  • Прозрачность метаданных в etcd
  • Минимум внешних зависимостей
  • Компактная реализация:
    ~60k строк кода (Ceph ~1M)
  • Поддержка нестандартных архитектур (E2K)

Лицензирование

  • Собственная Copyleft-лицензия VNPL
  • Свободное использование в OpenSource среде
  • Закрытые сервисы требуют коммерческой лицензии
  • Техническая и архитектурная поддержка от автора

Контакты

Блочный доступ

С поддержкой всех основных основанных на KVM систем виртуализации, а также контейнеров: OpenNebula, OpenStack, Proxmox VE, Kubernetes

Кластерная ФС

Собственная реализация масштабируемой кластерной POSIX-совместимой файловой системы, монтируемой по NFS 3.0

Объектное хранилище (S3)

На базе Zenko CloudServer

Интересное — последние записи

Выпущена версия Vitastor 2.4.1

  • Оптимизирован объём записи в журнал - теперь WA снижен с 4-5 до 3.x упаковкой записей в одни блоки
  • Исправлен некорректный показ занятого % места при наличии весов OSD, не равных 1 (#105)
  • Исправлено возможное зависание vitastor-cli rm при наличии неактивных PG (#99)
  • Исправлено отображение голого вместо эффективного места в vitastor-cli ls при заданной опции пула (#101)
  • Исправлено падение монитора с “Cannot set property of undefined” при удалении пула с ненулевой статистикой I/O инодов (#103)
  • Откачено изменение vitastor-kv из 2.2.0, иногда приводившее к падениям в vitastor-kv-stress (#100)
  • Добавлена проверка и запрет изменения pg_size для XOR-пулов
  • Исправлены проверки доступа к файлам в VitastorFS от имени суперпользователя
  • Добавлена поддержка IPv6 в скрипт make-etcd
  • Исправлена поддержка IPv6-адресов etcd в OSD и клиентской библиотеке

29.10.2025 Читать далее →

Выпущена версия Vitastor 2.4.0

Новые функции

  • UBLK теперь поддерживается в CSI и используется по умолчанию
  • Добавлен вывод дерева образов: vitastor-cli ls --tree
  • Добавлена опция vitastor-disk prepare --dry-run

24.09.2025 Читать далее →

Выпущена версия Vitastor 2.3.0

Кратко: ublk, Veeam и исправление включения контрольных сумм.

25.08.2025 Читать далее →

Выпущена версия Vitastor 2.2.3

Корректирующий релиз - поднакопилось немного багфиксов.

30.07.2025 Читать далее →

Выпущена версия Vitastor 2.2.2

  • Исправлен баг, из-за которого не совсем корректно авто-отключались новые pg_locks в конфигурациях по умолчанию, в итоге в различных ситуациях PG отключались и не могли подняться - достаточно стабильно воспроизводилось, например, при удалении образов, но это простое везение, т.к. на самом деле проявлялось случайно - просто asan не ловит *map.end() 😊
  • Исправлен случайно выявленный более старый баг, из-за которого при быстрых переустановках соединений OSD иногда могли получить чужую команду. Проявлялось в 2.2.x сообщениями “operation sequencing broken” в логах, но в целом ни к чему более критичному, скорее всего, привести не могло.

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

07.06.2025 Читать далее →

Все записи