Архитектура Vitastor. Тёмная сторона моей распределённой СХД
Доклад принят в программу конференции
Целевая аудитория
Тезисы
Vitastor — это мой быстрый «Ceph-заменитель». Распределённая блочная программная система хранения данных (SDS), способная, в отличие от большинства других систем, нормально работать с быстрыми твердотельными накопителями, и при этом, в отличие от большинства других систем, имеющая симметричную распределённую архитектуру без единой точки отказа. А под «нормально», конечно, понимается «так быстро, как только возможно» :-)
В предыдущем докладе на DevOpsConf (https://devopsconf.io/moscow/2021/abstracts/7458) я рассказал о ситуации с SDS («нечего надеть»), причинах создания Vitastor и общих принципах его разработки.
В этом докладе я хочу остановиться на технической стороне. Тёмной, архитектурной технической стороне.
Что такое «симметричная распределённая архитектура»? Как конкретно обеспечивается консистентность? Как реализованы снапшоты и клоны? Зачем нужен io_uring? Как Vitastor использует RDMA? Что ещё за монитор на node.js и откуда там LP-солвер (утилита решения задач линейного программирования)?
С какими ещё архитектурными выборами придётся столкнуться по ходу разработки? Например, что будет, если всё-таки захочется реализовать поверх Vitastor файловую систему? Обо всех этих вопросах и пойдёт речь в докладе.
Ведущий разработчик, линуксоид, цефер. Занимается веб-разработкой на React, Node.js, PHP, Go, Python, Perl, Java. Интересуется всем: от баз данных до кластерных систем.
Личный проект
Видео
Другие доклады секции
Базы данных и системы хранения