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

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 3.0.1

Важные исправления

  • Флаг RWF_ATOMIC отключён по умолчанию, так как Linux некорректно требует, чтобы все атомарные записи имели длину, равную степени двойки, и смещение, кратное длине. Подробности: use_atomic_flag
  • Исправлены нерабочие снимки в другой пул - после снятия снимка клиент продолжал всегда читать старые данные
  • Исправлена работа опции level_placement (сломанная в 2.2.0)
  • Исправлены значения возврата запросов записи с CAS (сломаны в 2.4.4, из-за чего также перестали работать невыровненные запросы записи в VitastorFS)
  • Исправлена возможная потеря части параллельных невыровненных записей в VitastorFS
  • Исправлено возможное чтение старых данных во время незавершённых атомарных (intent) записей в новом хранилище
  • Добавлены тесты для всех вышеуказанных проблем

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

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

Единственная, но огромная, новая функция: добавлено новое лог-структурированное хранилище метаданных, о котором был рассказ в докладе на конференции Moscow Highload’2025 (его можно посмотреть здесь).

Теперь это хранилище по умолчанию для новых OSD. Старое хранилище также поддерживается и вы можете выбрать его для новых OSD с помощью параметра vitastor-disk prepare --meta_format 2.

OSD, инициализированные в предыдущих версиях, также продолжат работать без изменений.

Немножко документации: atomic_write_size, meta_format.

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

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

  • Добавлена команда vitastor-kv rescue, выводящая содержимое всех читаемых блоков базы, вне зависимости от структуры Б-дерева, и таким образом помогающая восстановить повреждённую БД.
  • Упрощён выбор первичных OSD - теперь вместо хеша используется просто номер PG. Это улучшает распределение первичных OSD и позволяет достичь лучших скоростей чтения.
  • Исправлено зависание, воспроизводящееся в vitastor-kv-stress при параллельных листингах и переоткрытиях базы.
  • В клиентской библиотеке исправлена работа CAS-записей без immediate_commit. Исправление достаточно для корректной работы vitastor-kv в пулах без immediate_commit.
  • Исправлены вызовы NFS ACCESS для сломанных файлов без инода - теперь к ним разрешается доступ суперпользователя, чтобы их можно было удалить.
  • Исправлена работа параметра vitastor-kv-stress --runtime.
  • Исправлена некорректная буферизация вывода в выводе дампов vitastor-kv, приводившая к некорректному JSON в дампах.
  • Исправлена запись мусора из неинициализированной памяти в пустое место в VitastorKV базах.
  • Код частично отрефакторен в рамках приготовлений к релизу нового лог-структурованного хранилища метаданных.
  • Ошибка assert(done != expected), предположительно вызываемая проблемами в ядре Linux с отправкой TCP без копирования (zero-copy TCP send), заменена на более понятное сообщение.

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

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

  • Исправлены возможные состояние INCOMPLETE PG при отключении узла и отключённом allow_net_split (по умолчанию)
  • NFS-сервер теперь уходит в фоновый режим до инициализации RDMA, что исправляет работу RDMA в некоторых конфигурациях (#107)
  • Исправлена сборка под Ubuntu 25.10
  • Исправлена работа режима journal_no_same_sector_overwrites после оптимизации WA в 2.4.1 (#109)

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

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

  • Исправлен скрипт make-etcd, сломанный после добавления поддержки IPv6 в 2.4.1 :)
  • Исправлена некорректная пометка одного из дочерних образов удаляемого образа как “DELETED” при “инвертированном” алгоритме удаления
  • Добавлена поддержка QEMU 10.1 в блочный драйвер и патч

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

Все записи