LINUX.ORG.RU

Выбор файловой системы для eMMC

 , ,


0

2

Добрый день.

Вопрос по выбору файловой системы для Embedded Linux, применительно к устройствам где может внезапно пропасть питание. Ранее всегда закладывал NAND память и использовал файловую систему UBIFS, т.к. у неё явно указано что она устойчива к внезапным потерям питания, проблем не было ни разу. В новом устройстве заложена eMMC которую не заменить, поэтому нужна ФС, поддерживающая работу с блочными устройствами. И что-то не могу подобрать надёжную ФС, имеется в виду чтобы разработчики заранее предусмотрели сценарий и проводили соответствующие тестирования с питанием (как у UBIFS или у YAFFS2).

Вопрос: какие-нибудь из ФС, подходящих для eMMC, являются устойчивыми к потере питания?

Ну, ФС с CoW как бы должны. По моему опыту, Btrfs отлично это переносит, ни разу ничего не пропало и не сломалось за несколько лет. Но зависит от корректной работы накопителей. Возможно, с этим связаны жалобы на поломку при нештатном завершении работы. Почитать можно здесь: https://btrfs.readthedocs.io/en/latest/Hardware.html

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

Видимо, тут только тестировать самому свою железку. Ну и да, ФС в R/O не сломается с вероятностью 99%.

anonymous
()

eMMC имеют внутри себя контроллер (с буферами для записи и тп), который может не очень любить выключение питания. Файловая система вряд ли улучшит ситуацию. Лучше использовать как (редко) перезаписываемое ПЗУ с обеспечением бесперебойного питания во время перезаписи.

anonymous
()

Для борьбы с повреждениями при потере питания на блочных устройствах существуют только два механизма: журналирование и soft updates. Последний не реализован нигде, кроме фрибсдшной версии ufs, так как очень сложно. Но журнал есть в любой современной ФС. При загрузке делается fsck и всё работает как новенькое. Упомянутый выше CoW к этой теме отношения почти никакого не имеет, ну разве что можно в некоторых случаях уменьшить количество операций записи.

annulen ★★★★★
()

какие-нибудь из ФС, подходящих для eMMC, являются устойчивыми к потере питания?

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

Если хочешь сделать как следует, тогда загрузчиком вычитывай всё содержимое флэш-памяти в ОЗУ вместе с ядром «Линукса» и корневой файловой системой. Затем отключаешь шину обмена данными у микросхемы флэш-памяти и передаёшь управление в ОЗУ на запуск ядра «Линукса». Для записи и последующего чтения настроек из «Линукса» используешь другую микросхему/накопитель энергонезависимой памяти.

Enthusiast ★★★
()
Последнее исправление: Enthusiast (всего исправлений: 1)