Smart File System


Smart File System (SFS) — журналируемая файловая система, изначально разработанная для компьютеров Amiga, впоследствии используется в производных от AmigaOS операционных системах (AROS, MorphOS и др.). Проектировалась с учётом требований производительности, масштабируемости и целостности данных. Используются блоки размером от 512 (29) до 32 768 (215) байт, а максимальный размер раздела может достигать 128 Гб.

Хорошая производительность файловой системы реализуется путём группирования множественных записей каталогов в единый блок и группированием блоков метаданных совместно в кластеры. Для отслеживания свободного места используется битовая карта, а файл данных следит за использованием экстентов, упорядоченных в структуру B+ дерева.

Целостность поддерживается ведением журнала откатов всех изменений сделанных с метаданными за определённый период времени. Журнал записывается на диск сначала в свободное место, а затем непосредственно поверх него записываются блоки метаданных. В случае отказа системы, сразу после монтирования файловая система будет помнить о незавершённой операции и откатит её назад к последнему целостному состоянию. По причинам связанным с производительностью гарантируется целостность только метаданных. Актуальные данные в файлах могут оставаться повреждёнными, если операция записи была прервана на середине.

Интересной специфической особенностью SFS является способность дефрагментации самой себя непосредственно во время использования файловой системы, даже для заблокированных файлов. Процесс дефрагментации почти не имеет состояний (отдельно от местоположения, в котором работает), что означает возможность мгновенно его останавливать и запускать. В ходе дефрагментации сохранение целостности данных гарантируется и для метаданных, и для обычных данных.

SFS является свободной файловой системой, написанной на Си в 1998 году Джоном Хендрикксом. После его ухода со сцены Amiga в 2000 году, исходный код SFS был опубликован и её развитие продолжилось.