Операционные системы супер-ЭВМ

       

Борьба с авариями


Одним из требований, которым должна удовлетворять файловая система, является обеспечение устойчивости к различного рода авариям. Аварии можно классифицировать следующим образом: "мяг­кие аварии" - это отказы ОС, аппаратуры , остановы, зациклива­ния и т.д.,в результате чего происходит потеря содержимого опе­ративной памяти; "жесткие аварии" - это разрушение информации на дисках.

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

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

Файловая система ОС ОМ устойчива к "мягким авариям": сог­ласованное состояние критической информации поддерживается ФС без привлечения дополнительных обслуживающих программ.

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

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

Остановимся подробнее на том, каким образом ФС обеспечива­ет устойчивость к авариям.

Отметим сначала, что критической информацией в ФС является таблица распределения свободной памяти на диске и справочники, содержащие таблицу отображения объектов ФС на внешнюю память. Рассогласование или потеря критической информации приводит к неприятным последствиям. Поэтому для повышения надежности таб­лица распределения свободной памяти хранится в двух экземплярах  на диске,  а справочники - в двух экземплярах на разных дисках.


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

Сосредоточим теперь внимание на обеспечении согласованного состояния таблицы распределения свободной памяти и таблицы отображения объектов ФС на внешнюю память.

В начале работы таблица распределения свободной памяти переписывается с дисковой памяти в массовую память. В массовой памяти таблица хранится в двух экземплярах. Первый экземпляр - копия таблицы на диске - используется для обновления таблицы на диске (далее ее будем называть исходной), второй экземпляр - текущая таблица распределения - используется для удовлетворения всех запросов на дисковую память. Начальное состояние обеих таблиц одинаково.

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



После открытия файла таблица отображения файла на диски находится в таблице активных файлов задачи ОБМЕНМД. При увели­чении размера необходимо расширить таблицу отображения. Задача АРХИВ производит поиск новой области приращений через текущую таблицу распределения памяти. После получения необходимой области таблица отображения в задаче ОБМЕНМД расширяется. До закрытия файла расширение файла может происходить неоднократно по той же схеме: поиск в текущей таблице распределения - нара­щивание таблицы отображения в задаче ОБМЕНМД. Одновременно такая же работа может происходить и с другими файлами для дру­гих задач: все запросы на расширение файлов проходят через текущую таблицу распределения памяти.

Изменения попадают в исходную таблицу, а затем на диск при закрытии файла. Закрытие файлов происходит строго синхронно. Команды закрытия выстраиваются в очередь к задаче АРХИВ в отли­чие от команд открытия, выполняемых параллельно.

Закрытие файла происходит следующим образом. АРХИВ получа­ет таблицу отображения из задачи ОБМЕНМД. Исходную таблицу отображения получаем из элемента справочника, относящегося к модифицируемому файлу.


Сравнивая эти таблицы отображений, полу­ чаем все изменения, какие претерпел данный файл за время его обработки. Эти изменения заносятся в исходную таблицу распреде­ления, и она отображается в таблицу распределения памяти на диск. На диске данная таблица хранится в двух экземплярах. Пос­ледовательные обновления таблицы распределения свободной памяти идут поочередно то в один экземпляр, то в другой. После очеред­ного обновления таблицы распределения сохраняется и предыдущая версия таблицы. Для того, чтобы отследить хронологию, таблицы распределения помечаются уникальным идентификатором(в начале таблицы и в ее конце). Выработка уникальных идентификаторов ведется задачей АРХИВ. Уникальный идентификатор - это счетчик, устанавливающийся в нуль при генерации ФС и увеличивающийся на единицу при каждом запросе следующего идентификатора.

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

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

В случае отказов ОМ на любом из этапов работы с файлом система гарантирует согласованное состояние таблицы распределе­ния памяти и таблицы отображения файла на диск без потери пространства на диске. Рассогласованным может оказаться лишь содержимое самого файла.

Рассмотрим более подробно те действия, которые осуществля­ет ФС в начале работы (после перевызова ОС).



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

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

·

уникальные идентификаторы всех справочников во всех дуб­лях равны идентификатору таблицы;

·         все идентификаторы в первом дубле равны идентификатору таблицы;

·         не все идентификаторы в первом дубле равны идентификато­ру таблицы;

·         все идентификаторы в первом дубле не равны идентификато­ру таблицы.

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

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

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

Используемый механизм позволяет поддерживать в согласован­ном состоянии критическую системную информацию, но не содержи­мое файлов. Однако, ФС ОС ОМ предоставляет дополнительные воз­можности, преодолевающие и этот недостаток.


Содержание раздела