2010-11-24 1 views
4

При проектировании файловой системы, использующей структуру индексного дескриптора, для указания на файлы/блоки, как точно определяется количество необходимых дескрипторов?Разработка файловой системы

ответ

1

В некоторых файловых системах Unix (например, ext * fs), которые фактически соответствуют системному администратору, который устанавливает относительный параметр при создании файловой системы.

Если файловая система будет содержать множество небольших файлов (типичный пример - новости и почтовые серверы), вам нужно большое количество inodes, так как для каждого объекта (файла или каталога) нужен индексный дескриптор.

Если, с другой стороны, файловая система будет размещать более крупные файлы (например, видеосервер), вам не нужно столько инодов.

Поскольку inodes занимают место, важно достичь баланса между производительностью и эффективностью и иметь достаточное количество инодов для вашей цели. Простым методом является вычисление среднего размера файла в активной файловой системе с аналогичными шаблонами использования и использование этого числа в качестве базового значения для отношения байтов/индексов на новой FS. Это позволило бы FS функционировать, пока объем заполняется, пока шаблоны использования не меняются кардинально.

Если вы на самом деле разрабатываете новую файловую систему, а не просто создаете том, вам следует подумать о том, как динамически выделять inodes, как некоторые другие распространенные файловые системы Unix (например, JFS, XFS, Reiserfs). Это сделало бы вашу файловую систему немного более гибкой, хотя обычно считается, что динамические структуры ФП значительно усложняют восстановление проблем с коррупцией.

2

Некоторые современные файловые системы (XFS для одного) выделяют inodes динамически по мере необходимости. Файловые системы без этой функции выбирают основанное на опыте значение относительно размера диска (например, ext2/3/4 создает 1 inode на 4KB дисковое пространство IIRC), и обычно существует возможность настроить это значение при создании файловой системы.