Как стать автором
Обновить

Новая файловая система для Flash-накопителей от Samsung и сравнение производительности

Время на прочтение3 мин
Количество просмотров43K
Всем доброго дня!

Инженеры из компании 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 formating (msec) after rebooting (msec) 1st mount after formating (msec) after rebooting (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 (MB/s) random (IOPS) sequential (MB/s) random (IOPS)
EXT4 511.8 125 383.4 119
NILFS2 545.2 112 356.7 72
F2FS 1047.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. В Archlinux есть уже пакет в AUR.
P.S.S. Кто то может сказать, что ему придется носить несколько флешек с разными фс, т.к. она очень далеко не везде поддерживается сейчас, но данную фс на данный момент не плохо можно использовать на стационарных ssd дисках.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 33: ↑29 и ↓4+25
Комментарии29

Публикации