Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Надежность файловой системы. Управление плохими блоками

 

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

- неправильное закрытие или запуск системы;

- удаление носителей данных до демонтирования файловой системы (например, нельзя убирать гибкий диск, пока дисковод работает);

- выход из строя аппаратных средств и др.

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

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

Пусть к файловой системе поступает запрос на выполнение операции ввода-вывода, которая включает несколько подопераций, связанных с созданием, уничтожением и модификацией объектов файловой системы. Если все подооперации благополучно завершены, то транзакция считается выполненной. Это действие называется фиксацией (committing) транзакций. Если же одна или более подопераций не успели выполниться по какой-либо причине, то для обеспечения целостности файловой системы все измененные в рамках транзакции данные должны быть возвращены в прежнее состояние (до начала выполнения транзакции). При выполнении транзакции последовательность действий с объектами протоколируется (запоминается). В случае сбоя системы осуществляется откат транзакции – отмена выполненных подопераций.

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

Для восстановления файловой системы используется упреждающее протоколирование транзакций. Оно заключается в том, что перед изменением блока данных на диске или в дисковом кэше производится запись в специальный системный файл – журнал транзакций (log file). В записи отмечается: транзакция, которая делает изменения; изменяемые файл и блок; старое и новое значения изменяемого блока. Только после успешной регистрации всех подопераций в журнале делаются изменения в исходных блоках. Если транзакция прерывается, то информация журнала используется для приведения файлов, каталогов и служебных данных файловой системы в исходное состояние. При фиксации транзакции также делается запись в журнале, и измененные значения данных некоторое время сохраняются на случай повторения транзакции. Отмена одних изменений может затрагивать данные, уже использованные другими файловыми операциями. Такие операции также должны быть отменены. Данная проблема получила название каскадного отката транзакций. Журнализация реализована в NTFS (Windows), Ext3FS и ReiserFS (Linux) и других файловых системах.

Для обеспечения надежности файловой системы NTFS особое внимание уделено трем основным вопросам:

- способности к восстановлению;

- устранению неустранимых ошибок одного сектора;

- экстренному исправлению.

Для обеспечения способности к восстановлению NTFS отслеживает все транзакции в отношении файловой системы. Выполнение команды chkdsk в файловой системе FAT или в версиях HPFS для OS/2 служит для проверки последовательности размещения указателей в пределах каталога и таблицы файлов. Файловая система NTFS хранит журнал операций с этими компонентами и для восстановления связности системы необходимо с помощью команды chkdsk выполнить «откат» транзакций до последней точки фиксации.

При использовании FAT или HPFS, сбой сектора, в котором хранится один из специальных объектов файловой системы, приводит к возникновению неустранимой ошибки одного сектора. В NTFS эта проблема решается двумя способами: специальные объекты не используются, а все имеющиеся на диске объекты отслеживаются и защищаются; делается несколько копий (число зависит от размера тома) основной таблицы файлов.

В случае нарушения структуры файловой системы для устранения проблемы несовместимости используются утилиты, которые проверяют целостность файловой системы:

- fsck – для файловых систем s5 и ufs (UNIX);

- chkdsk – для файловой системы HPFS (OS/2);

- scandisk – для файловой системы FAT (Windows) и др.

Утилиты запускаются после загрузки или после сбоя и осуществляют многократное сканирование разнообразных структур данных файловой системы в поисках противоречий.

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

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

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

- создавать несколько копий (ежедневные, еженедельные, ежемесячные, ежеквартальные);

- сохранять выборочные каталоги;

- применять инкрементные резервные копии (сохраняются только измененные файлы);

- сжимать резервные копии для экономии места;

- фиксировать систему при создании резервной копии, чтобы во время резервирования система не менялась;

- хранить резервные копии в защищенном месте, не доступном для посторонних.

Для создания резервной копии диска используются две стратегии.

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

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

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

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

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

 

<== предыдущая лекция | следующая лекция ==>
Организация дискового пространства. Управление внешней памятью | Производительность файловой системы
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 1043; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.