Проблема выбора файловой системы: мифы и реальность
Цели и назначение файловых систем
Файловые системы семейства FAT (FAT16 и FAT32) в теории
Файловая система NTFS в теории
Количество файловых систем, которые можно использовать на наших компьютерах, с годами не уменьшается, при этом за последние десять лет кардинальных изменений в файловых системах практически не происходило. Операционные системы компании Microsoft спокойно и неспешно мигрировали от файловой системы FAT (File Allocation table) к более современной системе NTFS (New Technology File System).
На какой же файловой системе остановить свой выбор? Количество факторов, влияющих на быстродействие файловой системы, очень велико, и среди них как аппаратные ограничения, накладываемые используемым оборудованием, так и «врожденные пороки» самих систем.
Цели и назначение файловых систем
Любая файловая система предназначена для хранения информации о физическом размещении частей файла. Если провести аналогию с книгой, то файловая система сходна с содержанием (оглавлением). Подобно главе в книге здесь существует минимальная единица информации — кластер, размер которого является нижним пределом размера записываемой на носитель информации в рамках используемой файловой системы. Не следует путать данное понятие с сектором, который является минимальной единицей информации со стороны аппаратного обеспечения и драйвера. Это означает, что если мы запишем файл размером в 1 Кбайт на носитель с минимальным размером сектора, равным 4 Кбайт, то мы все равно займем на диске 4 Кбайт.
От файловой системы требуется четкое выполнение следующих действий:
- определение физического расположения частей файла;
- определение наличия свободного места и выделение его для вновь создаваемых файлов.
Скорость выполнения файловой системой этих операций находится в прямой зависимости от самой файловой системы. Естественно, рассматриваемые файловые системы (FAT16, FAT32 и NTFS) используют различные механизмы для реализации указанных задач и каждая из них имеет свои преимущества и недостатки.
Файловые системы семейства FAT (FAT16 и FAT32) в теории
Эта файловая система, появившаяся вместе с первыми IBM PC, идеологически представляет собой образ носителя в миниатюре, где детализация ведется до кластерного уровня. Поэтому операция поиска физических координат файла при его большой фрагментации будет весьма затруднительна. В случае FAT16 размер самой файловой системы не превышает 128 Кбайт, что позволяет легко кэшировать эту информацию. Однако в случае FAT32 данная величина для больших дисков составит порядка мегабайта, что существенно затруднит поиск физических координат фрагментированного файла. Еще хуже обстоят дела с выделением свободного места: в этой ситуации приходится просматривать практически всю таблицу размещения файлов (для файлов больших размеров), что явно не идет на пользу быстродействию.
Файловая система NTFS в теории
NTFS является последней разработкой компании Microsoft в области файловых систем. В отличие от своих предшественниц она использует гораздо более компактную форму записи, что повышает ее быстродействие на операциях поиска физических координат частей файла. Однако в случае большой фрагментированности файла быстродействие снижается вследствие дополнительных перемещений позиционирующего механизма. Операции же, связанные с выделением места для вновь создаваемого файла, проходят быстрее за счет использования битовой карты носителя, что на несколько порядков снижает объемы информации, которые необходимо проанализировать для выполнения этой операции. Другим ключевым преимуществом файловой системы является возможность установления прав и ограничений доступа как на уровне файла, так и на уровне папки. Эта возможность относится к защитным мерам при хранении персональной информации в том случае, когда к одному носителю имеют доступ разные люди.
Файловые системы на практике
Известно, что практика способна опровергнуть любую теорию. Посмотрим на практические аспекты работы с файловыми системами. Прежде всего не существует значительной разницы на операциях создания нового файла. Это обусловлено специальными методами оптимизации указанной операции, позволяющими повысить производительность файловых систем семейства FAT до приемлемых величин. Также на быстродействие файловой системы влияют такие физические характеристики используемого привода, как время случайного поиска сектора (random seek time) и наличие аппаратного кэширования. Первый параметр определяет время, необходимое для позиционирования считывающего элемента над произвольным сектором. Следовательно, меньшее время доступа предполагает большую производительность файловой системы. Наличие встроенного кэширования имеет большое значение для систем FAT, активно использующих аппаратный кэш. Однако для систем NTFS наличие аппаратного кэширования ни к каким улучшениям не приведет, поскольку по соображениям надежности системная информация, записываемая на носитель, не кэшируется.
Кроме того, важное значение имеет размер установленной оперативной памяти, определяющий возможности системы по кэшированию часто используемой информации (например, данных о физическом размещении открытых файлов и о часто используемых каталогах). К тому же обязательно кэшируется битовый образ носителей для ускорения операций записи. Самой неприхотливой системой является FAT16, кэшировать которую не составляет труда по причине небольшого размера (до 128 Кбайт). Предельный объем кэшируемой информации в этой системе не превышает десятка мегабайт в самом неблагоприятном случае. Ее преемница FAT32 предъявляет повышенные требования к размеру памяти, прежде всего за счет большего предельно допустимого объема информации на томах. На больших дисках (объемом десятки гигабайт) файловая система может занимать несколько десятков мегабайт, и кэшировать такой объем не представляется возможным. Хуже всего дело обстоит с файловой системой NTFS, предъявляющей куда большие требования к памяти (необходимы десятки мегабайт) вследствие большого объема каталогов. Несмотря на то что размер служебных областей файловой системы NTFS (около 10 Мбайт) практически не зависит от объема тома, только значительное количество установленной оперативной памяти способно спасти систему от ступора.
В заключение следует упомянуть о таком важном параметре, как размер кластера, выбранный при форматировании. Как правило, больший размер кластера гарантирует высокую производительность за счет уменьшения самой файловой системы. Это особенно заметно в файловых системах семейства FAT, развернутых на больших носителях. Для файловой системы NTFS увеличение кластера представляет собой достаточно болезненную процедуру — прежде всего из-за потери возможности выполнить дефрагментацию, поскольку абсолютное большинство этих программ не умеют работать с кластерами, отличными от штатных 4 Кбайт. Так что полученные преимущества представляются весьма сомнительными.
КомпьютерПресс 8'2001