Новые файловые системы
Файловая система ext2fs была создана по образу и подобию файловой системы UNIX (UNIX File System - UFS). Обе они (особенно UFS) создавались еще в те времена, когда диски и другие физические носители данных имели довольно маленький (по современным меркам) объем. Увеличение объема дисков вело к возрастанию объема разделов диска, увеличению размеров отдельных файлов и каталогов. Это породило ряд проблем, связанных с ограниченностью внутренних структур данных файловой системы.
Существуют две основных проблемы этого рода.
Во-первых, эти структуры не способны работать с носителями информации увеличенного объема. В них отведено строго фиксированное число бит для хранения данных о размере дисковых разделов и размерах файлов, фиксированное число бит для хранения логических номеров блоков и т. д. . Как следствие, число файлов и каталогов и их размер ограничены.
Вторая проблема связана с производительностью. В силу заложенных в старые файловые системы алгоритмов решение некоторых задач стало требовать слишком большого времени на носителях увеличенного объема. Одним из самых характерных примеров такого рода проблем является трудоемкость восстановления файловой системы после сбоев (например, после неожиданного отключения питания). Это восстановление выполняется с помощью программы fsck, и для очень больших дисков стало требовать нескольких часов.
Естественно, что появление этих проблем породило и попытки их решения. Были разработаны новые типы файловых систем, при создании которых учитывались требования масштабируемости. Наиболее известными разработками файловых систем новых типов являются:
- файловая система ext3fs ;
- XFS;
- журналируемая файловая система JFS фирмы IBM;
- ReiserFS .
В табл.16.8 приведены данные по увеличению основных параметров, обеспечиваемых новыми файловыми системами. Данные заимствованы из статьи Juan I. Santos Florido "Journal File Systems", опубликованной в 55-ом выпуске Linux Gazette (July 2000).
Ext3FS | 1-4 Кбайт | 4 Tбайт | 2 Гбайт | |
XFS | от 512 байт до 64 Кбайт | 18 тысяч петабайт | 9 тысяч петабайт | |
JFS | 512, 1024, 2048, 4096 байт | от 4 петабайт (при 512-байтных блоках) до 32 петабайт (при 4-килобайтовых блоках) |
От 512 Тбайт (при 512-байтовых блоках) До 4 петабайт (при 4-килобайтовых блоках) | |
ReiserFS | До 64 Кбайт (пока что фиксирован, 4 Кбайт) | 4 Гбайт блоков, 16 Тбайт | 4 Гбайт, 210 петабайт в ReiserFS (3.6.xx) |