В списке рассылки разработчиков ядра Linux представлен патч с поддержкой новой журнально-структурированной файловой системы F2FS (Flash-Friendly File System), а также соответствующая программа mkfs.f2fs для форматирования разделов.
Файловая система F2FS предназначена для более эффективной работы с флэш-памятью NAND, которая широко используется в устройствах вроде SSD, eMMC и SD-картах. В наше время флэш-память используется повсеместно: от мобильных телефонов до серверов.
Дело в том, что у микросхем NAND есть специфические особенности, которые отличают её от традиционных магнитных накопителей с вращающимися дисками. Самое главное отличие — это ограничение на количество циклов записи-считывания. Есть и другие особенности, связанные с внутренней геометрией расположения чипов в носителе и работой контроллера. Естественно, файловая система должна учитывать эти особенности и максимально бережно относиться к носителю, путём равномерного распределения нагрузки. Журнально-структурированная (log-structured) файловая система предполагает, что все данные записываются последовательно и никогда не перезаписываются. Для очистки старого «мусора» используется отдельная процедура. В этом принципиальное отличие от журналируемых файловых систем, которые не слишком подходят для работы с флэш-памятью.
Напомним, что предыдущая журнально-структурированная файловая система LogFS c учётом особенностей флэш-памяти была представлена 16 мая 2010 года и включена в ядро Linux 2.6.34. До LogFS были UbiFS и Yaffs2. Однако, создатели F2FS постарались превзойти всех предшественников. Их разработка работает через FTL (интерфейс управления флэш-памятью на микросхеме), поддерживает разные алгоритмы для размещения файлов и разные алгоритмы очистки.
Новая файловая система F2FS разработана и передана в open source компанией Samsung, крупнейшим в мире производителем микросхем NAND. В первую очередь F2FS предназначена для использования в Android-смартфонах, где до сих пор часто встречается файловая система Ext4. Система F2FS превосходит Ext4 по работе с флэш-памятью в большинстве бенчмарков.
Конечно, ничто не мешает использовать F2FS на десктопе или сервере. Для форматирования раздела под F2FS достаточно выполнить следующие команды:
# mkfs.f2fs /dev/sdb1
# mount -t f2fs /dev/sdb1 /mnt/f2fs