UBIFS

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.

Ссылки

  • UBIFS - UBI File-System (англ.). Documentation. Memory Technology Device (MTD) Subsystem for Linux[англ.]. — Документация на официальном сайте. Дата обращения: 24 сентября 2013.
  • Adrian Hunter. A Brief Introduction to the Design of UBIFS (англ.) (PDF) (27 марта 2008). Дата обращения: 24 сентября 2013.
  • Adrian Hunter, Artem Bityutskiy. UBIFS file system (англ.) (PDF). — Слайды презентации. Дата обращения: 24 сентября 2013.
  • Документация UBIFS в исходном коде ядра Linux
  • Документация UBIFS Secure Deletion Enhancement (UBIFSec) в исходном коде ядра Linux
  • Jonathan Corbet. UBIFS (англ.). LWN.net (2 апреля 2008). Дата обращения: 24 сентября 2013.
  • Neil Brown. JFFS2, UBIFS, and the growth of flash storage (англ.). LWN.net (11 декабря 2012). Дата обращения: 24 сентября 2013.
  • Компания Nokia разработала новую файловую систему для Flash дисков  (неопр.). OpenNET (29 марта 2008). Дата обращения: 24 сентября 2013.
  • UBIFS — новая файловая система для флэш-накопителей
  • Thorsten Leemhuis. Kernel Log: Linux 2.6.27 Released. Infrastructure improvements for all (англ.). The H Open. Verlag Heinz Heise[англ.] (10 октября 2008). — немецкий оригинал. Дата обращения: 24 сентября 2013.
  • Использование UBIFS
  • UBIFS experiments on the XO Laptop (One Laptop per Child)
  • UBIFS (англ.). University of Szeged. Department of Software Engineering. — Описание проекта на сайте Сегедского университета — одного из разработчиков системы. Дата обращения: 24 сентября 2013. Архивировано из оригинала 28 сентября 2013 года.