Всем доброго дня!
Был удивлен, что на хабре не нашлось ни единого упоминания о F2FS, чтобы не писать своими словами тоже самое, делаю перепост с указанием ссылки источника.
Инженеры из компании Samsung представили в списке рассылки разработчиков ядра Linux набор патчей с реализацией новой файловой системы F2FS (Flash-Friendly File System), разработанной специально для использования на накопителях, использующих NAND Flash, таких как SSD, eMMC и SD карты. Кроме патчей для ядра Linux также опубликован первый релиз пакета f2fs-tools, содержащего коллекцию утилит для обслуживания разделов F2FS (пока в состав входит только mkfs.f2fs, но в ближайшее время обещают добавить утилиту fsck и набор отладочных инструментов). Код всех составных частей распространяется в рамках лицензии GPLv2.
В отличие от файловых систем общего назначения, проект F2FS разработан специально с учётом специфичных особенностей NAND Flash и оптимизирован для памяти с неизменным временем доступа. Для минимизации случаев перезаписи данных в F2FS используются структуры в форме лога, обеспечивающие равномерное использование блоков данных для снижения износа NAND Flash. Отмечается, что в процессе разработки F2FS были учтены проблемы ранее доступных специализированных ФС на основе структур в форме лога и предприняты все усилия для устранения известных недостатков, таких как большое потребление памяти, высокие накладные расходы при выполнении операций очистки и эффект снежного кома для Wandering-деревьев (в ситуации когда вместо перезаписи создаются новые элементы (меняется номер блока), для деревьев в которых родительский узел ссылается на дочерние узлы, изменение узла приводит к перестроению всех вышележащих узлов). Кроме традиционной для UNIX схемы разграничения доступа, F2FS предоставляет такие механизмы, как xattr и POSIX ACL.
Раздел F2FS формируется из сегментов размером 2 Мб, сегменты группируются в секции, которые в свою очередь объединяются в зоны. Для адаптации F2FS к различным видам NAND Flash, которые отличаются своими характеристиками в зависимости от внутренней геометрии и схемы управления, предусмотрен широкий спектр параметров для управления структурой распределения данных в разделе и предоставлена возможность выбора различных алгоритмов очистки и выделения блоков. Для выполнения операций чистки реализован специальный сборщик мусора, выполняемый в фоне в моменты простоя системы. Для обеспечения целостности используется модель с фиксацией контрольных точек и возможностью отката изменений (roll-back) в случае проблем. Для ускорения выполнения операций в процессе работы основные индексы с информацией о распределении данных хранятся в оперативной памяти.
Представлены результаты оценки производительности файловых систем EXT4 и NILFS2 в сравнении F2FS, новой файловой системы для Flash-накопителей, разработанной в компании Samsung. Тестирование проводилось как на обычном ПК с CPU Core i5 2500, так и на смартфоне a Galaxy S3 с прошивкой на базе Android 4.0.4. В обоих конфигурация использовалась SD-карта Transcend 16GB class 10;
Производительность F2FS оказалась выше конкурентов в тестах на случайную и последовательную буферизированную запись, запись cо сбросом буферов через fsync и случайное чтение данных. При оценке времени монтирования лидером стала ФС EXT4, F2FS оказалась на втором месте.
buffered write (1GB file)
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+--------------+
|sequential (MB/s)| random (IOPS) |sequential (MB/s) | random (IOPS) |
+-------+---------+---------------+------------------+---------------+
| EXT4 | 7.1 | 1073 | 6.7 | 1073 |
| NILFS2 | 6.8 | 1462 | 4.0 | 1272 |
| F2FS | 10.6 | 2675 | 6.9 | 1682 |
+-------+---------+---------------+------------------+---------------+
write + fsync (100MB file)
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+---------------+
|sequential (KB/s)| random (IOPS) |sequential (KB/s) | random (IOPS) |
+-------+---------+---------------+------------------+---------------+
| EXT4 | 511.8 | 125 | 383.4 | 119 |
| NILFS2 | 545.2 | 112 | 356.7 | 72 |
| F2FS | 1057.9 | 240 | 772.3 | 184 |
+-------+---------+---------------+------------------+---------------+
mounting time
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+---------------+
|1st mount after |after rebooting|1st mount after |after rebooting|
| formating (msec)| (msec) | formating (msec) | (msec) |
+-----------------+---------------+------------------+---------------+
| EXT4 | 11 | 20 | 20 | 40 |
| NILFS2 | 920 | 1013 | 1680 | 1630 |
| F2FS | 1486 | 161 | 2280 | 1570 |
+-----------------+---------------+------------------+---------------+
buffered read (1GB file)
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+---------------+
|sequential (MB/s)| random (IOPS) |sequential (MB/s) | random (IOPS) |
+-------+---------+---------------+------------------+---------------+
|EXT4 | 16.4 | 1568 | 9.6 | 1395 |
|NILFS2 | 16.6 | 1609 | 9.6 | 1440 |
|F2FS | 16.8 | 1643 | 9.7 | 1499 |
+-------+---------+---------------+------------------+---------------+
Дополнение: отдельно проведено сравнение производительности VFAT и F2FS:
buffered write (1GB file), 4KByte write
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+---------------+
| sequential (MB/s) random (IOPS) sequential (MB/s) random (IOPS) |
+-------+---------+---------------+------------------+---------------+
| EXT4 | 7.1 | 1073 | 6.7 | 1073 |
| NILFS2 | 6.8 | 1462 | 4.0 | 1272 |
| F2FS | 10.6 | 2675 | 6.9 | 1682 |
| VFAT | 7.3 | 1108 | 7.3 | 1075 |
+-------+---------+---------------+------------------+---------------+
write + fsync (100MB file), 4KByte write
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+---------------+
| sequential (KB/s) random (IOPS) sequential (KB/s) random (IOPS) |
+-------+---------+---------------+------------------+---------------+
| EXT4 | 511.8 | 125 | 383.4 | 119|
| NILFS2 | 545.2 | 112 | 356.7 | 72|
| F2FS | 1057.9 | 240 | 772.3 | 184|
| VFAT | 356.5 | 260 | 474.4 | 373|
+-------+---------+---------------+------------------+---------------+
buffered read (1GB file), 4KByte read
+-------+-------------------------+----------------------------------+
| Desktop PC | Galaxy-S 3 |
+-----------------+---------------+------------------+---------------+
| sequential (MB/s) random (IOPS) sequential (MB/s) random (IOPS) |
+-------+---------+---------------+------------------+---------------+
| EXT4 | 16.4 | 1568 | 9.6 | 1395|
| NILFS2 | 16.6 | 1609 | 9.6 | 1440|
| F2FS | 16.8 | 1643 | 9.7 | 1499|
| VFAT | 16.6 | 1592 | 9.6 | 1501|
+-------+---------+---------------+------------------+---------------+
Источник: opennet.ru
P.S. Первый пост, извините за такие таблички, более читабельные здесь.
P.P.S В Archlinux есть уже пакет в AUR.
Автор: lybin