В экосистеме Linux представлена новая реализация RAID под названием XRAID, разработанная с прицелом на высокопроизводительные системы хранения данных и накопители с зональной записью. Проект интегрирован непосредственно с файловой системой XFS и использует архитектуру declustered RAID — распределённого массива, в котором данные и контрольная информация размещаются сразу на большом количестве устройств.
Первоначальную публичную версию XRAID 13 ноября 2026 года объявил разработчик ядра Linux Кристоф Хеллвиг (Christoph Hellwig). По его словам, работа над проектом продолжалась около полутора лет. Основные задачи разработки — обеспечить поддержку RAID с контролем чётности на зональных накопителях, включая SMR-жёсткие диски, и создать более производительную реализацию без характерных проблем целостности данных, встречающихся в некоторых традиционных схемах RAID.
Самое заметное заявление разработчиков касается скорости записи: в отдельных тестах XRAID показывает производительность до 20 раз выше существующей реализации mdraid. При этом оптимизация исключительно под SSD не была основной целью проекта. Новая архитектура рассчитана прежде всего на системы с большим количеством дисков и накопителями, требующими последовательной записи.
Важно, что XRAID пока не является готовой заменой стандартному RAID в Linux. Разработчик прямо указывает, что код ещё далёк от отправки в основную ветку ядра. Публичная версия предназначена для тестирования, получения отзывов и дальнейшей доработки.
Что такое XRAID и зачем понадобилась новая реализация RAID
RAID (Redundant Array of Independent Disks) объединяет несколько физических накопителей в общую систему хранения. В зависимости от выбранной схемы массив может повышать производительность, обеспечивать избыточность данных или сочетать обе возможности. В Linux для управления такими конфигурациями давно используется подсистема MD RAID, известная также как mdraid.
Однако традиционные RAID-алгоритмы не всегда хорошо подходят для современных накопителей. Особенно сложная ситуация возникает с устройствами, которые требуют последовательной записи данных. К этой категории относятся некоторые SMR-жёсткие диски и другие зональные накопители.
В таких устройствах пространство разделено на зоны, а запись внутри определённых зон должна выполняться последовательно. Произвольное изменение уже записанных данных может потребовать дополнительных операций, перемещения информации и очистки зон. Если программный RAID не учитывает эти особенности, возникают накладные расходы, снижающие производительность и усложняющие обслуживание массива.
XRAID проектировался с учётом именно таких ограничений. Он работает совместно с зональной реализацией XFS и распределяет физические зоны накопителей между логическими группами файловой системы. Благодаря этому файловая система и RAID-уровень могут согласованно управлять размещением данных.
При этом XRAID не ограничивается SMR-дисками. По словам разработчика, реализация также работает с обычными HDD и SSD. Это позволяет исследовать её применение в разных конфигурациях хранения, хотя максимальный эффект ожидается в системах, для которых традиционные схемы RAID создают дополнительные ограничения.
Первоначальное объявление разработчика опубликовано в рассылке разработчиков ядра Linux. Там же приведены ссылки на исходный код и сопутствующие инструменты.
Почему XRAID тесно интегрирован с файловой системой XFS
Одно из главных отличий новой разработки от привычного mdraid заключается в уровне интеграции. XRAID не просто объединяет несколько дисков в виртуальное блочное устройство. Его архитектура тесно связана с внутренними механизмами файловой системы XFS, в частности с зональным распределителем пространства.
В обычной модели блочный RAID работает ниже файловой системы и оперирует блоками, практически не зная, какие из них содержат пользовательские файлы, а какие относятся к служебным структурам. XRAID использует более тесное взаимодействие с XFS, позволяя разделить обработку файловых данных и метаданных.
Для этого применяется механизм realtime subvolume в XFS. Он позволяет размещать содержимое файлов отдельно от основных структур файловой системы. В зональной конфигурации XFS это особенно полезно: пользовательские данные могут находиться в областях, предназначенных для последовательной записи, тогда как метаданные размещаются на обычных устройствах или в подходящих зонах.
Такое разделение имеет практический смысл. Файловые данные обычно занимают основную часть объёма хранилища и хорошо подходят для защиты с помощью RAID с контролем чётности. Метаданные, напротив, часто представляют собой небольшие структуры, которые требуется изменять на месте. Для них классическая parity RAID может оказаться менее эффективной.
Поэтому XRAID использует разные механизмы защиты:
- Файловые данные получают защиту с помощью распределённого RAID с контролем чётности.
- Метаданные XFS защищаются отдельно, например с использованием зеркалирования MD RAID.
- Зональное размещение координируется файловой системой и RAID-механизмом, чтобы учитывать ограничения накопителей на последовательность записи.
Это не означает, что XRAID заменяет все механизмы защиты Linux. Напротив, разработчик использует существующие средства там, где они подходят лучше. Такой подход позволяет не применять одну и ту же схему избыточности ко всем типам данных независимо от характера операций.
Дополнительная информация о реализации содержится в исходном коде XRAID и материалах разработчика.
Declustered RAID: как распределение данных ускоряет восстановление
Вторая важная особенность XRAID — использование так называемой распределённой, или declustered, архитектуры RAID. Она отличается от традиционных схем, в которых каждая группа данных и контрольной информации привязана к фиксированному набору накопителей.
В классической конфигурации с контролем чётности блоки данных и parity-блоки размещаются на определённом количестве дисков. Например, для полосы с D блоками данных и P блоками чётности требуется D + P устройств. В случае отказа одного из накопителей массив должен восстановить недостающую информацию, используя оставшиеся данные и контрольные блоки.
При традиционной организации восстановление может создавать значительную нагрузку на ограниченную группу дисков. Особенно заметна проблема в больших массивах: восстановление после отказа одного устройства способно занимать продолжительное время, а оставшиеся накопители в этот период работают с повышенной нагрузкой.
Declustered RAID меняет принцип размещения. Блоки данных и чётности распределяются по пулу, содержащему больше устройств, чем непосредственно требуется для одной полосы. Таким образом, в операциях чтения, записи и восстановления могут участвовать практически все накопители массива, а свободное пространство для реконструкции распределяется между ними.
Для XRAID это даёт несколько преимуществ:
- Параллельное восстановление. После отказа накопителя недостающие данные могут записываться сразу на несколько устройств, а не только на один заранее назначенный резервный диск.
- Более равномерная нагрузка. Операции реконструкции распределяются между участниками пула, что помогает эффективнее использовать доступную пропускную способность.
- Гибкое использование свободного пространства. Для восстановления можно задействовать незанятые области нескольких накопителей.
- Приоритет критических данных. Система может сначала восстанавливать зоны, в которых потеряно несколько уровней избыточности, а затем менее критичные области.
- Снижение влияния на чтение. Разработчики предусмотрели восстановление зон с пользовательскими данными раньше зон, содержащих только контрольную информацию, чтобы уменьшить дополнительные расходы при чтении деградированного массива.
Последний пункт особенно важен для систем, которые должны продолжать обслуживать запросы даже после отказа накопителя. Восстановление массива — это не только задача возвращения избыточности, но и период, в течение которого производительность и доступность данных могут ухудшаться. Более гибкое распределение реконструкции помогает уменьшить этот эффект.
Подобные идеи распределённого размещения известны и в других системах хранения. Например, в OpenZFS существует dRAID. Однако XRAID представляет собственную реализацию, тесно связанную с XFS и зональным распределением пространства.
До 20 раз быстрее mdraid: что показывают тесты
Заявление о двадцатикратном превосходстве в скорости записи привлекает наибольшее внимание, но его необходимо правильно интерпретировать. Речь идёт о максимальном результате в определённых условиях, а не о гарантированном ускорении любого дискового массива в 20 раз.
В презентации Кристофа Хеллвига для конференции FOSSY 2026 опубликованы результаты тестирования XRAID на обычных HDD, SMR-дисках и SSD. В испытаниях использовались разные конфигурации накопителей и сценарии нагрузки. Для SSD применялись тесты с передачей блоков размером 1 МиБ через fio, с прямым вводом-выводом, одним или несколькими файлами и различными механизмами асинхронного ввода-вывода.
В одном из SSD-тестов сравнивались mdraid, mdraid с журналированием, Btrfs и XRAID. Для наглядности можно привести результаты записи:
| Система | 1 файл | 8 файлов | 8 файлов, libaio |
|---|---|---|---|
| mdraid | 1,5 ГиБ/с | 1,4 ГиБ/с | 1,4 ГиБ/с |
| mdraid + journal | 1,0 ГиБ/с | 0,9 ГиБ/с | 0,8 ГиБ/с |
| Btrfs | 2,2 ГиБ/с | 5,7 ГиБ/с | 6,1 ГиБ/с |
| XRAID | 9,2 ГиБ/с | 13,8 ГиБ/с | 18,5 ГиБ/с |
| XRAID + CRC32C | 9,1 ГиБ/с | 13,1 ГиБ/с | 17,7 ГиБ/с |
В этой конфигурации использовался массив из пяти SSD Samsung PM9D3a ёмкостью 4 ТиБ каждый. Для метаданных и журнала mdraid применялся отдельный накопитель той же модели. Результаты показывают, что XRAID способен значительно увеличить пропускную способность записи в конкретном сценарии.
Например, при тестировании восьми файлов с использованием libaio XRAID показал 18,5 ГиБ/с против 1,4 ГиБ/с у mdraid. Это примерно в 13,2 раза больше. Следовательно, именно этот опубликованный результат не следует выдавать за двадцатикратное ускорение: заявление «до 20 раз» относится к максимальным результатам разработчика в других тестовых условиях.
В тестах на обычных HDD также наблюдались преимущества XRAID в отдельных сценариях. Например, при небольших синхронных операциях записи конфигурация XRAID с размером блока 32 КиБ показывала 89 МБ/с при 128 заданиях, тогда как mdraid5 — 42 МБ/с. Результаты зависят от характера нагрузки и параметров массива.
Для SMR-дисков презентация демонстрирует масштабирование скорости записи при увеличении числа накопителей. В конфигурации из 25 устройств показатель достигал примерно 3300 МБ/с. Это иллюстрирует потенциал распределённой архитектуры при работе с большим пулом зональных HDD.
Полные графики, конфигурации оборудования и дополнительные результаты доступны в презентации Christoph Hellwig «RAID sucks — (and what we can do about it)». Следует учитывать, что это результаты разработчика, полученные на конкретном оборудовании и в определённых тестовых сценариях. Они не являются независимым сравнительным испытанием всех возможных конфигураций mdraid и XRAID.
Как XRAID решает проблему целостности данных
В объявлении проекта разработчик отдельно подчёркивает стремление избежать проблем целостности данных, характерных для некоторых традиционных RAID-схем. Одна из известных проблем parity RAID — так называемая write hole, или «дыра записи».
Она возникает, когда операция обновления данных и соответствующих блоков чётности не завершается согласованно. Например, при внезапном отключении питания или сбое накопителя часть блоков может успеть записаться, а другая часть — нет. После перезапуска массива данные и контрольная информация могут оказаться несогласованными.
В результате система рискует получить ситуацию, когда невозможно однозначно определить, какие значения являются актуальными. Проблема особенно неприятна при частичном обновлении полосы RAID, когда для изменения небольшого фрагмента приходится читать старые данные и parity, пересчитывать контрольную информацию и записывать обновлённые блоки.
Для уменьшения подобных рисков применяются разные механизмы: журналирование, специальные схемы записи, защита от потери питания и другие методы. Но они могут создавать дополнительные операции ввода-вывода и снижать производительность.
XRAID использует более тесную интеграцию с XFS и разделение пользовательских данных и метаданных. Это позволяет проектировать согласованные механизмы записи на уровне файловой системы, не пытаясь решать все задачи исключительно в абстрактном блочном RAID-слое.
При этом было бы неправильно считать, что XRAID уже доказал абсолютную защиту от потери данных при любых отказах. Проект находится на экспериментальной стадии. Для производственной эксплуатации необходимы полноценные испытания аварийных сценариев, проверка восстановления после отключения питания, тестирование ошибок накопителей и независимый анализ надёжности.
Поддержка уровней избыточности и инструменты управления
В первоначальной публичной реализации XRAID поддерживается конфигурация с нулём, одной или двумя parity-копиями. Это позволяет использовать разные варианты компромисса между полезной ёмкостью и устойчивостью к отказам накопителей.
Разработчики также экспериментировали с библиотекой вычисления чётности SnapRAID для поддержки трёх и более parity-блоков. Однако эта функциональность пока не включена в опубликованную версию. В дальнейшем предполагается расширить число поддерживаемых уровней избыточности, а текущая структура кода уже подготовлена к такой возможности.
Для создания и обслуживания массивов недостаточно одного патча ядра. Поэтому вместе с XRAID опубликована отдельная ветка пользовательских инструментов xfsprogs. В неё включены:
- поддержка создания файловых систем с использованием XRAID;
- новая утилита xraid для управления накопителями и просмотра информации о файловых системах;
- изменения инструментария для диагностики и обслуживания зонального хранилища;
- расширение Zonar — инструмента визуализации зональных файловых систем, который теперь может отображать соответствие логических зон физическим зонам накопителей.
Важную роль играет и тестовая инфраструктура. Для разработки опубликована отдельная ветка xfstests-xraid, предназначенная для проверки поведения файловой системы и RAID-механизма в различных сценариях.
Исходный код и сопутствующие инструменты доступны в репозиториях разработчика:
- Linux XRAID — код ядра.
- xfsprogs-xraid — пользовательские утилиты.
- xfstests-xraid — тесты файловой системы.
Наличие открытого исходного кода позволяет другим разработчикам изучать архитектуру, проверять результаты и участвовать в тестировании. Но само наличие публичного репозитория ещё не означает, что XRAID готов к использованию в обычных дистрибутивах Linux.
Почему XRAID пока нельзя считать заменой mdraid
Несмотря на впечатляющие результаты, XRAID находится на ранней стадии публичного развития. Кристоф Хеллвиг прямо заявил, что реализация пока не готова к отправке в основную ветку ядра Linux. Разработчики открыли код для более широкой аудитории, чтобы получить отзывы и провести дополнительное тестирование.
Есть и архитектурное ограничение: XRAID тесно связан с XFS. Это не универсальная замена mdraid, которую можно без изменений использовать с любой файловой системой. Его возможности зависят от механизмов XFS и её зонального распределителя.
Для систем, использующих ext4, Btrfs или другие файловые системы, появление XRAID само по себе не означает, что можно будет переключиться на новую реализацию. Для этого потребуются соответствующая архитектура, поддержка файловой системы и необходимые пользовательские инструменты.
Кроме того, перед применением XRAID в производственной среде необходимо ответить на ряд практических вопросов:
- насколько стабильно система работает при отказе нескольких накопителей;
- как ведёт себя массив при внезапном отключении питания и аппаратных сбоях;
- какова реальная скорость восстановления в массивах разного размера;
- как организованы резервное копирование, мониторинг и диагностика ошибок;
- насколько зрелы инструменты расширения массива и замены накопителей;
- какие ограничения существуют для разных моделей SMR-дисков, SSD и обычных HDD.
До получения ответов на эти вопросы XRAID разумнее рассматривать как перспективный исследовательский проект, а не как готовую основу для критически важного хранилища. Для существующих серверов и NAS-систем переход на экспериментальную реализацию без отдельного тестового стенда был бы неоправданным риском.
Что появление XRAID означает для Linux-хранилищ
Разработка XRAID показывает, что традиционная модель RAID не всегда оптимальна для новых типов накопителей и масштабных систем хранения. По мере распространения SMR-дисков, зональных SSD и больших массивов всё важнее становится согласованная работа файловой системы и уровня избыточности.
Вместо попытки решить все задачи универсальным блочным слоем XRAID использует информацию о структуре данных и особенностях размещения файлов. Это позволяет применять parity RAID там, где он наиболее эффективен, а метаданные защищать отдельным механизмом.
Важным направлением остаётся и восстановление после отказов. Чем больше дисков объединено в хранилище, тем сильнее на доступность данных влияет время реконструкции массива. Распределённое размещение свободного пространства и динамическое восстановление могут сократить этот период и уменьшить нагрузку на отдельные устройства.
Пока рано говорить о том, станет ли XRAID стандартным решением для Linux. Но уже сейчас проект представляет интерес для разработчиков файловых систем, инженеров хранения данных и администраторов, работающих с большими массивами HDD и зональных накопителей. Если дальнейшие испытания подтвердят заявленные преимущества, XRAID может стать важным шагом в развитии файловых хранилищ на базе XFS.
Выводы
XRAID — новая экспериментальная реализация распределённого RAID, интегрированная с файловой системой XFS. Её основная задача — эффективная работа с зональными накопителями, включая SMR-диски, а также повышение производительности и сокращение времени восстановления после отказов.
Главное архитектурное отличие заключается в разделении файловых данных и метаданных. Для пользовательских данных используется parity RAID, тогда как метаданные могут защищаться существующими механизмами зеркалирования MD RAID. Дополнительное преимущество обеспечивает declustered-архитектура, распределяющая данные, чётность и свободное пространство между большим количеством устройств.
Заявление о записи до 20 раз быстрее mdraid действительно заслуживает внимания, но не означает универсального ускорения в каждой конфигурации. Опубликованные тесты демонстрируют существенный выигрыш в отдельных сценариях, однако результаты зависят от оборудования, характера нагрузки и настроек массива.
На данный момент XRAID остаётся экспериментальным проектом и не готов к включению в основную ветку Linux. Для систем, где важна сохранность данных, использовать его в качестве производственного хранилища пока преждевременно. Следующий важный этап — расширенное тестирование, проверка аварийных сценариев и независимая оценка надёжности.
Часто задаваемые вопросы
XRAID — экспериментальная реализация распределённого RAID с контролем чётности, тесно интегрированная с файловой системой XFS. Она предназначена в первую очередь для зональных накопителей, но также поддерживает обычные HDD и SSD.
Разработчик заявляет о максимальном ускорении записи до 20 раз в определённых тестовых сценариях. Это не универсальная гарантия. В опубликованном SSD-тесте с восемью файлами и libaio XRAID показал 18,5 ГиБ/с против 1,4 ГиБ/с у mdraid — примерно в 13,2 раза быстрее.
mdraid работает на уровне блочных устройств и может использоваться с разными файловыми системами. XRAID тесно интегрирован с XFS, учитывает разделение файловых данных и метаданных и использует распределённое размещение блоков для более эффективной работы с зональными накопителями.
Да. Хотя основная цель разработки — зональные устройства, включая SMR-диски, разработчик подтвердил работу XRAID и с обычными жёсткими дисками, и с SSD. При этом оптимизация исключительно под SSD не была главным направлением проекта.
Это архитектура, в которой блоки данных и чётности распределяются по большему количеству накопителей, чем минимально требуется для одной полосы RAID. Благодаря этому свободное пространство и нагрузка при восстановлении могут распределяться между несколькими устройствами.
Первоначальная публичная версия поддерживает ноль, один или два блока чётности. Поддержка трёх и более блоков изучалась с использованием библиотеки SnapRAID, но пока не включена в опубликованный вариант.
Пока нет. XRAID тесно связан с XFS и требует специальной версии ядра и пользовательских инструментов. Он не является универсальной заменой mdraid для ext4, Btrfs и других файловых систем.
Нет. На момент публичного анонса 13 ноября 2026 года разработчик сообщил, что код ещё не готов к отправке в основную ветку. Сейчас проект открыт для тестирования и сбора отзывов.
Для критически важных данных пока не рекомендуется. Проект экспериментальный, поэтому сначала необходимы дополнительные испытания стабильности, восстановления после отказов и поведения при потере питания. Для практических экспериментов лучше использовать отдельный тестовый стенд и независимые резервные копии.
