Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #73, ЯНВАРЬ 2005 г.

Журналирование в подробностях

Денис Колисниченко

Хакер, номер #073, стр. 073-096-1


(dhsilabs@mail.ru)

Обзор журналируемых файловых систем под Linux

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

Введение в файловые системы

Компьютер работает с данными в виде нулей и единиц, которые записаны на жестком диске. Без файловой системы невозможно разобраться со всей этой кашей – непонятно, где начало, а где конец нужных нам данных. Поэтому, как только появились магнитные носители, записанные на них данные стали объединять в файлы. В принципе, из одного байта уже можно сформировать файл. Знаешь, как к компьютерам подключались магнитофоны и данные записывались на обычную кассету? Это пример неиерархической файловой системы: файлы располагались на кассете последовательно. Чтобы перейти к нужному файлу, нужно было перемотать ленту.

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

С учетом всех этих проблем были созданы иерархические файловые системы, позволяющие объединять файлы в каталоги, а также хранить подкаталоги в каталогах. В начале fs находится таблица размещения файлов, в которой прописаны физические координаты частей файла. Теперь файлы записываются не последовательно, поэтому обойтись начальным адресом и смещением относительно него уже нельзя: файловая система должна помнить, где находится каждая часть файла.

Теперь разберемся, что такое целостность файловой системы. Файловую систему можно считать целостной, если один блок данных принадлежит одному и только одному файлу, то есть изменение одного файла или каталога не приводит к изменению другого файла или каталога. Иногда при проверке файловой системы в Windows обнаруживается, что кластеры пересекаются, то есть один кластер принадлежит двум или более файлам сразу. Обычно такие файлы нужно удалять, хотя есть возможность обрезать файл до момента коллизии, чтобы сохранить хоть какую-то часть информации. В случае с текстовыми файлами это помогает – хоть что-то, да и останется, а вот двоичные файлы можно удалять сразу.

В начале каждой файловой системы есть так называемый чистый бит. При монтировании файловой системы бит «clean» стирается - это означает, что файловая система используется в данный момент, а при размонтировании, наоборот, устанавливается. Если при загрузке ОС обнаруживает, что чистый бит не установлен, она запускает средство проверки файловой системы (в *nix это программа fsck, а в Windows – scandisk). Программа проверки проверяет не что иное, как целостность файловой системы.

Содержание  Вперед на стр. 073-096-2
Бумажные пакеты, бейсболки, кепки. лицензия связи
<<< НАЗАД ||| ГЛАВНАЯ