BeamFS: новая файловая система для Linux восстанавливает данные без второй копии

В список рассылки ядра Linux, посвящённый файловым системам, пришёл набор из 18 патчей — предложение новой ФС BeamFS. Её автор Aurelien Desbrieres описывает задачу так: восстанавливать повреждённые данные без второй копии. BeamFS занимает место FTRFS — более ранней файловой системы, которую он предлагал в апреле.

Код, инструмент проверки патчей и сопроводительное письмо Desbrieres написал с помощью Anthropic Claude. Каждый патч помечен тегом Assisted-by — этого требует политика ядра в отношении ИИ-ассистентов при написании кода. Ответственность за код при этом остаётся на человеке, отправившем патчи.

Как BeamFS исправляет повреждения

Файловые системы вроде Btrfs и ZFS чинят данные, откатываясь к запасной копии. BeamFS обходится без неё: в каждый блок записываются коды коррекции ошибок Рида — Соломона. При каждом чтении данные сверяются с этими кодами, и небольшие повреждения исправляются до того, как информация дойдёт до приложения. Если файловая система понимает, что повреждение неисправимо, чтение завершается ошибкой — вместо того чтобы вернуть неверные байты.

Идея выросла из задачи спутниковых компьютеров: данные там хранятся на одном диске, и места под вторую копию нет. Тот же довод автор приводит для кабинетов лучевой терапии. Нейтроны от аппаратов лечения могут переворачивать биты в компьютерах, включая те, что отвечают за снимки и записи. Desbrieres утверждает, что молча неверный байт в такой обстановке вреднее, чем неудавшееся чтение.

Что показали тесты и чего в них не было

В настоящей радиационной среде BeamFS ещё не проверяли. Повреждения имитировали, переворачивая отдельные биты при чтении данных на виртуальных машинах и USB-накопителях.

В техническом отчёте ext4 и ext3 вернули неверные данные без единой ошибки, Btrfs отказалась читать файл. BeamFS отдала правильный файл во всех случаях, кроме одного: переворот затронул указатель на данные файла, и чтение было отклонено. Автор отдельно предупреждает, что сравнение неравное — каждой файловой системе досталось разное число переворотов, и отчёт не является рейтингом.

До включения в ядро далеко

Это запрос комментариев (RFC), а не просьба о слиянии. Desbrieres просит отзывы и задаёт мейнтейнерам два вопроса. Первый: делать BeamFS отдельной файловой системой или предлагать её для уже существующей. Второй — журнал, который другие ФС используют для восстановления после сбоев. У BeamFS его нет, после некорректного завершения работы она полагается на свой инструмент fsck. Автор спрашивает, должен ли журнал появиться до дальнейшего рассмотрения или его можно добавить позже.

Пока в обсуждении есть только один ответ — о том, где запись в MAINTAINERS стоит по алфавиту. В README проекта тоже есть предупреждение: там перечислены ошибки, способные привести к потере данных, открыть дыры в безопасности и уронить ядро. Автор советует не доверять этому коду ничего важного.

Для администратора это пока только повод следить за обсуждением, а не кандидат на внедрение. Если тема файловых систем и ядра интересна, посмотрите разбор Linux 7.3 и его быстрых ФС и обзор Linux 7.3 с новым планировщиком.

Частые вопросы

Что такое BeamFS?

Предложенная для ядра Linux файловая система, которая хранит коды коррекции ошибок Рида — Соломона в каждом блоке и исправляет небольшие повреждения при чтении без второй копии данных.

BeamFS уже можно ставить на сервер?

Нет. Это RFC — запрос комментариев, а не заявка на слияние. В README проекта перечислены ошибки, способные привести к потере данных, открыть уязвимости и уронить ядро, и автор советует не доверять коду ничего важного.

Чем BeamFS отличается от Btrfs и ZFS?

Btrfs и ZFS восстанавливают данные из запасной копии. BeamFS резервной копии не держит и полагается на коды коррекции внутри каждого блока.

Для кого её придумали?

Для спутниковых компьютеров, где данные лежат на одном диске и второй копии не поместить, и для кабинетов лучевой терапии, где нейтроны от аппаратов могут переворачивать биты.

Исправляет ли BeamFS любые повреждения?

Нет. Небольшие повреждения исправляются, а неисправимые приводят к ошибке чтения — файловая система не возвращает неверные байты.

Что показало сравнение с ext4 и Btrfs?

ext4 и ext3 вернули неверные данные без ошибки, Btrfs отказалась читать файл, BeamFS отдала правильный файл во всех случаях, кроме одного — когда переворот затронул указатель на данные. Автор подчёркивает, что это не рейтинг: число переворотов у файловых систем было разным.

Проверяли ли BeamFS в реальной радиации?

Нет. Тесты имитировали повреждения переворотом отдельных битов при чтении на виртуальных машинах и USB-накопителях.

Кто автор и как написан код?

Aurelien Desbrieres, ранее предлагавший FTRFS. Код, инструмент проверки патчей и сопроводительное письмо написаны с помощью Anthropic Claude, каждый патч несёт тег Assisted-by по политике ядра об ИИ-ассистентах.

Есть ли у BeamFS журнал, как у других ФС?

Нет. После некорректного завершения работы она полагается на свой fsck, и автор спрашивает мейнтейнеров, обязателен ли журнал до дальнейшего рассмотрения.

Источник: itsfoss.com