Приветствую Вас Гость | RSS

Уже всё СкаченО

Воскресенье, 02.02.2025, 01.54.07
Главная » Статьи » Основы UNIX » Основы операционной системы UNIX

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

Если произошло нештатное прекращение работы системы, структура суперблока и массива индексных дескрипторов на диске не соответствует структуре блоков данных и может быть несогласованной.

Отсутствие синхронизации между образом файловой системы в памяти и ее данными на диске (в случае аварийной остановки системы) может привести к появлению следующих ошибок в файловой системе:
Один блок адресуется несколькими дескрипторами (принадлежит нескольким файлам).
Блок помечен как свободный, но в тоже время занят (на него ссылается дескриптор).
Блок помечен как занятый, но в то же время свободен (ни один дескриптор на него не ссылается).
Неправильное количество ссылок в дескрипторе.
Несовпадение между размером файла и суммарным размером адресуемых дескриптором блоков.
Недопустимые адресуемые блоки (например, расположенные за пределами файловой системы).
"Потерянные" файлы (правильные дескрипторы, на которые не ссылаються записи каталогов).
Недопустимые номера дескрипторов в записях каталогов.

Журнализируемые файловые системы

В журнализируемой файловой системе после того, как транзакция (изменение) записана, она может быть выполнена повторно, что предотвращает возникновение ошибок и несогласованностей в файловой системе и необходимость запуска программы fsck. Тем самым, уменьшается время перезагрузки в случае сбоя или некорректной остановки системы.

Журнал выделяется из свободных блоков файловой системы и, обычно, имеет размер порядка 1 Мбайта на каждый 1 Гбайт файловой системы. Журнал сбрасывается по мере заполнения, после синхронизации структуры файловой системы с диском.

Различные версии ОС UNIX поддерживают разные реализации журнализируемых файловых систем. Это, например, файловая система ufs (Solaris), vxfs (Solaris, UnixWare), RaisorFS и ext3 (Linux), jfs (AIX и Linux) и другие. Некоторые файловые системы позволяют включать и отключать журнализацию (ufs, ext2/ext3). Естественно, журнализация несколько замедляет работу файловой системы, но, в большинстве случаев, гарантирует целостность данных.

Часть этих проблем может быть устранена специальной утилитой, fsck (см. далее в разделе, посвященном управлению файловой системой). Но принципиальное решение проблемы согласованности и целостности данных в файловых системах UNIX возможно только при использовании журнализации - предварительной записи всех изменений дисковой структуры в отдельную область на диске.

Категория: Основы операционной системы UNIX | Добавил: Fishing (12.10.2009)
Просмотров: 339 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]