UBIFS (англ. Unsorted Block Image File System, UBIFS) — файловая система с несортированными блоками. Является преемником JFFS2 и конкурентом LogFS в качестве файловой системы для использования с флеш-накопителями технологии NAND. Разработка началась в 2007 году, первый стабильный релиз внесён в ядро Linux 2.6.27 в октябре 2008 года. Файловая система разработана инженерами Nokia при участии сотрудников Университета Сегеда.

UBIFS работает поверх тома несортированных блоков, который сам по себе работает поверх запоминающего устройства MTD[англ.], так как MTD не может использоваться непосредственно. Два основных различия между UBIFS и JFFS2 в том, что UBIFS поддерживает кэширование записи, и UBIFS делает поправку на пессимистическую оценку свободного пространства. UBIFS, как правило, работает лучше, чем JFFS2 на больших NAND-флеш-устройствах. Это следствие целей дизайна системы: быстрое монтирование[1], быстрый доступ к большим файлам, а также улучшенная скорость записи. UBIFS также лучше JFFS2 в сжатии на лету, восстановления информации и нечувствительности к сбоям питания. Сжатие данных на лету в UBIFS поддерживает алгоритмы Zlib (Deflate) или LZO.

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

Том несортированных блоков

править

Том несортированных блоков (англ. Unsorted Block Images, UBI) — это слой управления блоками стирания для устройств NAND. UBI служит двум целям: отслеживание плохих блоков NAND и обеспечение выравнивания износа. Выравнивание износа «размазывает» стирание и запись по всему устройству, и UBI представляет логические блоки стирания на более высокие уровни и карты этих физических блоков стирания. Слой был написан специально для UBIFS так, чтобы ей не приходилось заниматься функцией выравнивания износа и контролем плохих блоков. Тем не менее, UBI также может быть полезна для CramFS, так как CramFS не владеет информацией о плохих блоках.

Быстрые карты

править

UBI была дополнена в Linux 3.7 поддержкой быстрых карт (FastMap). FastMap актуализирует информацию, находящуюся на диске, ранее созданную в памяти путём сканирования всего устройства. Код алгоритма возвращается к предыдущему механизму полного сканирования при сбое. Старые же версии UBI-системы будут просто игнорировать FastMap-информацию.

Изменения, добавленные в ядре Linux 4.0

править

В релизе версии ядра Linux 4.0 от 13 апреля 2015 года обеспечена поддержка блочного слоя blk-mq (англ. multiqueue block layer) с многоуровневой моделью очередей, рассчитанного на организацию многопоточного доступа к данным на многоядерных системах и позволяющего эффективно использовать возможности современных SSD-накопителей. Также добавлена поддержка расширенных атрибутов «security.*».

Примечания

править

Литература

править
  • Joel Reardon, Srdjan Capkun, David Basin. Data node encrypted file system: efficient secure deletion for flash memory (англ.) // Proceedings of the 21st USENIX conference on Security symposium (Security’12). — Berkeley, CA, USA: USENIX Association, 2012. — P. 1–16.
  • Christopher Hallinan. Embedded Linux Primer: A Practical Real-World Approach. — Pearson Education, 2010. — P. 361. — ISBN 978-0-13-706110-5.

Ссылки

править