Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_модуль3.doc
Скачиваний:
5
Добавлен:
25.08.2019
Размер:
245.76 Кб
Скачать

Дефекты и восстановление фс Причины нарушения целостности фс

Нарушение целостности – это несоответствие между адресной информацией файла и фактическим размещением его частей.

Причины возникновения ошибок в работе ФС:

  1. Некорректное размонтирование ФС

  2. Несвоевременное извлечение носителя из дисковода (например в Macintosh дискета выталкивается только программно, что исключает ошибки при размонтировании).

  3. Сбой питания.

  4. Фатальный аппаратный сбой.

  5. Сбой в ОС.

  6. Программные ошибки, разрушившие ОС (например из-за нарушений работы дискового КЭШа; это программа, перехватывающая обращения к диску и имеющая буфер в системной области ОП. То есть при чтении или записи кластеры файлов не сразу попадают на диск, и если в это время произошел сбой, то ФС будет некорректной).

Восстановление фс после сбоя

Свойство устойчивости к сбоям (толерантность) является одной из важнейших характеристик ФС.

Обычно ФС содержат (например в Fat он в boot record, а в Unix – в superblock) флаг dirty (грязный) для определения, что ФС нуждается в восстановлении.

Этот флаг:

  1. Сбрасывается при удачном размонтировании ФС.

  2. Устанавливается при монтировании или первой модификации.

Таким образом, если произошел сбой, то флаг остается и это служит сигналом к тому, что при повторной загрузке диск проверяется на соответствие правилам.

Наряду со встроенными в ФС средствами для восстановления ФС применяют дисковые утилиты. Например, для FAT это ScanDisk. Иногда из-за большого несоответствия ФС восстановить не удается.

Протоколирование транзакций

Транзакция в ФС – последовательность операций I/O, изменяющая состояние ФС, которая не может быть выполнена частично.

Протоколирование транзакций служит для восстановления ФС.

Каждая операция I/O – это последовательность шагов. Если операция чтения или записи завершена успешно, то происходит фиксация транзакции (commiting). Если не все операции выполнены, то происходит отмена всех операций транзакции – откат (Roll Back). Для восстановления ФС ведет журнал транзакций или журнал намерений (intention log), в который до всех действий записывается намерение совершить конкретные изменения. В случае сбоя журнал используется для восстановления.

Например в NTFS журнал состоит из двух секций:

  1. Область рестарта. Это указатель на область, с которой нужно читать журнал (так как он представляет собой круговую структуру).

  2. Область протоколирования. Для записи всех изменений в системных данных ФС.

Записи в журнале нумеруются логическим последовательным номером (LSN Logical Sequence Number).

Типы записей в журнале транзакций

  1. Запись модификации. Заносится при каждой модификации системных данных.

  2. Запись фиксации транзакции. Заносится в журнал при удачном завершении транзакции.

Горячая замена блоков

Из-за повреждения поверхности магнитных носителей головками чтения – записи (head crash) или потери свойств магнитного носителя появляются плохие блоки bad block.

В простых ФС типа FAT блоки, с которых не удалось считать данные просто помечаются кодом 0хFFB и больше не используются.

В сложных ФС, а также в современных HDD, используют hotfixing – способ обхода плохих блоков путем их горячей замены из специально отведенного для этого «пула горячей замены». Для этого ведется таблица горячей замены, в которой плохие блоки ассоциированы с блоками пула. Информация, с нечитаемых блоков восстанавливается при помощи контрольных сумм. У этой таблицы есть предел количества отображений, по достижении которого считается, что диск пора выбрасывать.