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 представляет собой следующий этап эволюции распределенных файловых систем, объединяя передовые технологии хранения данных с эффективной сетевой архитектурой. Система особенно хорошо подходит для современных корпоративных и облачных инфраструктур, где требуется высокая производительность, масштабируемость и эффективное использование ресурсов.