Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примерные ответы.docx
Скачиваний:
9
Добавлен:
24.09.2019
Размер:
358.54 Кб
Скачать

30. Устойчивость фс к сбоям

1) Устойчивость к сбоям питания

Одна из важнейших характеристик ФС. Под «сбоем питания» понимается более широкое понятие, вообще любое резкое прекращение работы без размонтирования ФС: извлечение носителя, жёсткая перезагрузка и т.д.

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

В широком смысле «устойчивость» гарантирует также целостность пользовательских данных в случае сбоя, но её обеспечение накладывает серьёзные ограничения на ФС и программы, работающие с данными.

Большее внимание уделяется узкому смыслу, т.к. целостность всей системы ставится выше целостности отдельного файла.

Задача обеспечения целостности файловых систем при сбоях усложняется тем, что дисковые подсистемы практически всех современных ОС активно используют отложенную запись. Отложенная запись, особенно в сочетании с сортировкой запросов по номеру блока на диске, может приводить к тому, что изменения инода или ф-нода файла могут все-таки записываться на диск раньше, чем изменения списка свободных блоков, что может приводить к возникновению «скрещенных» файлов.

2) Восстановление ФС после сбоя

Чаще всего используется следующая схема: суперблок ФС содержит dirty-флаг, который устанавливается при загрузке системы и сбрасывается при размонтировании ФС. Т.о., если работа с ФС завершилась некорректно, флаг не успеет сброситься, и это будет сигналом того, что ФС нуждается в починке.

Починка состоит в том, что система прослеживает пространство, выделенное всем файлам. При этом должны выполняться следующие требования:

– Каждая запись в каталоге должна иметь правильный формат и содержать осмысленные данные.

– Каждый блок или кластер диска должен принадлежать не более чем одному файлу.

– Каждому файлу должно быть выделено пространство, соответствующее его длине.

– Все блоки, не принадлежащие файлам, должны быть помечены как свободные.

– Ошибочные иноды в системах UNIX.

3) Файловые системы с регистрацией намерений

Операции над ФС организуются в блоки – транзакции, являющиеся атомарными операциями. Каждая транзакция выполняется по сценарию:

– Система пишет в журнальный файл свои намерения

– Транзакция выполняется

– Запись в журнале помечается как успешная.

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

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

4) Устойчивость ФС к сбоям диска

Кроме общесистемных сбоев, ФС должна обеспечивать средства восстановления при физических сбоях диска. Наиболее распространенным видом таких сбоев являются нечитаемые – «плохие» блоки, появление которых обычно связано с физическими дефектами магнитного носителя.

Дисковые контроллеры используют при записи кодировку с исправлением ошибок, чаще всего, коды типа CRC которые позволяют обнаруживать и исправлять ошибки. Тем не менее, если при чтении была обнаружена ошибка, большинство ОС отмечают такой блок как плохой, даже если данные удалось восстановить на основании избыточного кода.

В «сложных» файловых системах обычно используется горячая замена (hotfixing). В ФС хранится список всех обнаруженных плохих блоков, и каждому такому блоку поставлен в соответствие блок из специального пула горячей замены. При этом плохие блоки, на которые оказались отображены системные структуры данных, также подвергаются горячей замене. Таблица горячей замены может быть как статической, так и динамической.