Новий експериментальний файловий рівень BeamFS для Linux
Новий експериментальний файловий рівень BeamFS для Linux
Нещодавно був запропонований новий експериментальний файловий рівень BeamFS для включення до ядра Linux. Розроблений Ореліеном Десбрієром, проект спрямований на захист збережених даних від пошкоджень, викликаних радіацією, електромагнітними перешкодами та іншими апаратними помилками.
Особливості BeamFS у порівнянні з традиційними файловими системами
На відміну від традиційних файлових систем, які використовують контрольні суми для виявлення пошкоджень, BeamFS застосовує корекцію помилок Reed-Solomon для безпосереднього виявлення та виправлення пошкоджених даних на накопичувачі, навіть з одним диском.
Цей підхід особливо корисний для систем, що працюють у середовищах з високою радіацією, таких як супутники, комп’ютери в космосі та медичне обладнання, що використовується в радіаційній терапії. У таких випадках можуть виникати помилки зберігання, і додавання резервного обладнання може бути непрактичним.
Організація даних у BeamFS
BeamFS організовує кожен 4 КБ блок даних у 16 перемішаних кодових слів Reed-Solomon RS(255,239). Це дозволяє виправляти до восьми пошкоджених байтів на кожне кодове слово, вимагаючи приблизно 7% додаткового місця для інформації про корекцію помилок.
Така ж захист застосовується до метаданих файлової системи, включаючи суперблоки, іноди, структури каталогів і битові карти алокацій. Коли дані читаються, BeamFS перевіряє їх цілісність і намагається виправити будь-які виявлені помилки перед їх передаванням операційній системі.
Якщо відновлення не вдається, файловий рівень повертає помилку введення/виведення замість тихого надання потенційно пошкоджених даних. Ідея проста: краще повернути помилку, ніж надати некоректну інформацію без попередження.
Переваги та обмеження BeamFS
До того ж, BeamFS не вимагає декількох накопичувачів або дзеркальних копій для виконання корекцій. Вона використовує надмірність, що зберігається разом із даними, хоча шкода, яку вона може виправити, обмежена схемою корекції помилок.
Розробник опублікував експериментальні результати тестування на системах x86-64 та ARM64, що працювали під управлінням Linux 7.3-rc5. Під час симульованих тестів одноразового пошкодження бітів BeamFS відновила оригінальні дані практично в кожному випадку, повернувши помилку введення/виведення в решті випадків.
У тих же тестах ext3 та ext4 іноді повертали пошкоджені дані без виявлення проблеми, тоді як Btrfs виявляв пошкодження, але не міг його відновити. Ці висновки обмежені протестованими сценаріями та не повинні розглядатися як загальне порівняння надійності файлових систем.
Проте, BeamFS має деякі важливі обмеження. Вона наразі не підтримує журналювання та копіювання під час запису, що означає, що несподіване вимкнення може вимагати повної перевірки консистентності файлової системи за допомогою fsck.beamfs.
Більш важливо, проект залишається висококласним експериментом. Його документація чітко попереджає про відомі помилки, які можуть привести до втрати даних, вразливостей безпеки та зависань ядра. Деякі проблеми вже були виправлені в гілці розробки, але файлова система не вважається безпечною для використання у продуктивних навантаженнях.
На даний момент подання є початковим запитом на огляд і обговорення серед розробників файлових систем Linux. Ще немає жодних вказівок на те, коли або чи буде BeamFS прийнята до основної гілки ядра Linux.




