stringtranslate.com

Флэш-файловая система

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

Обзор

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

Файловые системы с журнальной структурой обладают всеми желаемыми свойствами флэш-файловой системы. [1] К таким файловым системам относятся JFFS2 и YAFFS .

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

На практике флэш-файловые системы используются только для устройств памяти (MTD), которые представляют собой встроенную флэш-память, не имеющую контроллера. Съемные карты флэш-памяти и USB-накопители имеют встроенные контроллеры для управления MTD с помощью специальных алгоритмов, [2] [3] таких как выравнивание износа, восстановление поврежденных блоков, восстановление при потере питания, сбор мусора и исправление ошибок , поэтому используйте флэш-файл. система имеет ограниченную выгоду.

Устройства флэш-памяти становятся все более распространенными по мере увеличения количества мобильных устройств, снижения стоимости объема памяти и увеличения емкости микросхем флэш-памяти.

Происхождение

Самой ранней файловой системой флэш-памяти, управляющей массивом флэш-памяти как свободно записываемым диском, была TrueFFS израильской компании M-Systems , представленная как программный продукт на выставке PC-Card Expo в Санта-Кларе, Калифорния , в июле 1992 года и запатентованная в 1993 году. [4]

Одной из первых флэш-файловых систем была Microsoft FFS2 для использования с MS-DOS , выпущенная осенью 1992 года. [5] FFS2 предшествовал более ранний продукт под названием «FFS», который, однако, не был флэш-файлом. системе, управляя флэш-массивом как пространством для записи и однократного чтения (WORM), а не как свободно записываемым диском.

Примерно в 1994 году промышленная группа PCMCIA утвердила спецификацию Flash Translation Layer (FTL), основанную на конструкции TrueFFS компании M-Systems. Спецификация была написана и предложена совместно M-Systems и SCM Microsystems, которые также предоставили первые рабочие реализации FTL. Одобренная Intel, [6] FTL стала популярной разработкой флэш-файловой системы и на носителях, отличных от PCMCIA.

Флэш-файловые системы Linux

JFFS, JFFS2 и YAFFS
JFFS была первой файловой системой для Linux , предназначенной для флэш-памяти , но ее быстро заменила JFFS2 , первоначально разработанная для флэш-памяти NOR. Затем в 2002 году был выпущен YAFFS , посвященный специально флэш-памяти NAND, а JFFS2 был обновлен для поддержки флэш-памяти NAND.
УБИФС
UBIFS был объединен с Linux 2.6.22 [7] в 2008 году. UBIFS активно развивался с момента своего первоначального слияния. [8] UBIFS имеет документацию, размещенную на infradead.org, вместе с драйверами JFFS2 и MTD. Некоторые первоначальные сравнения показывают, что UBIFS сжимает быстрее, чем F2FS. [9]
ЛогФС
LogFS , еще одна файловая система, предназначенная для флэш-памяти Linux, в настоящее время разрабатывается для решения проблем масштабируемости JFFS2.
Ф2ФС
F2FS (файловая система, дружественная к Flash) была добавлена ​​в ядро ​​Linux 3.8. [10] Вместо того, чтобы напрямую обращаться к устройствам с необработанной флэш-памятью, F2FS предназначена для использования на устройствах хранения на основе флэш-памяти, которые уже включают уровень трансляции флэш-памяти, таких как SD-карты . [11]

Объединение файловых систем

Overlayfs, Unionfs и aufs — это объединенные файловые системы, которые позволяют объединять несколько файловых систем и представлять их пользователю как одно дерево. Это позволяет разработчику системы размещать части операционной системы, которые номинально доступны только для чтения, на разных носителях в обычных областях чтения и записи. OpenWrt обычно устанавливается на сырые флэш-чипы без FTL. Он использует overlayfs для объединения сжатой SquashFS, доступной только для чтения, с JFFS2 .

Слои перевода

Смотрите также

Рекомендации

  1. ^ Арнд Бергманн (18 февраля 2011 г.). «Оптимизация Linux с помощью дешевых флешек». LWN.net . Проверено 26 января 2013 г.
  2. ^ "Контроллер USB-ключа Phison PS2251-63" . Архивировано из оригинала 28 июля 2011 г. Проверено 26 мая 2011 г.
  3. ^ OpenNFM: NAND FTL с открытым исходным кодом для SSD и встроенного модуля хранения данных.
  4. ^ Патент США 5404485, «Файловая система Flash, Амир Бан» 
  5. ^ «Патент Microsoft FFS2» . Архивировано из оригинала 19 декабря 2016 г. Проверено 9 января 2009 г.
  6. ^ «Понимание спецификации уровня трансляции Flash (FTL)» (PDF) . Интел . Декабрь 1998 г. Архивировано из оригинала (PDF) 19 июля 2014 г. Проверено 27 июля 2015 г.
  7. ^ Джонатан Корбет (2 апреля 2008 г.). «ЮБИФС». ЛВН.
  8. ^ Ричард Вайнбергер (24 сентября 2012 г.). «UBI: запрос Fastmap на включение». ЛКМЛ.
  9. ^ Нил Браун (11 декабря 2012 г.). «JFFS2, UBIFS и рост флэш-памяти». ЛВН.
  10. ^ «Файловые системы и хранилище». Журнал ядра — появится в версии 3.8 . Х. ​21 января 2013 г. Проверено 23 января 2013 г.
  11. ^ Нил Браун (10 октября 2012 г.). «Разборка f2fs». LWN.net . Проверено 9 апреля 2014 г.

Внешние ссылки