Подвыделение блоков
Материал из Xgu.ru
Данные в файловых системах хранятся в виде блоков определённого размера, который задаётся при создании файловой системы. Если файлу выделяется целое число блоков, но размер файла при этом не кратен размеру блока, получается что последний выделенный файлу блок заполнен не полностью, а частично. В результате, если остаток от деления размера файла на размер блока — случайная, равномерно распределённая величина, то в среднем на каждом файле теряется пространство равное половине блока. Потери становятся особенно заметными в случае, когда файлы, расположенные в файловой системе, маленькие, но их много.
Подвыделением блоков (block suballocation) называют различные техники, направленные на сокращение расходов на хранение последнего блока данных файла, занимающего блок файловой системы не полностью. Похожий по смыслу термин — хвостовая упаковка (tail packing).
Как правило, это достигается одним из двух способов:
- Хранением последних частей нескольких файлов в одном блоке;
- Хранением последней части файла в дереве.
Подвыделение блоков было реализовано в Netware 4.X (вероятно, не впервые, но там уже оно было), и присутствует в современных файловых системах: