Linux. Алексей Стахнов
Чтение книги онлайн.
Читать онлайн книгу Linux - Алексей Стахнов страница 30
Система адресации данных
Система адресации данных позволяет находить нужный файл среди блоков на диске. В Ext2 система адресации реализуется полем i_block индексного дескриптора файла.
Поле i_block в индексном дескрипторе файла представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве (EXT2 NDIR BLOCKS [12]) представляют собой прямые ссылки на номера блоков, в которых хранятся данные из файла. Следующий адрес в этом массиве является косвенной ссылкой (адресом блока), в котором хранится список адресов следующих блоков с данными из этого файла. Следующий адрес в поле i_block индексного дескриптора указывает на блок двойной косвенной адресации (double indirect block). Этот блок содержит список адресов блоков, которые, в свою очередь, содержат списки адресов следующих блоков данных того файла, который задается индексным дескриптором.
Последний адрес в поле i_block индексного дескриптора задает адрес блока тройной косвенной адресации, т. е. блока со списком адресов блоков, которые являются блоками двойной косвенной адресации.
Файловая система Ext2 при операциях ввода/вывода использует буферизацию данных. При считывании блока информации ядро выдает запрос операции ввода/вывода на несколько расположенных рядом блоков. Такие oneрации сильно ускоряют извлечение данных при последовательном считывании файлов.
При занесении данных в файл файловая система Ext2, записывая новый блок, заранее размещает рядом до 8 смежных блоков. Такой метод позволяет размещать файлы в смежных блоках, что ускоряет их чтение и дает возможность достичь высокой производительности системы.
Средства управления файловой системы служат для создания, модификации и коррекции любых искажений файловой структуры:
• mke2fs – применяется для установки дискового раздела, содержащего пустую файловую систему Ext2;
• tune2fs – используется для настройки параметров файловой системы;
• e2fsck – предназначена для устранения несоответствий в файловой системе;
• ext2ed – применяется для правки файловой системы;
• debugfs – предназначена для определения и установки состояния файловой системы.
Программа e2fsck спроектирована таким образом, что выполняет проверку с максимально возможной скоростью. В первом проходе e2fsck просматривает все индексные дескрипторы файловой системы и проверяет их как отдельные элементы системы. Также проверяются карты битов, указывающие использование блоков и дескрипторов.
Если e2fsck находит блоки данных, номера которых содержатся более чем в одном дескрипторе, то запускаются проходы с IB по 1D для устранения несоответствия: либо путем увеличения разделяемых блоков, либо удалением одного или более дескрипторов.
Во втором проходе производится проверка каталогов как отдельных элементов файловой системы. Блок каждого каталога проверяется отдельно,