stringtranslate.com

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

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

Обзор

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

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

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

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

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

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

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

Одной из первых флеш-файловых систем была FFS2 от Microsoft , предназначенная для использования с 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-Friendly File System) была добавлена ​​в ядро ​​Linux 3.8. [10] Вместо того, чтобы быть нацеленной на прямой обмен данными с необработанными флэш-устройствами, F2FS предназначена для использования на флэш-устройствах хранения данных, которые уже включают в себя слой трансляции флэш-памяти, таких как карты SD . [11]

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

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

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

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

Ссылки

  1. ^ Арнд Бергманн (2011-02-18). "Оптимизация Linux с помощью дешевых флэш-накопителей". LWN.net . Получено 2013-01-26 .
  2. ^ "Контроллер USBkey PS2251-63 компании Phison". Архивировано из оригинала 2011-07-28 . Получено 2011-05-26 .
  3. ^ OpenNFM: NAND FTL с открытым исходным кодом для SSD и встроенного модуля хранения данных
  4. ^ Патент США 5404485, «Флэш-файловая система, Амир Бан» 
  5. ^ "Патент Microsoft FFS2". Архивировано из оригинала 2016-12-19 . Получено 2009-01-09 .
  6. ^ "Understanding the Flash Translation Layer (FTL) Specification" (PDF) . Intel . Декабрь 1998 г. Архивировано из оригинала (PDF) 2014-07-19 . Получено 2015-07-27 .
  7. ^ Джонатан Корбет (2 апреля 2008 г.). «ЮБИФС». ЛВН.
  8. ^ Ричард Вайнбергер (24.09.2012). "UBI: Fastmap request for include". LKML.
  9. ^ Нил Браун (11 декабря 2012 г.). «JFFS2, UBIFS и рост флэш-памяти». LWN.
  10. ^ "Файловые системы и хранилища". Журнал ядра - в версии 3.8 . H. 2013-01-21 . Получено 2013-01-23 .
  11. ^ Нил Браун (10.10.2012). "Разборка f2fs". LWN.net . Получено 09.04.2014 .

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