Файловые системы Ext2 и Ext3.
Ext2 является основной файловой системой операционной системы Linux. Ext2 — это 32-разрядная файловая система, ее максимальный размер составляет 16 терабайт
Атрибутами файловой системы ext2 являются:
· тип и права доступа к файлу,
· владелец, группа доступа,
· информация о разрешённых операциях,
· время создания, дата последнего доступа, дата последнего изменения и время последнего удаления,
· текущий размер файла,
· спецификация файла:
· обычный файл,
· каталог,
· файл байт-ориентированного устройства,
· файл блочно-ориентированного устройства,
· сокет,
· именованный канал,
· символическая ссылка,
· число занимаемых блоков,
· ACL
· другие
Атрибуты файлов хранятся не в каталогах, как это сделано в ряде простых файловых систем, а в специальных таблицах. В результате каталог имеет очень простую структуру, состоящую всего из двух частей: номера индексного дескриптора и имени файла.
в составе ext2 можно выделить следующие составляющие:
· блоки и группы блоков;
· индексный дескриптор;
· суперблок;
Всё пространство раздела диска разбивается на блоки фиксированного размера, кратные размеру сектора: 1024, 2048, 4096 или 8192 байт. Размер блока указывается при создании файловой системы на разделе диска. Меньший размер блока позволяет сэкономить место на жёстком диске, но также ограничивает максимальный размер файловой системы. Все блоки имеют порядковые номера. С целью уменьшения фрагментации и количества перемещений головок жёсткого диска при чтении больших массивов данных блоки объединяются в группы блоков.
Базовым понятием файловой системы является индексный дескриптор. Это специальная структура, которая содержит информацию об атрибутах и физическом расположении файла. Индексные декрипторы объединены в таблицу, которая содержится в начале каждой группы блоков.
Суперблок — основной элемент файловой системы ext2. Он содержит общую информацию о файловой системе:
· общее число блоков и индексных дескрипторов в файловой системе,
· число свободных блоков и индексных дескрипторов в файловой системе,
· размер блока файловой системы,
· количество блоков и индексных дескрипторов в группе блоков,
· размер индексного дескриптора,
· идентификатор файловой системы.
Система адресации данных
Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт. Если файл умещается в 12 блоков, то номера соответствующих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если размер файла превышает 12 блоков, то следующее поле содержит адрес кластера, в котором могут быть расположены номера следующих блоков файла. Таким образом, 13-е поле используется для косвенной адресации.
При максимальном размере блока в 4096 байт кластер, соответствующий 13-му полю, может содержать до 1024 номеров следующих блоков файла. Если размер файла превышает 12+1024 блоков, то используется 14-е поле, в котором находится адрес кластера, содержащего 1024 номеров кластеров, каждый из которых ссылается на 1024 блока файла. Здесь применяется уже двойная косвенная адресация. И наконец, если файл включает более 12+1024+1048576 блоков, то используется последнее 15-е поле для тройной косвенной адресации.
Данная система адресации позволяет при максимальном размере блока в 4096 байт иметь файлы, размер которых превышает 2 TB.
Ext3.
Файловая система ext3 может поддерживать файлы размером до 1 ТБ. С Linux-ядром 2.4 объём файловой системы ограничен максимальным размером блочного устройства, что составляет 2 терабайта. В Linux 2.6 (для 32-разрядных процессоров) максимальный размер блочных устройств составляет 16 ТБ, однако ext3 поддерживает только до 4 ТБ.
Ext3 имеет хорошую совместимость с NFS и не имеет проблемы с производительностью при дефиците свободного дискового пространства.Еще одно достоинство ext3 происходит из того, что она основана на коде ext2. Дисковый формат ext2 и ext3 идентичен; из этого следует, что при необходимости ext3 filesystem можно монтировать как ext2 без каких либо проблем. И это еще не все. Благодаря факту, что ext2 и ext3 используют идентичные метаданные, имеется возможность оперативного обновления ext2 в ext3.
Основное отличие от ext2 состоит в том, что ext3 журналируема, то есть в ней предусмотрена запись некоторых данных, позволяющих восстановить файловую систему при сбоях в работе компьютера.
Стандартом предусмотрено три режима журналирования:
· writeback: в журнал записываются только метаданные файловой системы, то есть информация о её изменении. Не может гарантировать целостности данных, но уже заметно сокращает время проверки по сравнению с ext2;
· ordered: то же, что и writeback, но запись данных в файл производится гарантированно до записи информации о изменении этого файла. Немного снижает производительность, также не может гарантировать целостности данных (хотя и увеличивает вероятность их сохранности при дописывании в конец существующего файла);
· journal: полное журналирование как метаданных ФС, так и пользовательских данных. Самый медленный, но и самый безопасный режим; может гарантировать целостность