Как DAOS выжимает максимум из NVMe и памяти SCM

06 Aug, 2026
962
🔱 351
👥 42

Когда стандартная файловая система начинает задыхаться от миллионов мелких случайных операций ввода-вывода, разработчики обычно ищут обходные пути. Известная история: современные NVMe-накопители работают с бешеными скоростями, но стандартный стек ядра Linux съедает кучу времени на блокировках и переключениях контекста.

DAOS Logo

Специалисты из Linux Foundation развивают проект DAOS (Distributed Asynchronous Object Storage). Это распределённая объектная система хранения с открытым исходным кодом, написанная на Си. Ее спроектировали специально под энергонезависимую память (NVM), планки Storage Class Memory и накопители NVMe.

В чём идея

Традиционные хранилища пытаются натянуть старую POSIX-модель на быструю память. Из-за этого возникают узкие места. DAOS идет другим путем: проект полностью отказывается от традиционного ядрового стека I/O.

Вместо привычных файлов и папок система предлагает структуру на основе ключ-значение с асинхронным транзакционным вводом-выводом. Потоки данных не блокируют друг друга при записи, а обращения к железу идут напрямую через библиотеки SPDK и PMDK.

Какими функциями располагает проект

Разработчики заложили в архитектуру сразу несколько базовых возможностей для работы с большими объёмами данных.

  • Асинхронные неблокирующие транзакции для параллельной записи
  • Контроль целостности данных от клиента до накопителя
  • Автоматическое восстановление при сбое отдельных узлов
  • Эластичное масштабирование кластера без остановки обслуживания

Интересный момент касается интерфейсов. В отличие от узкоспециализированных KV-хранилищ, DAOS предлагает клиентам удобные обертки. Вы можете работать с ним через родной словарь Python, подключать к Spark, пробрасывать в TensorFlow-IO или использовать традиционные для научного софта библиотеки HDF5 и MPI-IO. Для совместимости со старым софтом есть эмуляция параллельной файловой системы.

Что под капотом и какие есть нюансы

Код написан на Си, а сам репозиторий существует с 2016 года. Проект уже набрал около тысячи звёзд на GitHub, но легкой прогулки при развёртывании ждать не стоит. Это не милая CLI-утилита, которую ставишь одной командой.

Для полноценной работы DAOS требует специализированного железа с поддержкой NVMe и желательно энергонезависимой памяти (SCM). На обычном бюджете из пары дешевых облачных серверов оценить задумку не получится. Настройка управляющей плоскости и клиентских библиотек требует хорошего понимания сетевых стеков и инфраструктуры.

Журнал ошибок и документация подробные, но объемные. Если что-то пойдет не так при сборке, придется копаться в логах или идти за помощью в Slack и форум сообщества.

Кому стоит попробовать

Проект создавался не для рядовых веб-сайтов или небольших PostgreSQL-баз. Его ниша — инфраструктура с колоссальными требованиями к пропускной способности.

  1. Командам, тренирующим гигантские нейросети на TensorFlow, где узким местом стала загрузка датасетов.
  2. Инженерам данных, работающим с распределенной аналитикой на Hadoop и Spark.
  3. Научным лабораториям и HPC-кластерам, где стандартный Lustre или GPFS перестали справляться.
  4. Разработчикам высоконагруженных систем, создающим собственное хранилище поверх сырых NVMe-дисков.

Что в итоге

DAOS представляет собой отличный пример того, как архитектура ПО адаптируется под новое железо. Проект сложный, узкоспециализированный и требовательный к инфраструктуре, но в своей области он решает реальную проблему системного оверхеда. Если вы строите хранилище под задачи машинного обучения или аналитики больших данных, заглянуть в документацию точно имеет смысл.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.