F2FS
| F2FS | |
|---|---|
| Разработчик | Ким Хэ Гык (Kim Jaegeuk, кор. 김재극), Samsung Electronics, Motorola Mobility, Huawei и Google |
| Файловая система | Флеш-дружелюбная файловая система (англ. Flash-Friendly File System) |
| Дата представления | 2013-02[1] (Linux) |
| Структура | |
| Содержимое папок | Многоуровневая хеш-таблица |
| Размещение файлов | Битовые поля (свободное место), Таблица |
| Ограничения | |
| Максимальный размер файла | 3,94 ТБ |
| Максимум файлов | Зависит от размера тома |
| Максимальная длина имени файла | 255 байт, 512 unicode для лейбла тома |
| Максимальный размер тома | 16 ТБ |
| Возможности | |
| Свойства | время модификации (mtime), время изменения атрибута (ctime), время доступа (atime) |
| Точность хранения даты | 1 нс |
| Атрибуты | POSIX, расширенные атрибуты (xattrs) |
| Права доступа | POSIX, ACL |
| Фоновая компрессия | LZO, LZ4, zstd |
| Фоновое шифрование | Есть[2] |
| Поддерживается ОС | Linux и Android |
F2FS (англ. Flash-Friendly File System) — файловая система, ориентированная на использование на флеш-памяти, в том числе для использования с SSD для серверов и персональных компьютеров, с картами памяти (eMMC/SD) и со встроенными в различные потребительские устройства флеш-чипами.
Автор — разработчик Samsung Ким Чэ Гык (Kim Jaegeuk, кор. 김재극). Исходный код системы был открыт Samsung в октябре 2012[3][4], после чего доработан инженерами «Samsung» с учётом замечаний сообщества.
Поддержка F2FS включена в ядро Linux начиная с версии 3.8[5]. Параллельно развивается пакет f2fs-tools, содержащий набор утилит для обслуживания разделов F2FS (mkfs.f2fs, fsck.f2fs).
Разработана специально с учётом специфики флеш-памяти и учитывает такие особенности, как неизменное время доступа и ограниченный ресурс количества циклов перезаписи данных.
Особенности
Хранение структур данных организовано в форме LSM-дерева, при обновлении информации используется механизм копирования при записи — при изменении данные не перезаписываются, а сохраняются в новом месте. Для ускорения выполнения операций в процессе работы индексы с информацией о распределении данных хранятся в оперативной памяти. Схема работы системы нацелена на продление жизни флеш-накопителей, учитывает внутреннюю геометрию расположения чипов в носителе и работу контроллера; данные по возможности распределяются равномерно, сводя к минимуму повторную запись в одни и те же блоки. С этой целью используется алгоритм последовательного заполнения накопителя, при котором новые данные всегда записываются только в области, следующие после ранее записанных данных, без оглядки на возможную фрагментацию. После достижения конца тома запись начинается с начала, занимая, по возможности, освобождённые блоки. Для исключения конфликтов с логикой контроллера накопителя в F2FS учитывается специфика работы прослойки FTL (Flash Translation Layer), выполняющего на многих накопителях подобную задачу по равномерному заполнению. Для адаптации F2FS к различным видам флеш-накопителей, различающихся своими характеристиками в зависимости от внутренней геометрии и схемы управления, предусмотрен широкий спектр параметров для управления структурой распределения данных в разделе и предоставлена возможность выбора различных алгоритмов очистки и выделения блоков.
Система защищена от «эффекта снежного кома», проявляющегося при использовании гуляющих деревьев (wandering tree): в ситуации, когда вместо перезаписи создаются новые элементы (меняется номер блока), для деревьев, в которых родительский узел ссылается на дочерние узлы, изменение узла приводит к перестройке всех вышележащих узлов. Системе необходим сборщик мусора, выполняющийся в фоне в моменты простоя системы.
Для обеспечения целостности используется модель с фиксацией точек выполнения и возможностью отката изменений (англ. rollback) к точкам сохранения в случае возникновения проблем.
Раздел F2FS формируется из сегментов размером 2 МБ, сегменты группируются в секции, которые в свою очередь объединяются в зоны.
Поддерживается как традиционная для Unix схема разграничения доступа, так и такие расширенные механизмы, как xattr[англ.] и POSIX ACL.
Начиная с GRUB 2.04 (5 Июля 2019) можно использовать раздел с F2FS как загрузочный. Для ранних версий приходилось создавать отдельный загрузочный раздел на ext4 или других файловых системах, поддерживаемых GRUB.
Примечания
- ↑ Pull new F2FS filesystem from Jaegeuk Kim Архивная копия от 30 июня 2016 на Wayback Machine merged by Linus Torvalds
- ↑ Jaegeuk Kim. f2fs updates for v4.2 (24 июня 2015). Дата обращения: 7 октября 2020. Архивировано 17 января 2016 года.
- ↑ This is a new patch set for the f2fs file system Архивная копия от 18 января 2013 на Wayback Machine, LKML, 2012-10-05
- ↑ Samsung открыл код F2FS, новой файловой системы для Flash-накопителей Архивная копия от 18 апреля 2021 на Wayback Machine // opennet.ru, 05.10.2012
- ↑ В состав ядра Linux 3.8 войдёт файловая система F2FS. OpenNET. Архивировано 12 октября 2020. Дата обращения: 7 октября 2020.
Ссылки
- FAST '15 — F2FS: A New File System for Flash Storage лекция от авторов (2015-02-17)
- WHAT IS Flash-Friendly File System (F2FS) документация для Linux: опции монтирования и конфигурация
- Flash Friendly File System (F2FS), Embedded Linux Conference (2013-02-22)
- LWN.net: An f2fs teardown (2012-10-10)
- eMMC/SSDFile SystemTuningMethodology сравнение с другими ФС и стратегии оптимизации (2013-05-24)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.