UBIFS томов против Mtd разделов

Я перемещаю продукт из файловой системы jffs2 в ubifs.

Предыдущий дизайн jffs2 содержит 3 раздела mtd ( 2 ro и 1 rw) .

переходя к ubifs - я должен создать:

  • Один раздел Mtd и 3 тома
  • 3 раздела Mtd, 1 том каждый

В основном я спрашиваю, должен ли я заменить разделы томами при переходе на ubif? (мое понимание того, что слой ubi будет управлять всей вспышкой, если это так)

Спасибо, Ран

1 ответ

Варианты существуют, и вот преимущества...

Один раздел Mtd и 3 тома

Слой UBI будет управлять громкостью. Это слой виртуализации флэш-памяти, который превращает ненадежную флэш-память в надежную память. Слой UBI выравнивает износ. Даже для данных только для чтения полезно периодически перезаписывать данные. Это позволит перезарядить плавающие ворота и т. Д., Чтобы данные оставались читаемыми дольше. Для данных чтения-записи это очень выгодно для долговечности. Выравнивание износа UBI будет происходить во всех объемах. Это существенно увеличивает циклы стирания-записи, которые может обрабатывать файловая система.

3 раздела Mtd, 1 том каждый

Это обычно менее желательно, но есть преимущества, и это может быть подходящим для некоторых пользователей. Преимущественно наличие отдельной перегородки повышает надежность монтажа одного тома. Если что-то случится с одним разделом MTD, то вся ваша флэш-память может стать непригодной для использования. Имея отдельные разделы MTD, система MTD/UBI/UbiFS, доступная только для чтения, может использоваться, когда файловая система с возможностью чтения и записи не удалась.

Это действительно более выгодно для третьего варианта,

несколько MTD со смешанными файловыми системами.

Можно использовать CramFS, RomFS на некоторых флэш-устройствах, где производитель гарантирует надежную защиту устройства. Это может быть загрузочная файловая система, это все, что требуется для минимального функционирования системы. Инструменты для управления этими разделами довольно просты (по сравнению с UBI/UbiFS) и могут быть реализованы в минимальном пространстве кода. Некоторые системы имеют большую DDR с меньшим объемом встроенной памяти. Загрузчики / вспышки могут иметь ограниченное пространство кода.

Тем не менее, недавно (последние два года) mtd-utils содержит код разбора UBI. Это может потребоваться перенести на флешер, код восстановления и т. Д. Код восстановления может находиться в подключенном разделе initrd, который выполняет монтирование / восстановление после сбоев разделов UBI / UbiFS.

u-boot содержит код для управления и манипулирования кодом UBI / UbiFS, и он использует двухфазную загрузку (запуск из внутренней SRAM, настройку DDR ​​и затем миграцию) на многих платформах, чтобы иметь богатую функциональность в загрузчике. Сам u-boot должен быть на другом устройстве ИЛИ в отдельном MTD, как указано выше.


Второй вариант - 3 раздела mtd, по 1 объему, вероятно, наименее вероятно / желательно. Первый предпочтет время жизни системы / флэш-памяти. Последний предложит простоту более высокой надежности / восстановления. Лучшее будет зависеть от того, какие данные находятся на разделах и не-linux ресурсах, которые у вас есть для восстановления данных. Удачный способ - предоставить UBI как можно больше флэш-памяти NAND и использовать тома, когда вы хотите создать логическое разбиение.

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

Другие вопросы по тегам