Автор работы: Пользователь скрыл имя, 08 Февраля 2015 в 09:58, реферат
Чтобы считывать и записывать информацию на диск, ему необходима файловая система. Файловая система — порядок, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат содержимого и физического хранения информации, которую принято группировать в виде файлов. Носители информации способны лишь хранить, записывать или считывать биты данных из определенных секторов, а за доступ к информации отвечает именно файловая система. Некоторые из них предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.
Обеспечение отказоустойчивости файловых систем
Реферат
на тему: «Обеспечение отказоустойчивости файловых систем»
Москва 2013 г.
Содержание
Введение
Чтобы считывать и записывать информацию на диск, ему необходима файловая система. Файловая система — порядок, определяющий способ организации, хранения и именования данных на носителях информации. Она определяет формат содержимого и физического хранения информации, которую принято группировать в виде файлов. Носители информации способны лишь хранить, записывать или считывать биты данных из определенных секторов, а за доступ к информации отвечает именно файловая система. Некоторые из них предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.
Система должна быть защищена от внутренних и внешних ошибок, сбоев и отказов. Ее действия должны быть предсказуемы, а приложения не должны иметь возможности наносить вред ОС.
Эти свойства обеспечиваются архитектурными решениями, положенными в основу ОС, качеством их реализации (отлаженностью кода) и программной поддержкой аппаратных средств обеспечения отказоустойчивости.
В современном мире, где информация и способы ее обработки имеют решающее значение важно обеспечить отказоустойчивость систем хранения информации. Отказоустойчивостью называется способность системы сохранять рабочее состояние при возникновении ошибок или сбоев без потери или повреждения данных. Система хранения данных является главной составной частью любого вычислительного центра, а потому обеспечение её отказоустойчивости является серьёзной задачей.
Для увеличения производительности дисковой подсистемы информацию на массиве из N дисков можно расположить блоками, каждый из которых записывается на отдельный диск. При возможности одновременного считывания информации со всего массива дисков скорость передачи данных возрастет почти в N раз. С другой стороны работу с массивом дисков можно организовать таким образом, чтобы каждый диск, являясь независимым устройством, содержал “эксклюзивную” информацию (т.е. его работа никак не координировалась с работой остального массива дисков).
Приведённые выше способы увеличения производительности дисковой подсистемы обладают одним очень существенным недостатком: они значительно снижают уровень сохранности данных. При выходе из строя одного диска теряется вся хранящаяся массивом информация.
В 1987 году в трудах Калифорнийского университета Беркли была опубликована научная работа, посвященная вопросам увеличения производительности дисковой подсистемы и повышения надежности хранения данных. Ее авторы Паттерсон, Гибсон и Катц описали систему построения RAID или дискового массива с избыточным хранением данных.
При перезапуске операционной системы после краха большинство данных, хранящихся в файлах на диске, по-прежнему корректны и доступны пользователю. Коды и данные операционной системы также хранятся в файлах, что и позволяет легко ее перезапустить после сбоя, не связанного с отказом диска или повреждением системных файлов.
Диски могут отказывать, например, по причине нарушения магнитных свойств отдельных областей поверхности. Другой причиной недоступности данных после сбоя системы может служить нарушение целостности служебной информации файловой системы, произошедшее из-за незавершенности операций по изменению этой информации при неполадке системы. Примером такого нарушения может служить несоответствие между адресной информацией файла, хранящейся в каталоге, и фактическим размещением кластеров файла. Для борьбы с этим явлением применяются так называемые восстанавливаемые файловые системы, которые обладают определенной степенью устойчивости к сбоям и отказам компьютера (при сохранении работоспособности диска, на котором расположена данная файловая система). Комплексное применение отказоустойчивых дисковых массивов и восстанавливаемых файловых систем существенно повышают такой важный показатель вычислительной системы, как общая надежность.
Восстанавливаемость файловой системы — это свойство, которое гарантирует что при отказе питания или крахе системы (все данные в оперативной памяти безвозвратно теряются), все начатые файловые операции будут либо успешно завершены, либо отменены безо всяких отрицательных последствий для работоспособности файловой системы.
Любая операция над файлом (создание, удаление, запись, чтение и т. д.) может быть представлена в виде некоторой последовательности подопераций. Последствия сбоя питания или краха ОС зависят от того, какая операция ввода-вывода выполнялась в этот момент, в каком порядке выполнялись подоперации.
Некорректность файловой системы может возникать не только в результате непроизвольно прерывания операций ввода-вывода, выполняемых непосредственно с диском, но и в результате нарушения работы дискового кэша. Кэширование данных с диска предполагает, что в течение некоторого времени результаты операций ввода-вывода никак не сказываются на содержимом диска — все изменения происходят с копиями блоков диска, временно хранящихся в буферах оперативной памяти.
Проблемы, связанные с восстановлением файловой системы, могут быть решены при помощи техники протоколирования транзакций, которая сводится к следующему. В системе должны быть определены транзакции — неделимые работы, которые не могут быть выполнены частично. Они либо выполняются полностью, либо вообще не выполняются.
В файловых системах транзакциями являются операции ввода-вывода, изменяющие содержимое файлов, каталогов или других системных структур файловой системы. Пусть к файловой системе поступает запрос на выполнение той или иной операции ввода-вывода. Эта операция включает несколько шагов, связанных с созданием, уничтожением и модификацией объектов файловой системы. Если все подоперации были благополучно завершены, то транзакция считается выполненной. Это действие называется фиксацией транзакции. Если же одна или более подопераций не успели выполниться из-за сбоя питания или краха ОС, тогда для обеспечения целостности файловой системы все измененные в рамках транзакции данные файловой системы должны быть возвращены точно в то состояние, в котором они находились до начала выполнения транзакции. Так, например, транзакцией может быть представлена операция удаления файла. Действительно, для целостности файловой системы необходимо, чтобы все требуемые при выполнении данной операции изменения каталога и таблицы распределения дисковой памяти были сделаны в полном объеме. Либо, если во время операции произошел сбой, каталог и таблица распределения памяти должны быть приведены в исходное состояние.
С другой стороны, в файловой системе существуют операции, которые не изменяют состояния файловой системы и которые вследствие этого нет необходимости рассматривать как транзакции. Примерами таких операций являются чтение файла, поиск файла на диске, просмотр атрибутов файла.
В файловых системах с кэшированием диска для восстановления системы после сбоя кроме отката незавершенных транзакций необходимо выполнить дополнительное действие — повторение зафиксированных транзакций. Когда происходит сбой по питанию или крах ОС, все данные, находящиеся в оперативной памяти, теряются, в том числе и модифицированные блоки данных, которые менеджер дискового кэша не успел вытолкнуть на диск. Единственный способ восстановить утерянные изменения данных — это повторить все завершенные транзакции, которые участвовали в модификации этих блоков. Чтобы обеспечить возможность повторения транзакций, система должна включать в протокол не только данные, которые могут быть использованы для отката транзакции, но и данные, которые позволят в случае необходимости повторить всю транзакцию.
Для восстановления файловой системы используется упреждающее протоколирование транзакций. Оно заключается в том, что перед изменением какого-либо блока данных на диске или в дисковом кэше производится запись в специальный системный файл — журнал транзакций, где отмечается, какая транзакция делает изменения, какой файл и блок изменяются и каковы старое и новое значения изменяемого блока. Только после успешной регистрации всех подопераций в журнале делаются изменения в исходных блоках. Если транзакция прерывается, то информация журнала регистрации используется для приведения файлов, каталогов и служебных данных файловой системы в исходное состояние, то есть производится откат. Если транзакция фиксируется, то и об этом делается запись в журнал регистрации, но новые значения измененных данных сохраняются в журнале еще некоторое время, чтобы сделать возможным повторение транзакции, если это потребуется.
Файловая система NTFS - восстанавливаемая файловая система, однако восстанавливаемость обеспечивается только для системной информации файловой системы, то есть каталогов, атрибутов безопасности, битовой карты занятости кластеров и других системных файлов. Сохранность данных пользовательских файлов, работа с которыми выполнялась в момент сбоя, в общем случае не гарантируется.
Для повышения производительности файловая система NTFS использует дисковый кэш, то есть все изменения файлов, каталогов и управляющей информации выполняются сначала над копиями соответствующих блоков в буферах оперативной памяти и только спустя некоторое время переносятся на диск. Однако кэширование, как уже было сказано, повышает риск разрушения файловой системы. В таких условиях NTFS обеспечивает отказоустойчивость с помощью технологии протоколирования транзакций и восстановления системных данных. Пользовательские данные, которые в момент краха находились в дисковом кэше и не успели записаться на диск, в NTFS не восстанавливаются.
Журнал регистрации транзакций в NTFS делится на две части: область рестарта и область протоколирования.
Область рестарта содержит информацию о том, с какого места необходимо будет начать читать журнал транзакций для проведения процедуры восстановления системы после сбоя или краха ОС. А область протоколирования содержит записи обо всех изменениях в системных данных файловой системы, произошедших в результате выполнения транзакций в течение некоторого, достаточно большого периода. Записи о подоперациях, принадлежащих одной транзакции, образуют связанный список: каждая последующая запись содержит номер предыдущей записи. Заполнение области протоколирования идет циклически: после исчерпания всей памяти, отведенной под область протоколирования, новые записи помещаются на место старых.
Существует несколько типов записей в журнале транзакций: запись модификации, запись контрольной точки, запись фиксации транзакции, запись таблицы модификации, запись таблицы модифицированных страниц.
Журнал транзакций, как и все остальные файлы, кэшируется в буферах оперативной памяти и периодически сбрасывается на диск.
Файловая система NTFS все действия с журналом транзакций выполняет только путем запросов к специальной службе LFS (Log File Service). Эта служба размещает в журнале новые записи, сбрасывает на диск все записи до некоторого заданного номера, считывает записи в прямом и обратном порядке и выполняет некоторые другие действия над записями журнала.
Прежде чем выполнить любую транзакцию, NTFS вызывает службу журнала транзакций LFS для регистрации всех подопераций в журнале транзакций. И только после этого описанные подоперации действительно выполняются над копиями блоков данных файловой системы, находящимися в кэше. Когда все подоперации транзакции выполнены, с помощью службы LFS транзакция фиксируется. Это выражается в том, что в журнал заносится специальный вид записи — запись фиксации транзакции.
Параллельно с регистрацией и выполнением транзакций происходит процесс сброса на диск измененных блоков выполняется в два этапа: сначала сбрасываются блоки журнала, а потом — модифицированные блоки транзакций. После того как блоки журнала сброшены на диск, сбрасываются на диск модифицированные блоки транзакций, среди которых могут быть, конечно, и блоки системных данных файловой системы.
Такая двухэтапная процедура сброса данных кэша на диск делает возможным восстановление файловой системы, если во время записи модифицированных блоков из кэша на диск произойдет сбой. Действительно, какие бы неприятности не произошли во время записи модифицированных блоков на диск, вся информация об изменениях, произведенных в этих блоках, уже записана на диск в файл журнала транзакций. Заметим, что все действия, которые были выполнены файловой системой в интервале между последним сбросом данных на диск и сбоем, отменяются сами собой, поскольку все они проводятся только над блоками в кэше и не вызывают никаких изменений содержимого диска.
Поскольку система FAT хранит данные о файлах и данные о свободном месте на диске в одной таблице, то операция записи файла, традиционно состоящая из двух этапов (добавление занимаемого блока в перечень занятых и исключение этого же блока из списка свободных) происходит в FAT в одно действие. Благодаря этому система FAT обладает врождённой устойчивостью к сбоям, то есть сбой (например, питания) в момент выполнения операции чтения или записи в большинстве случаев не приведёт к разрушению файловой системы. Однако в данном случае речь идёт именно о целостности файловой системы, а не самих файлов.
Таблица размещения файлов FAT распределяет файлы по кластерам. Кластер является наименьшим возможным блоком данных на жёстком диске. Секторы определяют, сколько байт пространства физически доступно на диске. В зависимости от типа раздела, в каждом кластере содержатся несколько секторов по 512 байт. Размер кластера определяется файловой системой и размером томов. Каждая запись в таблице соответствует одному назначению кластера. В таблице содержится информация о кластере начала файла, последующих кластерах и идентификаторе последнего кластера. В целях обеспечения отказоустойчивости система создаёт вторую копию таблиц FAT. На системах FAT 16 и FAT 32 таблица находится на внешней дорожке диска. На системах NTFS она хранится в файлах.
Рассмотрим методы, которые повышают устойчивость вычислительной системы к отказам дисков за счет использования избыточных дисков и специальных алгоритмов управления массивами таких дисков.
Информация о работе Обеспечение отказоустойчивости файловых систем