SDFS (Solenopsys Distributed File System)
---
Современная файловая система с журналированием и методом записи копий на основе деревьев B+. Тщательно оптимизирована для работы с NVMe-дисками для максимальной производительности, а также с HDD для холодного хранения больших объемов данных.
Система хранения управляет данными кластера, файловыми системами, резервными копиями, а также отслеживает использование дискового пространства и памяти. Это ядро SDFS.
Вдохновение и инновации
Вдохновлена IPFS, заимствуя множество подходов и идей хранения данных, при этом устраняя некоторые слабые стороны. SDFS представляет собой гибридный подход между IPFS и ZFS: это оптимизированный аналог IPFS, работающий на уровне ядра Linux с использованием блоков данных вместо файлов.
Создана для децентрализованной среды с многоуровневой дедупликацией. Главное отличие — использование блоков данных из рабочей файловой системы для репликации данных.
Устранение дублирования
В традиционных IT-системах архивы и образы загружаются и распаковываются, что приводит к множественному дублированию данных. В SDFS это устранено. Все образы хранятся в сегментированной форме с использованием системы упаковки Slice, которая сжимает файлы на уровне микроблоков. В случае RAW-образов, где важна максимальная скорость, сжатие выполняется только при передаче данных между узлами на уровне сетевого стека.
Разделения между архивами и рабочими образами нет — это единая структура без дублирования информации. Это позволяет мгновенно передавать рабочие нагрузки в виде образов на другие узлы без дополнительных операций, что экспоненциально увеличивает пропускную способность платформы. Все функции встроены в файловую систему и работают на уровне драйверов Linux.
Архитектура системы
Метаданные и блоки
Каждый блок имеет хэш (SHA256), что гарантирует целостность данных, устраняет дублирование и позволяет глобально адресовать блоки.
Файлы всегда разделены на микроблоки. В отличие от IPFS с фиксированным размером блока 256 КБ, в SDFS размер микроблоков варьируется от 4 КБ до 1024 КБ. Это снижает нагрузку на корневые узлы платформы Expansion и уменьшает объем хранимых метаданных.
Составление микроблоков осуществляется с использованием алгоритма Buddy, часто применяемого для управления памятью в Linux. Небольшие микроблоки упаковываются в более крупные блоки (до 1024 КБ) для оптимизации хранения.
Разделение дискового пространства
Дисковое пространство автоматически делится на сегменты:
- Микроблоки (4 КБ–1024 КБ): объекты и исходный код с приоритетным хранением в горячем хранилище (NVMe).
- Макроблоки (1 МБ–256 МБ): мультимедиа, резервные копии, файлы баз данных с приоритетным хранением в холодном хранилище (HDD).
Каждый уровень поддерживает 8-битную адресацию для 256 подблоков.
Горячее и холодное хранилище
Горячее хранилище предназначено для работы с NVMe и SD-картами. Используется для реальных вычислительных нагрузок, операционных систем, баз данных и объектного хранения. Обеспечивает произвольный доступ и полную поддержку операций файловой системы Linux. Современные устройства имеют встроенные механизмы выравнивания износа и виртуальный слой отображения данных.
Холодное хранилище хранит большие блоки, сгруппированные в экстенты. Алгоритм Buddy используется для упаковки экстентов в размеры, равные степеням двойки. Оптимизировано для хранения больших объемов данных и доступа к ним через API, а не через файловую систему Linux.
Удаление данных
SDFS собирает статистику доступа для каждого макроблока. Макроблоки наибольшего размера с минимальной частотой доступа выгружаются на HDD, оптимизируя использование хранилища.
Технологические преимущества
Использование возможностей Linux и оборудования
- io_uring: асинхронный механизм ввода-вывода в Linux, позволяющий отправлять и принимать запросы ввода-вывода пакетами. Снижает нагрузку на процессор, уменьшая количество переключений контекста между пользовательским пространством и ядром.
- Аппаратное ускорение SHA256: современные процессоры обеспечивают до 1 ГБ/с хеширования, что достаточно для работы с NVMe. Это гарантирует высокую производительность без постоянной записи всех данных.
Типы блочных устройств
- Глобальные блоки хранения
- Журналы событий
- Дисковые блоки баз данных
SDFS объединяет передовые технологии для создания эффективной и надежной файловой системы. Она устраняет избыточность данных, оптимизирует хранение и обеспечивает высокую производительность в современных вычислительных средах.
SDFS (Solenopsys Distributed File System)
SDFS представляет собой современную файловую систему с журналированием, построенную на основе деревьев B+ и оптимизированную для работы как с высокопроизводительными NVMe-дисками, так и с традиционными HDD для холодного хранения. Система вдохновлена концепциями IPFS, но работает на уровне ядра Linux, что обеспечивает существенно более высокую производительность.
Фундаментальные принципы работы
SDFS объединяет все физические диски кластера в единое пространство хранения, где каждый диск становится общим ресурсом вместо локального хранилища. Система использует гибридный подход между IPFS и ZFS, работая на уровне ядра с блоками данных вместо файлов. Это позволяет достичь производительности, в 10 раз превышающей показатели традиционных распределённых файловых систем.
Сетевая архитектура
SDFS реализует многоуровневую сетевую архитектуру:
Каждый узел сети представляет собой кластер, где данные хранятся локально, но доступны глобально через систему прокси-узлов. При этом даже в сети из 1000 узлов с ограниченной пропускной способностью (50 Мбит/с на узел) система обеспечивает эффективный доступ ко всем данным благодаря умной маршрутизации и кэшированию.
Центральный кластер метаданных управляет информацией о расположении блоков и обеспечивает:
- Динамическую аллокацию ресурсов
- Балансировку нагрузки между узлами
- Оптимизацию маршрутов доступа к данным
- Географически-осознанное распределение данных
Инновационный подход к хранению данных
В отличие от традиционных систем, SDFS полностью устраняет концепцию архивов. Все данные, включая образы систем и резервные копии, хранятся в сегментированной форме с использованием системы упаковки Slice. Это позволяет:
- Мгновенно передавать рабочие нагрузки между узлами без распаковки
- Избежать дублирования данных при работе с образами
- Оптимизировать использование пространства через многоуровневую дедупликацию
Техническая архитектура
Организация блоков данных
SDFS использует динамическую систему блоков:
Микроблоки (4 КБ – 1024 КБ):
- Хранят объекты и исходный код
- Приоритетно размещаются на NVMe
- Объединяются алгоритмом Buddy для оптимизации хранения
Макроблоки (1 МБ – 256 МБ):
- Содержат мультимедиа и файлы баз данных
- Приоритетно размещаются на HDD
- Группируются в экстенты для оптимизации доступа
Каждый блок получает уникальный хэш SHA256, что обеспечивает целостность данных и позволяет реализовать глобальную адресацию.
Горячее и холодное хранилище
Горячее хранилище (NVMe/SSD):
- Обеспечивает произвольный доступ к данным
- Поддерживает все операции файловой системы Linux
- Использует встроенные механизмы выравнивания износа
- Оптимизировано для высокой производительности
Холодное хранилище (HDD):
- Хранит большие блоки в экстентах
- Использует алгоритм Buddy для оптимизации размещения
- Доступ преимущественно через API
- Оптимизировано для объемного хранения
Система автоматически перемещает данные между уровнями хранения на основе статистики доступа: макроблоки с минимальной частотой обращений автоматически мигрируют на HDD.
Технологические оптимизации
SDFS максимально использует возможности современного оборудования и Linux:
- io_uring для асинхронного ввода-вывода, что снижает нагрузку на CPU
- Аппаратное ускорение SHA256 (до 1 ГБ/с на современных процессорах)
- Динамическая балансировка нагрузки с учетом географического расположения узлов
- Оптимизированный сетевой стек для передачи данных между узлами
Уникальные преимущества SDFS
SDFS предлагает ряд существенных улучшений по сравнению с традиционными системами:
- Работа на уровне ядра Linux обеспечивает максимальную производительность
- Отсутствие необходимости в отдельном архивировании данных
- Мгновенная миграция рабочих нагрузок между узлами
- Автоматическая оптимизация размещения данных
- Эффективное использование как быстрых NVMe, так и емких HDD
- Высокая масштабируемость благодаря продвинутой сетевой архитектуре
SDFS представляет собой следующий этап эволюции распределенных файловых систем, объединяя передовые технологии хранения данных с эффективной сетевой архитектурой. Система особенно хорошо подходит для современных корпоративных и облачных инфраструктур, где требуется высокая производительность, масштабируемость и эффективное использование ресурсов.