В список рассылки ядра 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