Логические структуры и файловые системы жестких дисков. Основные дисковые структуры и процесс загрузки, страница 11

Как видно, чем больше размер кластера, тем большее дисковое пространство пропадает. Следовательно, по возможности следует применять кластеры меньшего размера. К сожалению, часто это легче сказать, чем сделать. Число используемых кластеров ограничено файловой системой, а уменьшение размера кластера ведет к снижению производительности. Поэтому не всегда можно использовать абсолютно наименьший размер кластера, чтобы максимизировать полезное пространство.

Размеры кластеров FAT32 и размеры FAT

Обычно при выборе размера кластера придерживаются правила "чем меньше, тем лучше". Поскольку разделы FAT16 становятся все больше и пропавшее пространство становится просто огромным, обычно используется FAT32 для уменьшения размера кластера. Несмотря на то, что FAT32 позволяет использовать большие жесткие диски и значительно меньшие размеры кластеров, FAT32 ставит серьезные проблемы производительности.

Рассмотрим раздел размером около 2048 МБ, т.е. наибольшего размера, который поддерживает FAT16. Если этот раздел создавать с FAT16, получится таблица распределения файлов с 65526 кластерами, а каждый кластер занимает 32 КБ. Такой большой размер кластера приведет к значительному пропавшему пространству. Поэтому часто рекомендуется применять для этого тома FAT32, которая уменьшит размер кластера с 32 КБ до 4 КБ. При этом пропавшее пространство сильно уменьшается.

Тип FAT

FAT16

FAT32

Размер кластера

32 КБ

4 КБ

Число элементов FAT

65,526

524,208

Размер FAT

~ 128 КБ

~ 2 МБ

Однако уменьшение размера кластера не достается "бесплатно". Так как каждый кластер стал меньше, число их для всего диска должно быть больше. Поэтому вместо прежних 65526 кластеров получается 524208 кластеров. Более того, элементы FAT32 состоят из четырех байтов в отличие от двухбайтовых элементов FAT16. В результате размер самой FAT становится в 16 раз больше, что показано в таблице.

Хуже того, при увеличении размера тома FAT32 с 2 ГБ до 8 ГБ размер FAT увеличивается с 2 МБ до почти 8 МБ. Дело здесь не в том, что FAT "съедает" несколько мегабайтов дискового пространства (ведь при этом значительно снижается пропавшее пространство), а в том, что при обычной работе РС к FAT производится масса обращений, поскольку она содержит указатели кластеров для всех находящихся на диске файлов. Увеличение размера FAT негативно повлияет на скорость системы.

Почти во всех системах применяется кэширование диска для хранения в памяти дисковых структур, к которым производятся частые обращения, например FAT. Дисковый кэш использует область памяти для хранения информации о диске, которая часто требуется, чтобы каждый раз не считывать ее с диска. Когда FAT невелика, например размером 128 КБ для FAT16, всю FAT можно легко хранить в памяти и всякий раз она оказывается "под рукой". Когда размер таблицы увеличивается, например до 8 МБ, система должна выбирать из двух альтернатив: либо выделять для FAT больше памяти, либо вовсе не хранить ее в памяти.

Поэтому важно стремиться ограничить размер FAT до приемлемого объема. Фактически в большинстве случаев приходится искать баланс между размером FAT и размером кластера. Наглядным примером служат выбираемые самой FAT32 размеры кластеров. Так как FAT32 может оперировать максимум примерно 268 млн кластеров, размер кластера 4 КБ может поддерживать дисковый том размером в 1 ТБ (1024 ГБ). Проблему здесь вызывает только то, что размер FAT при этом должен составлять более 1 ГБ (268 млн элементов с размером четыре байта).

Размер кластера

"Минимальный" размер раздела (двоичные МБ)

"Максимальный" размер раздела (двоичные МБ)

4 КБ

0.5 ГБ

8 ГБ

8 КБ

8 ГБ

16 ГБ

16 КБ

16 ГБ

32 ГБ

32 КБ

32 ГБ

64 ГБ?

В силу этого обстоятельства FAT32 использует кластеры 4 КБ только для томов размером до 8 ГБ, а затем быстро переходит к большим кластерам, как показано в приведенной таблице. Конечно, кластеры 32 КБ вызывают появление огромного пропавшего пространства.

Размер
раздела

Кластеры 4 КБ

Кластеры 8 КБ

Кластеры 16 КБ

Кластеры 32 КБ

8 ГБ

8 МБ

4 МБ

2 МБ

1 МБ

16 GB

16 МБ

8 МБ

4 МБ

2 МБ

32 GB

32 МБ

16 МБ

8 МБ

4 МБ

64 ГБ

64 МБ

32 МБ

16 МБ

8 МБ

2 ТБ

--

1024 МБ

512 МБ

256 МБ

В таблице показано, как ведет себя размер FAT (в МБ) при увеличение размера раздела при различных значениях размера кластера. Как видно, FAT32 недолго остается с кластерами 4 КБ, так как при увеличении размера раздела с сохранением кластера 4 КБ для FAT потребуется огромная память. Жирным шрифтом приведены значения, выбираемые FAT32 для данного размера раздела. Как видно, увеличивая размер кластера, компания Microsoft не допускает FAT расти более 8 МБ.